環境:Linux 5.4 Oracle 11.2.0.3
在Linux上連接Oracle時遇到報錯:
SQL> show parameter sga
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db_1/dbs/initorcal.ora'
上面的'../initorcal.ora'報錯說明當前Oracle數據庫識別的數據庫實例名(即SID)為:orcal;
可能是安裝Oracle時的SID的設置和環境變量裡設置的SID不一致造成的。
解決方法:
1.查詢當前的數據實例名(SID)
[oracle@oradb ~]$ echo $ORACLE_SID
orcal
2.查看環境變量的SID配置
[oracle@oradb ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_SID=orcl
發現系統識別的實例名orcal和環境變量設置的為orcl不一致,這時我們需要修改實例名SID
3.修改oracle用戶的ORACLE_SID環境變量,如將orcal修改為orcl
[oracle@oradb ~]$ vi /home/oracle/.bash_profile
export ORACLE_SID=orcl
4.修改/etc/oratab文件,將sid名由orcal修改為orcl
[oracle@oradb ~]$ vi /etc/oratab
orcl:/u01/app/oracle/product/11.2.0/db_1:N
5、進入到$ORACLE_HOME/dbs目錄,如我的 /u01/app/oracle/product/11.2.0/db_1/dbs
將所有文件名中包含原來的sid的修改為對應的新sid的
[oracle@oradb ~]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs
[oracle@oradb dbs]$ ls
hc_orcal.dat init.ora lkORCAL orapworcal spfileorcal.ora
[oracle@oradb dbs]$ mv hc_orcal.dat hc_orcl.dat
[oracle@oradb dbs]$ mv lkORCAL lkORCL
[oracle@oradb dbs]$ mv orapworcal orapworcl
[oracle@oradb dbs]$ mv spfileorcal.ora spfileorcl.ora
6.啟動數據庫
[oracle@oradb dbs]$ sqlplus / as sysdba
SQL> startup
ORACLE instance started.
數據庫成功啟動!!