2013年2月26日火曜日
oracle expdpとimpdp
expdpとimpdpを使ってサーバAからサーバBにデータ引っ越ししてみた。
ここはサーバA上での作業
expdp hoge_user/hoge_pass schemas=hoge
※何も指定しなかったら、以下のパスに出力されてた...
★c:\app\oracle\product\11.2.0\dbhome_1\RDBMS\log\EXPDAT.DMP
ここからサーバB上での作業(※oracleをインストールしただけのまっさらなサーバ)
dmpファイルをサーバAからサーバBへコピー・・・
※Oracleに管理者(system)でログイン
-- サーバAと同じスキーマ(ここではhoge)を用意する
-- 表領域作成
CREATE SMALLFILE TABLESPACE "hoge"
DATAFILE 'C:\APP\ORACLE\ORADATA\SERVERNAME\hoge'
SIZE 100M AUTOEXTEND ON NEXT 50K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
-- さらにユーザも作成
CREATE USER "hoge_user"
PROFILE "DEFAULT" IDENTIFIED BY "hoge_pass"
DEFAULT TABLESPACE "hoge"
TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK
GRANT "CONNECT" TO "hoge_user"
-- 作成したユーザに権限をセット
ALTER USER "hoge_user" QUOTA UNLIMITED ON "hoge"
GRANT "DBA" TO "hoge_user"
ALTER USER "hoge_user" DEFAULT ROLE ALL
-- ユーザ作成、権限の付与はかなりいいかげんなので、適切なものに変更した方が良いと思う...
-- データ(EXPDAT.DMP)取り込み
-- 指定なしだと c:\app\oracle\product\11.2.0\dbhome_1\RDBMS\log\EXPDAT.DMP を読みに行くらしいので
-- サーバB上の「サーバAと同じパス」にファイルを配置してみた。
impdp hoge_user/hoge_pass schemas=hoge
サーバB作業完了
...サーバAのスキーマとログインユーザまで含めて(サーバBに手動でcreate user などを発行しないで)ごっそりコピーする方法ってあるのかな?
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