私はOracle 11gデータベースを使用しています。このデータベースには、多数のテーブルで構成される12を超えるスキーマがあります。これらのテーブルの主キーのシーケンスを作成しました。また、メインスキーマからアプリケーションを参照するためのシノニムも作成しました。
私の問題は、1つのサーバーでDBからスキーマをエクスポート(expdpを使用)し、別のサーバーにインストールされているdbにダンプファイルをインポート(impdp)しようとすると、一部のテーブルのシーケンス値のみが変更されます。表スペースまたはスキーマを再マップしようとしても、シーケンスの値は、それぞれの表の行よりも小さい値を示します。そのため、アプリケーションにアクセスすると、データの保存中にエラーがスローされます。
私は混乱していて、これを解決するためのアイデアを思いつきません。お知らせ下さい。この問題を解決する方法はありますか?
前もって感謝します。
flashback_scn
やflashback_time
のようなパラメーターなしでライブデータベースに対してエクスポートコマンドを実行すると、エクスポート中の一貫性が保証されます。これらのオブジェクトは異なる時間にエクスポートされ、別の。
たとえば、シーケンスオブジェクトがテーブルの前にエクスポートされ、アプリケーションがシーケンスを使用して新しいレコードを挿入し、後でエクスポートした場合、テーブルとシーケンスが同期していない可能性があります。
エクスポートプロセスを開始する前にアプリケーションを停止するか、flashback_time
などのexpdp
parametersを使用すると(アプリケーションを停止しない限り、このパラメーターで指定した時間以降に行われたすべてのトランザクションがエクスポートされない場合があります)、この状況を防ぐことができます。または、インポート後にシーケンス値を再作成して調整できます。