真夜中の障害テスト中にドハマリしたので、メモ。
Oracleを使ったシステムを構築している。
データリカバリテストとしてテーブルを一つDROPして、
FULL=Yでexpしておいたファイルから削除したテーブルを
TABLES=で指定してimpコマンドを実行したところ、
"表がありません"とエラー出力された。
sqlplusで接続すると確かに表は作成されていなかった。
ひとまずメッセージを信じてexpしたファイルをviewで
確認したが、件のテーブルをcreateする記述が確かにあった。
結局、勘で原因がわかった。
念のためにDB全体をバックアップするため、
expはSYSTEMユーザで実行している。
ただし、テーブルは通常利用する一般ユーザで作ったものだけを
旧戻しする想定だった。
exp同様、impもSYSTEMユーザで実行したが、
対象テーブルは所有者でないため、認識できなかったようだ。
TOUSERとFROMUSERに一般ユーザを指定したところ、
テーブルが無事に戻った。
0 件のコメント:
コメントを投稿