設定到相同SID仍無法連線例項

yangtingkun發表於2012-03-20

今天有同事問,為什麼設定了正確的SID後仍然連線到空閒例項,且啟動到MOUNT狀態就報錯。

 

 

根據他的描述,基本上可以判斷是ORACLE_HOME的設定問題,於是做了一個簡單的例子重新了這個問題:

[orat0@hpserver2 ~]$ env|grep ORACLE
ORACLE_SID=orcl10g
ORACLE_BASE=/t0/orat0/app/oracle
ORACLE_HOME=/t0/orat0/app/oracle/product/10.2.0/db_1
[orat0@hpserver2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Mar 22 16:06:48 2012

Copyright (c) 1982, 2010, Oracle. All Rights Reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 524288000 bytes
Fixed Size 2097560 bytes
Variable Size 146804328 bytes
Database Buffers 373293056 bytes
Redo Buffers 2093056 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[orat0@hpserver2 ~]$ export ORACLE_HOME=/t0/orat0/app/oracle/product/10.2.0/db_1/
[orat0@hpserver2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Mar 22 16:07:21 2012

Copyright (c) 1982, 2010, Oracle. All Rights Reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 524288000 bytes
Fixed Size 2097560 bytes
Variable Size 146804328 bytes
Database Buffers 373293056 bytes
Redo Buffers 2093056 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

Oracle在啟動例項時,根據ORACLE_HOMEORACLE_SID的值來唯一確定例項的,雖然/t0/orat0/app/oracle/product/10.2.0/db_1/t0/orat0/app/oracle/product/10.2.0/db_1/是同一個目錄,但是對Oracle而言,二者是不同的,因此在啟動例項的時候,會啟動額外的例項。

而嘗試MOUNT時,由於嘗試載入相同的控制檔案,導致了上面的報錯。

此外,如果ORACLE_HOME的設定不同,還可能造成監聽的異常。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-719303/,如需轉載,請註明出處,否則將追究法律責任。

相關文章