通過duplicate方式搭建DG,用rman連接主備庫的時候,會遇到ORA-12528: TNS:listener: all appropriate instances are blocking new connections。
出現這個錯誤的原因是備庫的實例處於nomount階段,所以沒有被註冊在監聽裡,當處於mount階段時,PMON進程才會註冊實例到監聽,因此,從監聽狀態來看,實例為blocked狀態。
結合MOS上的文章419440.1,下面給出常用的2個方案:
- 在備庫的listener.ora中註冊靜態監聽
格式為:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = <db_name>)
(ORACLE_HOME = <oracle_home>)
(SID_NAME = <oracle_sid>)
)
)
重啟監聽後,查看監聽狀態。
- 使用Oracle10G的特性,在tnsname文件中,在備庫的連接串中加入(UR=A),但此方法不適用於ACTIVE DUPLICATE
格式為:
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <host_name>)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <service_name>)(UR=A)
)
)
測試連接方法:
- sqlplus sys/@ as sysdba
- startup nomount
- shutdown immediate;
- exit
- sqlplus sys/@ as sysdba
- startup nomount;