web-dev-qa-db-ja.com

データベースのエクスポートでエラーが発生しました

Oracle11gデータベースを使用しています。論理バックアップの場合、以下のコマンドを使用してデータベースを毎日エクスポートしており、ダンプサイズは約12GBです。 、しかし今、私は私のexpdpで問題に直面しています。

expdp 'sys/sys#123@Test as sysdba' DUMPFILE=Backup_04042017.dmp LOGFILE=BakupLog_04042017_1603.log FULL=y consistent=y

エクスポートは正常に完了しましたが、2つのテーブルがエクスポートされていません。次のエラーがログに表示されます。

ORA-31693: Table data object "Owner"."Table_1" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-01555: snapshot too old: rollback segment number  with name "" too small
ORA-22924: snapshot too old

多くのブログから読んでいるように、undo_retention値をデフォルトから36000に設定し、以下のコマンドを使用して対応するテーブルの保持を設定しました。

alter table OWNER.TABLE modify lob(DESCRIPTION_HTML_) (retention); 

期待どおりに動作しません。そこで、以下のコマンドを使用してPCTVERSIONを40%に設定しました。

ALTER TABLE OWNER.TABLE MODIFY LOB (DESCRIPTION_HTML_) (PCTVERSION 40);

私の悪い、それもうまくいきませんでした。また、同じエラーが発生した単一のテーブルをエクスポートしようとしました。

PCTVERSIONを40%以上に設定できますか?それは私の本番データベースに逆の影響を及ぼしますか?

以下は、最適なundo_retentionがundo_retentionよりも低い値を示しているundoサイズに関連して得られた結果です。さらに、needed_undo_sizeはactual_undo_sizeよりも大きくなっています。

enter image description here

また、

enter image description here

Undo_sizeを増やす必要がありますか?データベース構成に基づいてどのように計算する必要がありますか?

1
akr
  1. undo_sizeを増やす必要がありますか? …

    はい、それはまさにあなたがしなければならないことです。エクスポートには、操作のstartからの一貫したMVCCスナップショットが必要です。 UNDO_RETENTION 無視されます UNDO表領域が固定サイズであるか、拡張できない場合:

    UNDO_RETENTIONは、元に戻す保持の下限しきい値を(秒単位で)指定します。 AUTOEXTEND UNDO表領域の場合、システムは少なくともこのパラメーターで指定された時間だけUNDOを保持し、クエリのUNDO要件を満たすようにUNDO保持期間を自動的に調整します。固定サイズのUNDO表領域の場合、システムは、UNDO表領域のサイズと使用履歴に基づいて可能な最大のUNDO保持期間を自動的に調整し、UNDO_RETENTION保持保証が有効になっていない限り。

  2. …データベース構成に基づいて[元に戻すサイズ]をどのように計算する必要がありますか?

    これは、UNDOの生成速度(DMLを使用)とエクスポートにかかる時間に基づいて計算する必要があります。適切なサイズを見つけるか、生成されるUNDOが少ないときにエクスポートを実行する必要があります。またはエクスポートを高速化します。使用可能なスペースがある場合は、UNDOのサイズを大きくするのが簡単な解決策です。