ORA-12528: TNS:listener: all appropriate instances are blocking new connections


ORA-12528

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)
    

Author: halberd.lee

Created: 2019-12-22 Sun 13:19

Validate


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM