1. 程式人生 > >centos6.5安裝oracle資料庫詳細

centos6.5安裝oracle資料庫詳細

折騰了好久,總結一下分享希望能幫助有需要的童鞋。

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

我是用迅雷下載的存在本地一份再用WinSCP傳到伺服器上
伺服器資訊

配置要求什麼檢查的就不說了,精簡詳細說明關鍵步驟

伺服器資訊

[root@template ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        16G  3.5G   12G  24% /
tmpfs            16
G 0 16G 0% /dev/shm /dev/vda1 194M 34M 151M 19% /boot /dev/vdb 985G 1.4G 933G 1% /data

所以把oracle安裝到/data下

預備工作 需要使用到的工具

1.使用root使用者登入作業系統
2.yum 安裝 unzip 軟體,用來解壓上傳的Oracle安裝檔案。

[root@CentOS ~]# yum install unzip –y

3.解壓Oracle 安裝程式
兩個壓縮包上傳到tmp目錄下

[root@CentOS ~]# cd /tmp
[root@CentOS
tmp]# unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip

等待解壓完成後,會在/tmp目錄下生產一個database資料夾,裡面就Oracle 11g安裝檔案。

4.關閉selinux

[root@CentOS tmp]# vim /etc/selinux/config

設定SELINUX=disabled

5.關閉防火牆


[root@CentOS tmp]# service iptables stop

6.安裝Oracle 11g依賴包

[
[email protected] tmp]# yum install yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y

7.新增安裝使用者和使用者組

[root@CentOS tmp]# groupadd oinstall
[root@CentOS tmp]# groupadd dba
[root@CentOS tmp]# useradd -g oinstall -G dba oracle
[root@CentOS tmp]# passwd oracle
[root@CentOS tmp]# id oracle
uid=1001(oracle) gid=1001(oinstall) 組=1001(oinstall),1002(dba)

8.修改核心引數配置檔案 (有待驗證)
[[email protected] ~]# vim /etc/sysctl.conf

新增以下內容

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

[[email protected] ~]# sysctl –p

其中kernel.shmmax = 1073741824為本機實體記憶體(2G)的一半,單位為byte。

9.修改使用者的限制檔案


[root@CentOS ~]# vim /etc/security/limits.conf

新增以下內容

oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
oracle           soft    stack           10240

修改/etc/pam.d/login檔案:

[root@CentOS ~]# vim /etc/pam.d/login

新增以下內容:


session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

修改/etc/profile檔案:

[root@CentOS ~]# vim /etc/profile

新增以下內容:

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
   ulimit -p 16384
   ulimit -n 65536
  else
   ulimit -u 16384 -n 65536
  fi
fi

12.建立安裝目錄和設定檔案許可權


[root@CentOS ~]# mkdir -p /u01/app/oracle/product/11.2.0
[root@CentOS ~]# mkdir /u01/app/oracle/oradata
[root@CentOS ~]# mkdir /u01/app/oracle/inventory
[root@CentOS ~]# mkdir /u01/app/oracle/fast_recovery_area
[root@CentOS ~]# chown -R oracle:oinstall /u01/app/oracle
[root@CentOS ~]# chmod -R 775 /u01/app/oracle

13.設定oracle使用者環境變數

[root@CentOS ~]# su - oracle
[oracle@CentOS ~]$ vim .bash_profile

新增如下內容:

ORACLE_BASE=/data/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
~              

14.編輯靜默安裝響應檔案

[oracle@CentOS ~]$ cp -R /tmp/database/response/ .
[oracle@CentOS ~]$ cd response/
[oracle@CentOS response]$ vim db_install.rsp

具體解釋

oracle.install.option=INSTALL_DB_SWONLY //29 行 安裝型別
ORACLE_HOSTNAME=java-linux-test //37 行 主機名稱(自己對應的主機名稱,可利用hostname檢視)
UNIX_GROUP_NAME=oinstall //42 行 安裝組
INVENTORY_LOCATION=/soft/u01/oraInventory //47 行 INVENTORY目錄 必須在ORACLE_BASE路徑以外
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 選擇語言
ORACLE_HOME=/soft/u01/app/oracle/product/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/soft/u01/app/oracle //88 行 oracle_base
oracle.install.db.InstallEdition=EE //99 行 oracle版本
oracle.install.db.isCustomInstall=true //108行 自定義安裝
oracle.install.db.DBA_GROUP=dba //142行 dba使用者組
oracle.install.db.OPER_GROUP=oinstall //147行 oper使用者組
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 資料庫型別
oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512 //192行 自動管理記憶體的最小記憶體(M)(200行)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 設定所有資料庫使用者使用同一個密碼
DECLINE_SECURITY_UPDATES=true //385行 設定安全更新
        具體可檢視db_install.rsp檔案

特別注意路徑的正確性! 樓主就是因為ORACLE_HOME=/soft/u01/app/oracle/product/11.2.0/db_1 **這裡多寫一個等號折騰了好久 另外 如果出現報錯要多查日誌

INFO: size estimation for EEinstall is 4397.013998031616
SEVERE: [FATAL] [INS-32015] 為Oracle 主目錄位置指定的位置無效。
   原因: 指定的位置不能供Oracle 主目錄位置使用。在系統上找不到指定的位置或檢測到該位置是一個檔案。
   操作: 為Oracle 主目錄位置指定有效位置。
WARNING: [WARNING] [INS-32018] 所選 Oracle 主目錄位於 Oracle 基目錄外部。
   原因: 所選 Oracle 主目錄位於 Oracle 基目錄外部。
   操作: Oracle 建議在 Oracle 基目錄中安裝 Oracle 軟體。請相應調整 Oracle 主目錄或 Oracle 基目錄。
SEVERE: [FATAL] [INS-32021] 此捲上用於所選 Oracle 主目錄的磁碟空間不足。
   原因: 所選 Oracle 主目錄所在的捲上沒有足夠的磁碟空間。
   操作: 請為 Oracle 主目錄選擇具有足夠空間 (最低 4,397MB) 的位置, 或釋放現有捲上的空間。

開始安裝了,根據響應檔案靜默安裝Oracle 11g

[oracle@CentOS response]$ cd /tmp/database/
[oracle@CentOS database]$ ./runInstaller -silent -responseFile  -ignorePrereq /oracle/response/db_install.rsp//檔案路徑

開始Oracle在後臺靜默安裝。安裝過程中,如果提示[WARNING]不必理會,此時安裝程式仍在後臺進行,如果出現[FATAL],則安裝程式已經停止了。
可以在以下位置找到本次安裝會話的日誌:
/u01/app/oracle/inventory/logs/installActions2015-06-08_04-00-25PM.log
可以切換終端執行top命令檢視後臺程序一直是在安裝的,/u01目錄也在不斷增大,
當出現以下提示時,代表安裝成功:

按照要求執行指令碼。
開啟終端,以root身份登入,執行指令碼:
[[email protected] ~]# sh /u01/app/oracle/inventory/orainstRoot.sh
[[email protected] ~]# sh /u01/app/oracle/product/11.2.0/root.sh

以下是安裝成功介面

./runInstaller -silent -responseFile /oracle/response/db_install.rsp -ignorePrereq
正在啟動 Oracle Universal Installer...

檢查臨時空間: 必須大於 120 MB。   實際為 5234 MB    通過
檢查交換空間: 必須大於 150 MB。   實際為 4095 MB    通過
準備從以下地址啟動 Oracle Universal Installer /tmp/OraInstall2016-05-24_05-04-22PM. 請稍候...[[email protected] database]$ 可以在以下位置找到本次安裝會話的日誌:
 /data/app/oraInventory/logs/installActions2016-05-24_05-04-22PM.log
以下配置指令碼需要以 "root" 使用者的身份執行。
 #!/bin/sh 
 #要執行的 Root 指令碼

/data/app/oraInventory/orainstRoot.sh
/data/app/oracle/product/11.2.0/root.sh
要執行配置指令碼, 請執行以下操作:
         1. 開啟一個終端視窗
         2."root" 身份登入
         3. 執行指令碼
         4. 返回此視窗並按 "Enter" 鍵繼續

Successfully Setup Software.


先打個草稿 明天再搞監聽
以靜默方式配置監聽

昨天配監聽的時候還報了一個錯

 netca /silent /responsefile /oracle/response/netca.rsp     

正在對命令列引數進行語法分析:
引數"silent" = true
引數"responsefile" = /oracle/response/netca.rsp
完成對命令列引數進行語法分析。
Oracle Net Services 配置:
完成概要檔案配置。
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Oracle Net 監聽程式啟動:
Caught UnknownHostException: template: template
為該監聽程式提供的資訊正由此計算機上的其他軟體使用。
    未能啟動監聽程式。
有關詳細資訊, 請檢視跟蹤檔案: /data/app/oracle/cfgtoollogs/netca/trace_OraDb11g_home1-1605245下午3216.log
Oracle Net Services 配置失敗。退出程式碼是1

日誌:

[main] [ 2016-05-24 17:34:19.619 CST ] [ConfigureListener.isPortFree:1051]  No IP address returned for local host.
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1055]  Creating ServerSocket on Port:1521, Local IP Address: /127.0.0.1
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1059]  Created ServerSocket successfully.
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1065]  Creating ServerSocket on Port:1521
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1068]  Created ServerSocket successfully.
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1088]  Returning is Port 1521 free: false


