スタンバイデータベースを構成してしばらくの間動作しましたが、スタンバイのREDOログスレッドがプライマリよりもはるかに遅れていることに気付きました。アラートログとトレースファイルを調査した後、スタンバイサーバーへの接続に問題があることがわかりました。
プライマリサーバーで入力すると:
sqlplus sys/manager@TESTSTAN as sysdba
出力は次のとおりです。
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 29 13:36:17 2016
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR: ORA-01031: insufficient privileges
しかし、スタンバイからプライマリに接続できます。
[oravis@standbysrv bin]$ sqlplus sys/manager@TESTPROD as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 29 13:46:18 2016
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount
Oracle instance started.
Total System Global Area 422670336 bytes
Fixed Size 1336960 bytes
Variable Size 335546752 bytes
Database Buffers 79691776 bytes
Redo Buffers 6094848 bytes
Database mounted.
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
testprod MOUNTED
両方のホストで同じパスワードファイル。また、私はそれを数回再作成しましたが、これは役に立ちませんでした。 remote_login_passwordfileパラメータは両方のサーバーで排他的です。
スタンバイのlistener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = teststan)
(Oracle_HOME = /u01/app/oravis/product/11.2.0/dbhome_1)
(SID_NAME = test) ) )
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = standbysrv)(PORT = 1521))
) )
DYNAMIC_REGISTRATION_LISTENER=off
プライマリのtnsnames.ora:
TESTSTAN =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS =
(PROTOCOL = TCP)
(Host = standbysrv)
(PORT = 1521)) )
(CONNECT_DATA = (SERVICE_NAME = teststan) )
)
TESTPROD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = oratest)
(PORT = 1521)) )
(CONNECT_DATA =
(SID = test)
(SERVICE_NAME = testprod)
) )
コマンドps -ef|grep pmon
の出力によると、スタンバイデータベースのインスタンス名はteststan
です。
[oravis @ standbysrv〜] $ ps -ef | grep pmon oravis 2749 1 0 16:02? 00:00:00 ora_pmon_teststan oravis 2825 2697 0 16:03 pts/0 00:00:00 grep pmon
ただし、スタンバイデータベースのリスナーの説明では、SID_NAME
は「テスト」として定義されています。
Oracleは、存在しないパスワードファイル(orapwtest)を使用してsysユーザーを認証しようとします。
そこで、スタンバイサイトのlistener.oraファイルのSID_NAMEパラメータを「teststan」に設定します。