RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available

尛樣兒發表於2011-04-17

在使用rman duplicate複製standby資料庫的時候,由於standby資料庫例項必須處於非mount狀態,所以主資料庫直接連線是會報錯的,需要在standby資料庫服務上的監聽器上配置靜態的服務名,如下:
$GRID_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = rtdg1)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = rtdg1)
    )
  )
不配置、或者配置的ORACLE_HOME,和SID_NAME不正確都有可能導致出現此錯誤。請仔細檢查ORACLE_HOME,ORACLE_SID環境變數設定設定,在listener.ora中是否配置正確了ORACLE_HOME,SID_NAME(與環境變數匹配)。

配置完成後需要重啟監聽器才能生效。
可以使用Net Manager來配置。
如果你使用的是11gR2的版本,請注意監聽器是在grid使用者下配置。

另外還有一點需要注意:
如果配置正確的話,使用RMAN連線應該看到如下內容:
[oracle@rhel1 ~]$ rman target / auxiliary

Recovery Manager: Release 11.2.0.2.0 - Production on Sun Apr 17 09:43:14 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RACTEST (DBID=3276406709)
connected to auxiliary database: RACTEST
(not mounted)
#not mounted,表示已經連上啟動例項的auxiliary資料庫例項。

如果ORACLE_HOME環境變數設定不正確,與實際的環境變數不匹配連線後的結果是:
[oracle@rhel1 ~]$ rman target / auxiliary

Recovery Manager: Release 11.2.0.2.0 - Production on Sun Apr 17 09:43:14 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

connected to target database: RACTEST (DBID=3276406709)
connected to auxiliary database: RACTEST
(not started)
#not started,說明我們連線到一個空閒例程,這種情況通常就是靜態服務名中ORACLE_HOME配置不正確,或者SID配置不正確導致的。

這樣連線到auxiliary執行duplicate就會報此錯誤!這點需要注意。另外我們透過sqlplus as sysdba的方式也可以測試一下是否連線到啟動例項的例項,還是連線上了空閒例項。

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

相關文章