今天一早來再執行這個命令

[root@template ~]# $ORACLE_HOME/bin/netca /silent /responseFile /oracle/response/netca.rsp 
Oracle Net Configuration Assistant cannot be run as root.
[root@template ~]# su oracle
[oracle@template root]$ ^C
[oracle@template root]$ $ORACLE_HOME/bin/netca /silent /responseFile /oracle/response/netca.rsp

正在對命令列引數進行語法分析:
引數"silent" = true
引數"responsefile" = /oracle/response/netca.rsp
完成對命令列引數進行語法分析。
Oracle Net Services 配置:
完成概要檔案配置。
監聽程式 "LISTENER" 已存在。
成功完成 Oracle Net Services 配置。退出程式碼是0

居然又可以了 神奇 神奇

靜默安裝資料庫
修改僅安裝資料庫的響應檔案/home/oracle/etc/dbca.rsp

GDBNAME=”orcl.java-linux-test” //78 行 全域性資料庫的名字=SID+主機域名
SID=”orcl” //149行 SID
CHARACTERSET=”AL32UTF8” //415行 資料庫字符集編碼,注意將前面的#號去掉(改為ZHS16GBK待測試)
NATIONALCHARACTERSET=”UTF8” //425行 編碼
SYSPASSWORD=”sys”//190行 密碼可自己設定
SYSTEMPASSWORE=”system”//200行 密碼可自己設定
具體可檢視dbca.rsp檔案
進行靜默安裝資料庫

