RDS for Oracle に impdp する際に ORA-20900 エラーが発生する。

質問・問題

Data Pump ユーティリティの expdp で生成したダンプファイルを RDS for Oracle に FULL でインポートすると失敗します。

▼エラー出力例

オブジェクト タイプ SCHEMA_EXPORT/TABLE/INDEX/INDEX を処理しています
ORA-39083: オブジェクト タイプ INDEX:"SYS"."<INDEX_NAME>" はエラーのため作成できませんでした:
ORA-04088: トリガー 'RDSADMIN.<TRIGGER_NAME>'
ORAの実行中にエラーが発生しました-00604: 再帰的 SQL レベル 3 でエラーが発生しました。
ORA-20900: SYS、SYSTEM、または RDSADMIN が所有するインデックスとトリガーは許可されません。sql=CREATE INDEX "SYS"."<INDEX_NAME>" ON "<SCHEMA_NAME>"."<TABLE_NAME>" ("<C1>",

CREATE INDEX "SYS"."<INDEX_NAME>" ON "<SCHEMA_NAME>"."<TABLE_NAME>" (" <C1> ", " <C2> ") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1) MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSTEM" PARALLEL 1
処理オブジェクト タイプ SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
処理オブジェクト タイプ SCHEMA_EXPORT/T ABLE/INDEX/STATISTICS/INDEX_STATISTICS
処理オブジェクトタイプ SCHEMA_EXPORT/TABLE /CONSTRAINT/REF_CONSTRAINT
オブジェクト タイプ SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
ジョブ "<SCHEMA>" を処理しています。「SYS_IMPORT_SCHEMA_01」は、2023 年 7 月 20 日木曜日 15:38:28 に 3 つのエラーで完了しました。経過時間は 0 00:07:08 でした。

 

回答・解決方法

インデックスやトリガーなどのディクショナリ (SYS、SYSTEM、RDSADMIN 所有) オブジェクトは、データ・ディクショナリに損傷を与える可能性があるため、RDS for Oracle では許可されません。

回避策として、以下の対処のいずれかをご実施ください。

対策 1) FULL でインポートはを実行しない。
対策 2) 非 SYS スキーマ (SYS-、SYSTEM-、または RDSADMIN- 以外) に失敗したインデックスを作成する。
対策 3) インポート中に失敗したインデックスを除外する。

【参考記事】

[1] Oracle Data Pump を使用したインポート
=== 抜粋 ===

Oracle Data Pump のベストプラクティス

  • full モードでのインポートまたはシステムが管理するコンポーネントのスキーマのインポートは行わないでください。

    RDS for Oracle では SYS または SYSDBA 管理ユーザーへのアクセスが許可されていないため、これらのアクションによって Oracle データディレクトリが損傷し、データベースの安定性が影響を受ける可能性があります。

=========
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください