しばらく前に、スタンバイデータベースの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