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
正常執行時間 0 天 0 小時 0 分 5 秒
跟蹤級別 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
正常執行時間 0 天 0 小時 2 分 32 秒
跟蹤級別 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
正常執行時間 0 天 0 小時 0 分 10 秒
跟蹤級別 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 星期三 5月 25 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 星期三 5月 25 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_HOME和ORACLE_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 星期四 5月 26 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 紀念一下!
總結回顧一下。
因為第一次裝走了很多彎路。各種報錯各種折騰,抱著不放棄的信仰終於還是被我搞定了。
第一步:修改系統配置檔案,為安裝做準備。解壓好安裝包。
第二步:編輯應答檔案命令進行安裝。
第三步:資料庫配置,靜