web-dev-qa-db-ja.com

ORA-01031:スタンバイに接続する権限が不十分です

スタンバイデータベースを構成してしばらくの間動作しましたが、スタンバイの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)
 ) )
1
kozlone

コマンド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」に設定します。

2
JSapkota