質問: フルインポートで警告が発生します はじめまして。 oracledbをfull=yでエクスポートして(壊れる前のものをエクスポートしています) 新しくdbを作成して full=yでインポートすると警告が多数発生します。 以下の通りにバッチファイルを作成して実行しています。 ※exp.bat d:\oracle\ora92\bin\exp.exe system/xxx@xxx full=y statistics=none file=e:\exp.dmp log=e:\exp.log ※imp.bat d:\oracle\ora92\bin\imp.exe system/xxx@xxx commit=y ignore=y full=y file=e:\exp.dmp log=e:\imp.log 上記を実行すると下記の警告が複数発生します。 imp-00017: 次の文は、oracleエラー1919で失敗しました: imp-00003: oracleエラー1919が発生しました。 ora-01919: ロール'sys'は存在しません ora-06512: "sys.dbms_rmin", 行56 imp-00061: 警告: オブジェクト型"system"."repcat$_object_null_vector"は、別の識別子ですでに存在します imp-00019: oracleエラー1により、行のインポートは拒否されました imp-00003: oracleエラー1が発生しました。 ora-00001: 一意制約(system.help_topic_seq)に反しています oracledbが壊れてしまい、戻そうとしても警告が出るので 現在はシステムバックアップを戻して対処しています。 出来れば、フルインポートでoracleを元に戻したいのです。 ご存知の方ご教示頂けないでしょうか。宜しくお願いします。
回答: impの起動は、インスタンスを新規作成の状態で、ユーザのtablespaceの作成後、ユーザ作成、そしてインポートの実行をしていますか。 例えば毎日データがエントリーされるoracleのexpファイルを昨日取得しものを今日そのままimpするとレコードが存在するので。 一意制約のエラーが出ます。(ignore=y)で無視されますが。 db全体なので各アカウントのオブジェクトを削除した状態で行ってみて下さい。 その他impの実行には (1)catexp.sqlかcatlog.sqlの実行。 (2)アカウントにdba権限が必要。 それと全データの場合sysユーザのトリガはインポート されませんのでご注意を。 今のダンプファイルより戻したいのであれば。 各アカウント毎にユーザ単位でのインポートは可能では。 systemやsysにユーザテーブル等を作成されていますか。