• ベストアンサー
  • 困ってます

インポートすれば、前の情報に戻るのでしょうか?

  • 質問No.5834988
  • 閲覧数158
  • ありがとう数2
  • 回答数1

お礼率 83% (30/36)

テーブルに列やインデックスの変更など、どんな変更しても、インポートすれば、エクスポート時のテーブルの状態に戻るのでしょうか?

環境:Oracle 10g R2
   Windows 2003 Server R2

ユーザー(スキーマ):userA
このスキーマには、3つ作成したテーブルあるとします。
tableA
tableB
tableC

[tableB]のテーブル定義を変更するのですが、失敗した時のために
バックアップをとっておき、変更前の状態に復元できるようにしたいと考えています。

テーブル定義の変更は、主キーの削除、インデックスの追加を行ないます。

[変更テーブルのみexp、imp]
1.exp userA/passA file=D:\expUserA_tableB.dmp tables=(tableB)
2.tableBのテーブル定義を変更 <-- 失敗
3.drop table tableB <-- 変更に失敗したテーブルを削除
4.imp userA/passA file=D:\expUserA_tableB.dmp tables=(tableB)

上記の方法で、変更前の状態に戻るでしょうか?
実行してtableBが変更前の(主キーがあり、作成したインデックスがない)テーブル定義に
戻っていることは確認できるのですが、この戻し方で本当に正しいのか確信がもてません。
例えば、統計情報とか、そのテーブルに紐付いている?情報も全て変更する前の状態に戻っているのでしょうか?

それとも、スキーマ(userA)をエクスポートし、スキーマ(userA)を削除し、
エクスポートしたスキーマをインポートしないと戻らないでしょうか?
よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 47% (436/922)

こんにちは

tableBの表定義やインデックス、データに関しては、それでOKです。
統計情報に関しては別です。
変更後に再取得されていない場合は元のまま、取得されている場合は戻りません。
放っておけば取得し直しますし、手動で取得し直す(DBMS_STATS)事も可能です。
お礼コメント
Aki_601

お礼率 83% (30/36)

回答ありがとうございます。
taka451213さんの回答で、安心してテーブル変更を行えます。
本当にありがとうございました。m(_ _)m
投稿日時:2010/04/20 11:38
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