sql >> データベース >  >> RDS >> Oracle

フィジカル・スタンバイ・データベースのMRPのORA-01111

    しばらく前に、スタンバイデータベースのMRPがORA-01111で失敗し、アラートログに次の詳細なエラーが表示されました

    Alert Log in Standby Shows MRP is terminated with below error
    =================================================================
    File #8 added to control file as 'UNNAMED00008' because
    the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
    The file should be manually created to continue.
    MRP0: Background Media Recovery terminated with error 1111
    Thu Jan 08 11:02:35 2016
    Errors in file /u01/oracle/product/11.2.0/diag/rdbms/TEST/test/trace/TEST_mrp0_6436.trc:
    ORA-01111: name for data file 129 is unknown - rename to correct file
    ORA-01111: name for data file 129 is unknown - rename to correct file
    ORA-01110: data file 129: '/u01/oracle/product/11.2.0/dms/UNNAMED00008'

    ORA-01111の理由

    このエラーORA-01111は、PRIMARYデータベースにデータファイルまたはテーブルスペースを追加し、次の理由によりスタンバイデータベースに変換できなかった場合に発生します。

    • Standy_file_managementはMANUALに設定されています
    • プライマリスタンバイとフィジカルスタンバイのファイル構造が異なり、DB_FILE_NAME_CONVERTがプライマリとスタンバイのディレクトリ構造に従って設定されていません
    • データファイルを作成するためのスタンバイデータベースのスペースが不足しているか、権限が正しくありません

    プライマリから生成されたREDOログには、テーブルスペース/データファイルに関する情報が追加されますが、standby_file_management =MANUALのためにフィジカルスタンバイデータベースで正常に作成できなかったか、/がないために指定されたフォルダを見つけることができません。不正なファイル名変換。 /dbsまたは/databaseフォルダの「UNNAMED0000n」がオペレーティングシステムに依存し、最終的にMRPが終了するため、ファイルエントリがスタンバイ制御ファイルに追加されます。

    ORA-01111のソリューション

    スタンバイデータベースで上記のすべての手順を実行します:

    ステップ1: standby_file_management =‘MANUAL’

    であることを確認します

    注:Data Guard Brokerが有効になっている場合は、パラメータdb_file_name_convertを変更してから、Brokerを使用してパラメータを編集します。

    DGMGRL>edit database '<standby>' set property DbFileNameConvert='/u01','+DATA';
    DGMGRL>edit database '<standby>' set property StandbyFileManagement=manual;

    デフォルトでは、StandbyFileManagementはブローカーによってAUTOになっています。

    ステップ2: 「unnamedn」であるファイルを特定します

    SQL> select name from v$datafile;
    NAME
    ---------------------------------------
    +DATA/TEST/datafiles/SYSTEM.DBF
    +DATA/TEST/datafiles/UNDO.DBF
    +DATA/TEST/datafiles/SYSAUX.DBF
    +DATA/TEST/datafiles/index1.DBF
    /u01/oracle/product/11.2.0/dms/UNNAMED00008

    ステップ3: データファイルの名前を正しいファイル名に変更/作成します

    SQL> alter database create datafile '/u01/oracle/product/11.2.0/dms/UNNAMED00008' as '+DATA/TEST/datafiles/appstex.dbf';
    or
    SQL>alter database create datafile '/u01/oracle/product/11.2.0/dms/UNNAMED00008' as new;
    

    ステップ4: ファイル名が正しいことを確認します

    SQL> select name from v$datafile;
    NAME
    -------------------------------------------------
    +DATA/TEST/datafiles/SYSTEM.DBF
    +DATA/TEST/datafiles/UNDO.DBF
    +DATA/TEST/datafiles/SYSAUX.DBF
    +DATA/TEST/datafiles/index1.DBF
    +DATA/TEST/datafiles/appstex.dbf


    ステップ5: STANDBY_FILE_MANAGEMENTをAUTOに変更します

    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO scope=both;


    ステップ6: MRPを開始します(これはリアルタイム適用を使用しています)

    SQL> alter database recover managed standby database using current logfile disconnect;
    Database altered.

    ステップ7: MRPが期待どおりに実行されていることを確認します

    SQL> select process, status , sequence# from v$managed_standby;
    PROCESS STATUS SEQUENCE#
    --------- ------------ ----------
    ARCH CLOSING 1014
    ARCH CLOSING 1013
    MRP0 APPLYING_LOG 1001
    RFS IDLE 0
    RFS IDLE 0
    RFS IDLE 1015

    ステップ8: ファイルの作成に失敗する原因となったエラーを必ず修正してください。

    STANDBY_FILE_MANAGEMENTパラメータとDB_FILE_CONVERTパラメータが正しいことを確認する必要があります

    また読む
    ORA-03113:通信チャネルのファイルの終わり
    ORA-00257:アーカイバエラー。解放されるまで、内部のみを接続します。
    フィジカルスタンバイデータベース
    https://support.oracle.com/knowledge/Oracle%20Database%20Products/1416554_1.html


    1. WHERE句を動的/プログラムでSQLに追加します

    2. コマンドラインからPostgreSQLクエリの結果をCSVまたはTSV形式でどのように出力しますか?

    3. OracleシステムがUnicodeまたはマルチバイト文字をサポートするように設定されているかどうかを確認するにはどうすればよいですか?

    4. 高度なMySqlクエリ:別のテーブルからの情報でテーブルを更新します