[oracle@template root]$ $ORACLE_HOME/bin/dbca -silent -responseFile  /oracle/response/dbca.rsp 
sh: /bin/ksh: No such file or directory
sh: /bin/ksh: No such file or directory
複製資料庫檔案
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
37% 已完成
正在建立並啟動 Oracle 例項
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在進行資料庫建立
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有關詳細資訊, 請參閱日誌檔案 "/data/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log"

啟動監聽又遇到問題了


[[email protected] root]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 10:33:02

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

啟動/data/app/oracle/product/11.2.0/bin/tnslsnr: 請稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系統引數檔案為/data/app/oracle/product/11.2.0/network/admin/listener.ora
寫入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
TNS-12533: TNS: 非法的 ADDRESS 引數
 TNS-12560: TNS: 協議介面卡錯誤
  TNS-00503: 非法的 ADDRESS 引數


監聽程式未能啟動。請參閱上面的錯誤訊息...

vim /data/app/oracle/product/11.2.0/network/admin/listener.ora檢視到

# listener.ora Network Configuration File: /data/app/oracle/product/11.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /data/app/oracle                                                                                                      
~                                                         

修改為

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

再執行

[[email protected] ~]# lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 10:38:02

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

啟動/data/app/oracle/product/11.2.0/bin/tnslsnr: 請稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系統引數檔案為/data/app/oracle/product/11.2.0/network/admin/listener.ora
寫入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
啟動日期                  25-5月 -2016 10:38:07
正常執行時間              00 小時 05 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          /data/app/oracle/product/11.2.0/network/admin/listener.ora
監聽程式日誌檔案          /data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
監聽程式不支援服務
命令執行成功

再檢視狀態

[[email protected] ~]# lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 10:40:34

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
啟動日期                  25-5月 -2016 10:38:07
正常執行時間              00 小時 232 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          /data/app/oracle/product/11.2.0/network/admin/listener.ora
監聽程式日誌檔案          /data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服務摘要..
服務 "orcl11g.us.oracle.com" 包含 1 個例項。
  例項 "orcl", 狀態 READY, 包含此服務的 1 個處理程式...
