web-dev-qa-db-ja.com

スタンバイデータベースのリスナーを開始できません

データガード構成の一部として、Oracleソフトウェアのみを使用してスタンバイデータベースをインストールし、必要に応じて.oraファイル/フォルダを構成しました。しかし、リスナーを起動しようとしたり、スタンバイ状態を確認しようとすると、次のエラーがスローされます。

Connecting to (ADDRESS=(PROTOCOL=tcp)(Host=)(PORT=1521))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
64-bit Windows Error: 61: Unknown error

次に、pfileを使用してdbを起動しようとしましたが、これも次のようなエラーを示しています。

SQL> startup pfile=C:\app_home\product\11.2.0\dbhome_1\database\initLOCAL2.ora
ORA-12560: TNS:protocol adapter error 

初めてやっているので、この段階ではとても混乱しています。どうすればこれを解決できますか?

1
akr

Windowsサーバーでデータガード環境のスタンバイを作成するときに実行する手順は次のとおりです。コメントで、現在問題の特定に役立つ手順を確認してください。 (prd1は現在生きているインスタンスであり、stby1は作成しようとしているスタンバイインスタンスです)

1- Oracleバイナリをインストールし、stby1のホストサーバーにデータベースを作成せずに、ライブインスタンスと同じレベルにパッチを適用します

2- prd1インスタンスで、スタンバイ用の制御ファイルを作成しますALTER DATABASE CREATE STANDBY CONTROLFILE AS 'D:\CONTROL01.CTL';

3-%Oracle_HOME%\ database(windows)の内容をprd1からstby1への同じパスにコピーします

4- CMDウィンドウを使用して、スタンバイデータベースインスタンスのWindowsサービスを手動で作成します

set Oracle_HOME=[path to Oracle_home]

oradim -new -sid STBY1

set Oracle_SID=STBY1

sqlplus / as sysdba

startup mount;

5-リスナー.oraファイルとtnsnames.oraファイルがprd1とstby1の両方で正しく構成されていることを確認します

両方のサーバーの%Oracle_HOME%\ network\admin\tnsnames.oraには、次のようなものが含まれています

prd1_server1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = server1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = prd1)
    )
  )
stby1_server2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = server2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = stby1)
    )
  )

6- server1(prd1)の%Oracle_HOME%\ network\admin\listener.oraには、

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(Host = server1)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME =prd1_DGMGRL)
      (Oracle_HOME = [path to Oracle_home])
      (SID_NAME = prd1)
    )
  )

7- stby1server2のlistener.oraには次のようなものが含まれています

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(Host = server2)(PORT = 1521))
  )


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
     (GLOBAL_DBNAME =stby1_DGMGRL)
      (Oracle_HOME = [path to Oracle_home])
      (SID_NAME = stby1)
    )
  )

8-上記のすべての設定を理解したら、stby1インスタンスに移動し、SQLPLUSを使用してデータベースを回復します

RECOVER STANDBY DATABASE;
1
A_V