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

PDBのプラグを抜くORA-17528エラー

    Oracle19.3で不要になったPDBを削除しようとしています。次のエラーが発生します:

    SQL> alter pluggable database DEV_PDB close immediate instances=all;

    Pluggable database altered.

    SQL> alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml';
    alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml'

    *
    ERROR at line 1:

    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5590 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5589 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5588 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5587 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5586 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5585 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5584 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5583 (block # 1)
    ORA-17500: ODM err:Invalid argument

    ORA-01114: IO error writing block to file 5582 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5581 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5580 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5579 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5578 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5577 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-01114: IO error writing block to file 5576 (block # 1)
    ORA-17500: ODM err:Invalid argument
    ORA-17528: A read-only file or a file opened read-only cannot be written to:
    /u01/app/oracle/oradata/DEV_PDB/data04/users01.dbf.

    うーん…おもしろい。 Oracle 12.1.0.2で同じプロセスを実行したとき、この問題は発生しませんでした(12.2と18をスキップしました)。

    MOS Note 2419236.1と私自身の作業のおかげで(Noteは私の問題と完全には一致しません)、問題を解決することができました。問題は、このPDBがかつて私の環境でクローン化されたPDBの基盤であったことです。マルチテナント環境でPDBを作成し、それを複製して、ITスタッフ用の複数の開発データベースとテストデータベースを作成します。 Oracle 12.2以降では、OracleがクローンソースPDBのOSレベルでファイルパーミッションを変更することを学びました。ファイルのアクセス許可は読み取り専用に設定されています。 PDBのプラグを抜こうとすると、データファイルヘッダーに情報を書き込む必要があり、上記のエラーが発生します。

    回避策は、データファイルのファイル権限を640に変更し、プラグを抜く操作を再試行することです。 Note 2419236.1の回避策にはダウンタイムが必要ですが、私の回避策には必要ありません。


    1. SQL ServerのDB_NAME()とORIGINAL_DB_NAME():違いは何ですか?

    2. Dapperを使用して(IDで)2100行を超える行を削除する正しい方法

    3. SQL Server一括挿入–パート1

    4. MySQL:グループ関数の無効な使用