命令執行成功

今天又遇到一個奇葩的事情

在改了ORACLE_SID後啟動監聽

[[email protected] pfile]$  lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 16:48:28

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

啟動/data/app/oracle/product/11.2.0/bin/tnslsnr: 請稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系統引數檔案為/data/app/oracle/product/11.2.0/network/admin/listener.ora
寫入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
TNS-01201: 監聽程式無法找到可執行的/data/app/oracle/product/11.2.0/bin/orcl11g以用於 SID orcl11g

錯誤資訊
TNS-01201: 監聽程式無法找到可執行的/data/app/oracle/product/11.2.0/bin/orcl11g以用於 SID orcl11g

谷歌了一下
大概說是路徑不對
參考這篇這裡寫連結內容

echo $ORACLE_SID

這個要和檔案/data/app/oracle/product/11.2.0/network/admin/listener.ora

中 (ORACLE_HOME=/data/app/oracle/product/11.2.0)
相同
我這裡是相同的。那就奇了怪了。想起了以前好像也遇到過這種懷疑是不是有空格的原因。刪掉了等號兩邊的空格 再執行啟動

[[email protected] pfile]$  lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 16:57:22

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

啟動/data/app/oracle/product/11.2.0/bin/tnslsnr: 請稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系統引數檔案為/data/app/oracle/product/11.2.0/network/admin/listener.ora
寫入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
啟動日期                  25-5月 -2016 16:57:27
正常執行時間              00 小時 010 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          /data/app/oracle/product/11.2.0/network/admin/listener.ora
監聽程式日誌檔案          /data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服務摘要..
服務 "orcl11g" 包含 1 個例項。
  例項 "orcl11g", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功

成功了!一個空格的原因!!! 再一次吸取教訓!以後遇到不要再折騰浪費時間了!

問題又來了

 [[email protected] pfile]$  sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 525 17:04:46 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

已連線到空閒例程。

SQL> select status from v$instance;
select status from v$instance
*
第 1 行出現錯誤:
ORA-01034: ORACLE not available
程序 ID: 0
會話 ID: 0 序列號: 0

錯誤資訊
ORA-01034: ORACLE not available

啟動例項失敗

ORA-01078: failure in processing system parameters

SQL> connect sys as sysdba
輸入口令: 
已連線到空閒例程。
SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? '/data/app/oracle/product/11.2.0/dbs/initorcl11g.ora'

谷歌到

這是因為在oracle9i和oracle10g中,資料庫預設將使用spfile啟動資料庫,如果spfile不存在,則就會出現上述錯誤。
解決方法:
將$ORACLE_BASE/admin/資料庫名稱/pfile目錄下的init.ora.012009233838形式的檔案copy到$ORACLE_HOME/dbs目錄下initoracle.ora即可。(注:initoracle.ora中的oracle為你的例項名 ORACLE_SID)

沒有什麼卵用 還是ORA-01078: failure in processing system parameters

猜想是不是複製的時候許可權問題,改了許可權
chmod 777 initorcl11g.ora

果然 報錯不一樣了

SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'

谷歌到這篇

實用很奏效!堅持就是勝利!

[root@template dbs]# su oracle
[oracle@template dbs]$ strings spfileorcl.ora  > initorcl.ora
[oracle@template dbs]$ grep local_liste initorcl.ora 
*.local_listener='LISTENER_ORCL'

修改這個檔案

[oracle@template dbs]$ vim initorcl.ora 
  *.local_listener='LISTENER_ORCL' 
  這裡改為下面這行
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=TCP)(Host=127.0.0.1)(Port=1521)))'
*.memory_target=13464764416

不容易
startup 載入的是這個檔案/data/app/oracle/product/11.2.0/dbs/initorcl11g.ora
修改local_listener值為下面這行

local_listener=’(ADDRESS_LIST=(Address=(Protocol=TCP)(Host=127.0.0.1)(Port=1521)))’

[[email protected] root]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 525 17:47:11 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect sys as sysdba
輸入口令: 
已連線到空閒例程。
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'
這裡是修改了上面檔案之後執行的
SQL> startup nomount pfile='/data/app/oracle/product/11.2.0/dbs/initorcl.ora'
ORACLE 例程已經啟動。

