ORA-12528
Table of Contents
1 錯誤信息
ERROR:ORA-12528: TNS:listener: all appropriate instances are blocking new connections
2 原因
- 實例未打開(搭建standby時常見)
- 使用動態監聽未配置local_listener引起
3 解決方法
3.1 實例未打開
舉個粟子,使用duplicate 復制數據庫時,目標實例只啟動到nomount狀態。此時,監聽 中對應實例的狀態就是“BLOCKED”. 解決方法是在TSN配置添加特殊標記(UR = A),示例 如下:
TEST_DG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.10 )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = halberd)
(UR=A)
)
)
3.2 監聽相關
3.2.1 動態監聽改為靜態監聽
靜態監聽配置示例如下:
SID_LIST_LISTENER_FOREIGN =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = dbm012)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1)
(GLOBAL_DBNAME=dbm01)
)
)
LISTENER_FOREIGN =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.24.69.47)(PORT = 1521))
)
)
3.2.2 配置local_listener
使用動態監聽,但是沒有配置local_listener參數。案例解決如下:
-
修改local_listener參數
-- 修改local_listener SYS@halberddg1>show parameter list NAME TYPE VALUE -------------------- ------ ------------------------------ listener_networks string local_listener string remote_listener string SYS@halberddg1>alter system set local_listener='(ADDRESS=(PROTOCAL=TCP)(HOST=10.1.10.131)(PORT=1521))'; System altered. SYS@halberddg1> SYS@halberddg1> SYS@halberddg1> show parameter list NAME TYPE VALUE -------------------- ------ ------------------------------ listener_networks string local_listener string (ADDRESS=(PROTOCAL=TCP)(HOST=1 0.1.61.131)(PORT=1521)) remote_listener string SYS@halberddg1> exit # 修改監聽配置文件(listener.ora),將global_dbname(halberd 改為halberddg1) 部分內容如下: (GLOBAL_DBNAME = halberddg1) (ORACLE_HOME=/tpsys/app/oracle/product/12.1.0.2/dbhome_1) (SID_NAME=halberddg1)
Created: 2019-12-22 Sun 13:19
