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

ORA-65139:XMLメタデータ・ファイルとデータ・ファイルの不一致

    マルチテナントに移行するときに、非CDBを新しいマルチテナント環境に接続しようとしていました。本番環境の非CDBのゴールデンイメージを作成します。そうすると、すべての開発データベースとテストデータベースがゴールデンイメージからクローン化されます。ただし、最初に、非CDBを接続する必要があります。ディスクスナップショットをマルチテナントデータベースサーバーにマウントしています。 XMLファイルも生成し、次のコマンドで非CDBをプラグインする準備ができました:

    CREATE PLUGGABLE DATABASE gold180904
    USING '/home/oracle/source_db.xml'
    NOCOPY
    SOURCE_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/data01',
             '/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data01',
    '/u01/app/oracle/oradata/data02','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data02',
    '/u01/app/oracle/oradata/data03','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03',
    '/u01/app/oracle/oradata/data04','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data04')
    TEMPFILE REUSE;

    残念ながら、次のエラーが発生しました:

    CREATE PLUGGABLE DATABASE gold180904
    *
    ERROR at line 1:
    ORA-65139: Mismatch between XML metadata file and data file
    /u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03/datafile12.dbf for
    value of rdba (4194824 in the plug XML file, 4458552 in the data file)

    私の研究では、ORA-65139エラーは通常、データベースをREADWRITEとして開いた状態でXMLファイルを生成したときに見られます。しかし、XMLファイルが生成されたときにデータベースが読み取り専用であったことは知っています。さらに、MOSとGoogle検索で見つけた同様の問題はすべて「fcpsbの値」でしたが、エラーメッセージの最後の行には「rdbaの値」と表示されています。 RDBAがこれと何の関係があるのか​​わかりません。また、エラーメッセージの値は、メッセージのデータファイルリストにマップされていません。だから、これは私にとって謎めいたものでした。

    いくつかの異なることを試した後、プラグインの互換性のチェックを実行することにしました。

    DECLARE
    compatible BOOLEAN;
    BEGIN
    compatible:=DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
         pdb_descr_file=>'/home/oracle/source_db.xml',
         pdb_name=>'GOLD180904');
    END;
    /

    PDB_PLUG_IN_VIOLATIONSをクエリすると、1行でエラーが発生しました。その見解でのそのメッセージは言った:

    PSUバンドルパッチ180717(DATABASE PATCH SET UPDATE 12.1.0.2.180717):PDBにインストールされていますが、CDBにはインストールされていません。

    これは今ではもっと理にかなっています。ソースデータベースは、最新のPSUが適用された実稼働環境です。 CDBは新品であり、パッチはまだ表示されていません。最新のPSUをCDBに適用しましたが、プラグイン操作は次の試行で正常に機能しました。

    結局、エラーメッセージが問題の根本的な原因とは何の関係もないことは明らかでした。少なくとも私には。


    1. Linux上のSQLServer2016

    2. データベースメール(SSMS)のデフォルトのパブリックプロファイルを設定する

    3. MySQLでコンマを使用して数値をフォーマットする方法

    4. GI12.2アップグレード用にASMのVOTEディスクグループを増やす