Total System Global Area 1.3429E+10 bytes
Fixed Size                  2217992 bytes
Variable Size            6845106168 bytes
Database Buffers         6576668672 bytes
Redo Buffers                4661248 bytes
SQL> 
SQL>  select status from v$instance;

STATUS
------------------------
STARTED

資料庫正常啟動。

一些奇奇怪怪的問題也遇到不少。後面就沒有條理了。只是單純的紀錄過程,有空再來整理一下。

接下來還要弄開機啟動
要注意許可權問題!

 1.修改/u01/app/oracle/product/11.2.0/bin/dbstart
[oracle@CentOS ~]$ vim /u01/app/oracle/product/11.2.0/bin/dbstart
將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
2.修改/u01/app/oracle/product/11.2.0/bin/dbshut
[oracle@CentOS ~]$ vim /u01/app/oracle/product/11.2.0/bin/dbshut
將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
3.修改/etc/oratab檔案
[oracle@CentOS ~]$ vim /etc/oratab
將orcl:/u01/app/oracle/product/11.2.0:N中最後的N改為Y,成為orcl:/u01/app/oracle/product/11.2.0:Y
4.輸入命令dbshut和dbstart測試
[oracle@CentOS ~]$ dbshut

5.切換到root賬戶建立自啟動指令碼
[oracle@CentOS ~]$ su -
[root@CentOS ~]# vim /etc/rc.d/init.d/oracle
新增以下內容(有些值如ORACLE_HOMEORACLE_USER等根據實際情況可以修改):
#!/bin/bash

# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
# 
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
'start')
   if [ -f $LOCKFILE ]; then
      echo $0 already running.
      exit 1
   fi 
   echo -n $"Starting Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
   touch $LOCKFILE
   ;;
'stop')
   if [ ! -f $LOCKFILE ]; then
      echo $0 already stopping.
      exit 1
   fi 
   echo -n $"Stopping Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut" 
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
   rm -f $LOCKFILE
   ;; 
'restart')
   $0 stop
   $0 start
   ;; 
'status')
   if [ -f $LOCKFILE ]; then
      echo $0 started.
      else 
      echo $0 stopped.
   fi 
   ;;
*) 
   echo "Usage: $0 [start|stop|status]"
   exit 1
esac
exit 0

6.修改/etc/init.d/oracle服務檔案許可權
[[email protected] init.d]# chmod 755 /etc/init.d/oracle
7.設定為開機啟動
[[email protected] ~]# chkconfig oracle on
8.進行service oracle start/stop/restart測試

9.Reboot重啟檢視Oracle監聽和例項程序均能自動啟動。

本來以為搞定了的 重啟之後登陸又報錯

[root@template ~]# su oracle
[oracle@template root]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 526 10:24:27 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect sys as sysdba
輸入口令: 
已連線到空閒例程。
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

ORA-00845: MEMORY_TARGET not supported on this system網上大致是說
1.初始化引數MEMORY_TARGET或MEMORY_MAX_TARGET不能大於共享記憶體(/dev/shm),為了解決這個問題,可以增大/dev/shm
如:
mount -t tmpfs shmfs -o size=7g /dev/shm
2.為了確保作業系統重啟之後能生效,需要修改/etc/fstab檔案
shmfs /dev/shm tmpfs size=26g 0
3.如果/dev/shm沒有掛載也會報上面的錯,所認需要確保已經掛載

加到到26G

UUID=bad70c1b-a5ed-44c3-8915-dc97715cec5b /                       ext4    defaults        1 1
UUID=042dbbac-8779-48bc-b146-440d2b08e1e8 /boot                   ext4    defaults        1 2
UUID=d493e650-ec82-4b48-89fb-62656bf52f40 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults,size=26g         0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

/dev/vdb                /data                   ext3    defaults        0 0 
~                   

到此終於搞定了。重啟了兩次測試了也沒問題。2016年5月26日11:28:46 紀念一下!
總結回顧一下。
因為第一次裝走了很多彎路。各種報錯各種折騰,抱著不放棄的信仰終於還是被我搞定了。
第一步:修改系統配置檔案,為安裝做準備。解壓好安裝包。
第二步:編輯應答檔案命令進行安裝。
第三步:資料庫配置,靜