oracleのDB複製方法 同じサーバ内にDBの複製を別名で作成する事を検討しています。 exp,impコマンド以外で作成する事は出来ないでしょうか。 expしたdmpサイズは、40GBもあります。
Oracle・3,039閲覧
Oracle・3,039閲覧
この回答はいかがでしたか? リアクションしてみよう
ありがどうございます。参考に試してみます。
お礼日時:2012/9/19 22:45
sunsetltd2002さんの方法で良いのですが、 同じサーバということであればdbidとdbnameも変更する必要があるかと思いますので。 1) コピー元DBにて制御ファイルのテキストバックアップを作成 ALTER DATABASE BACKUP CONTROLFILE TO TRACE; ※トレースファイルとして出力されます 2) コピー元DBを停止し、一貫性バックアップ(コールドバックアップ:DBを停止した状態でデータファイルの物理コピー)を取得 3) 一貫性バックアップを別な場所に展開 4) 複製DB用に初期化パラメータを作成(またはコピー元のをコピーして修正) 5) 上記1)で出力したトレースファイルからCREATE CONTROLFILE文を取り出し、 DB名やデータファイル等のパス名を新しい環境に合わせて変更(2つ出力されているはずなので、下側のRESETLOGS付きの方) さらに、「REUSE DATABASE "旧DBNAME"」を「SETDATABASE "新DBNAME"」に変更 6) 複製DBをノーマウントモードで起動 STARTUP NOMOUNT 7) 上記5)で作成したSQL文を実行 8) RECOVER DATABASE UNTIL CALCELコマンドを実行 9) ALTER DATABASE OPEN RESETLOGSコマンドにてDBをオープン 10) コピー元DBを停止 11) 複製DBをマウントモードで起動 STARTUP MOUNT 12) nid target=sys/<SYSのパスワード> Y/Nの質問にはY 13) 複製DBをマウントモードで起動 STARTUP MOUNT 14) RECOVER DATABASE UNTIL CALCELコマンドを実行 15) ALTER DATABASE OPEN RESETLOGSコマンドにてDBをオープン 他には、rmanで複製する方法もあったと思います。
DBLINK(SQL*Netが必用?)を作成して他SIDのDBのテーブルからSELECTした結果をINSERTデータとして実行してやる事もできます。(INSERT文法を参照して下さい) ただし、ログやロールバックテーブル等を一時的に止めておかないと、時間がかかりすぎたり、パンクしたりする事があるのでご注意を。 データ量が大きいと、時間がとてもかかります(1晩 or 1日(それ以上かも)かかる事も。
Oracle
ログインボーナス0枚獲得!
1文字以上入力してください
※一度に投稿できるURLは5つまでです
※氏名やメールアドレスなどの個人情報は入力しないでください