- PR -

Oracle ExportImport

1
投稿者投稿内容
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2006-03-16 17:07
Oracleのエキスポート/インポートに関して質問させて下さい。
(といいますか、少し不安なので確認の意味で)

<環境>
Oracle8i Database ver8.1.6
Windows2000 Server

現在、データベースからエキスポートしたDumpファイルがあるのですが、
(exp file=xxx.dump userid=system/manager full=y log=xxx.log)
これを同じ環境のデータベースへインポートしようとしてます。

imp xxx/xxx@xxxx file=xxx.dump log=xxx.log fromuser=xxxx touser=xxxx
full=y ignore=y commit=y

上記の式を考えています。

現在、インポートしたいデータベースには、テーブルなどなど入っており
ますが、一度、スキーマをDropした後にインポートするのか、テーブルのみを
Dropするのかどうか迷っています。例えば、テーブルに既にデータが入っていて、
このテーブルをインポートしたときは、データが2重に入りますよね?
(列のPrimaryKeyにもよると思いますけど)

あまりこういった作業はおこなわないので、どうするのがベターなのでしょうか?
アドバイスを頂けたらと思います。







甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-03-17 00:30
引用:

鼻セレブさんの書き込み (2006-03-16 17:07) より:
(といいますか、少し不安なので確認の意味で)


#不安に思っているなら、試験環境を作ってテストしましょう。

引用:

このテーブルをインポートしたときは、データが2重に入りますよね?


いや、テーブルをCreateする事に失敗すると、データもインポートされなかった気がします。テーブルをDropしておくか、あるいは別のテーブル名やユーザー名でインポートする必要があるかと。

あっしっはスキーマをDropした後にインポートしています。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
takepon
ベテラン
会議室デビュー日: 2005/11/28
投稿数: 55
お住まい・勤務地: 千葉県・東京都
投稿日時: 2006-03-17 03:29
こんばんは。

引用:

#不安に思っているなら、試験環境を作ってテストしましょう。



全くその通りです!!

引用:

いや、テーブルをCreateする事に失敗すると、データもインポートされなかった気がします。テーブルをDropしておくか、あるいは別のテーブル名やユーザー名でインポートする必要があるかと。



一応、ignore=Y をインポート時に指定すると、失敗系は無視されますが、
なんとなく気持ち悪いですね。

#エクスポートのデータ中には、CREATE TABLE文相当のものが含まれています

何がベターかと言われると、よく分かりませんが、
自分はいつも、インポートするスキーマにはオブジェクトが一つもない(CREATE USER を実行した直後のような)状態にしてインポートしています。

#実際には DROP USER xxx CASCADE で削除し、CREATE USER xxx で作り直してます

個人的には、フルエクスポート(full=y)はあんまり好きではないですね。

_________________
takepon
てんてこダンス
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2006-03-17 09:57
ご返答ありがとうございました。

試験環境はありますが、周りに聞けるような人がいないので、
(職種的に)申し訳ありませんでした。

とりあえず、drop user xxx cascade -> create user xxx
んで、full=yでおこなってみようと思います。

1

スキルアップ/キャリアアップ(JOB@IT)