[Oracle] データベースのコピー方法(オフライン・バックアップを利用する方法<その1>) | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

データベースを全く同じ構成でそっくりそのまま別のマシンにコピーしたい場合、オフライン・バックアップを利用して行うのが楽チンです。

オフライン・バックアップを利用したデータベース丸ごとコピーは、以下の手順で行います。
1.ソースデータベースの停止
コピーするデータベース・ファイルを確定させる(オフライン・バックアップを取得できる状態にする)ためにソース・データベースを停止します。
2.Oracleデータベース構成ファイルのコピー
ソース・データベース上のOracleデータベース構成ファイルを、ネットワークあるいはテープなどのバックアップ・メディアを介して、ターゲット・データベース上の同一ディレクトリにコピーします。

コピー対象となるOracleデータベース構成ファイルは以下のとおり。
  • サーバー・パラメータ・ファイル ※SPFILEで起動するインスタンスの場合
  • 初期化パラメータ・ファイル ※PFILEで起動するインスタンスの場合
  • パスワード・ファイル
  • 制御ファイル
  • データ・ファイル
  • REDOログファイル
  • トレース・ファイル・ディレクトリ ※ファイルのコピーは不要
  • アーカイブ・ディレクトリ ※アーカイブ・ログ・モードで運用しているデータベースの場合ファイルのコピーは不要。
それぞれのファイルが何処に格納されているかは、データベースによって異なりますが、例えば、何も考えずに標準の設定で作成した"ORCL"というデータベースの場合は、以下のようなディレクトリとファイルの構成になります。

C:  \oracle
    \admin
      \ORCL
        \bdump
        \cdump
        \udump
    \ora92
      \database
        spfileORCL.ora  
        PWDORCL.ora
    \oradata
      \ORCL
        controll~.ctl
        ~.dbf
        redo~.log
        \archive

3.ターゲット・データベースのOracleインスタンス(サービス)の作成
ターゲット・データベース上でコピーしたデータベースを起動するために、コマンド・プロンプトから以下のコマンドを実行し、Oracleインスタンス(サービス)を作成します。

ORADIM -NEW -SID { SID } -STARTMODE AUTO

    -NEW          :  Oracleインスタンスの新規作成
    -SID          :  作成するOracleインスタンスのSID
    -STARTMODE    :  OS起動時のOracleインスタンス(サービス)の自動起動設定

SIDが"ORCL"の場合、以下のようなコマンドとなります。

ORADIM -NEW -SID ORCL -STARTMODE AUTO

既に作成されているOracleインスタンス(サービス)を同一名称で再作成したい場合は、上記のコマンドを実行する前に以下のコマンドを実行して既存のOracleインスタンス(サービス)を削除します。

ORADIM -DELETE -SID { SID }

4.リスナーの構成

Oracle Net Managerを利用して、リスナーにデータベース・サービスを追加します。

※listener.oraの構成を理解しているのであれば、listener.oraを直接編集してもOKです。

5.Oracle Netサービスの構成
Oracle Net Managerを利用して、Oracle Netサービスを追加します。

※tnsnames.oraの構成を理解しているのであれば、tnsnames.oraを直接編集してもOKです。
6.ターゲット・データベースへの接続の確認
3.で作成されたOracleインスタンス(サービス)を再起動し、sqlplus、Oracle Enterprise Managerなどを使用してターゲット・データベースに接続できることを確認します。

※接続できない場合は、アラートログファイルやリスナー、Oracle Netの設定などを確認します。
7.ターゲット・データベースの初期化パラメータの調整
6.でデータベースのコピーは完了なのですが、メモリーの構成などの微調整が必要な場合は、以下の手順で行います。

Oracle Enterprise Managerでターゲット・データベースにsysユーザー(SYSDBA権限)で接続し、[インスタンス]-[構成]-[メモリー]の画面でOracleインスタンスのメモリー構成を確認し、ターゲット・データベースの物理メモリー構成や他のアプリケーションとのメモリーの配分を考慮して、以下のメモリー割り当てを調整し、Oracleインスタンスを再起動します。
  • 共有プール
  • バッファ・キャッシュ
  • ラージ・プール
  • Javaプール
  • SGA最大サイズ
  • 集計PGAターゲット
その他の初期化パラメータについても、必要であれば調整を行います。
補足.
同じソース・データベース、ターゲット・データベース間で繰り返しデータベースのコピーを行う場合、2回目以降は制御ファイル、データファイル、REDOログファイルのみをコピーするだけでOKです。




【関連エントリ】
[Oracle] データベースのコピー方法(オフライン・バックアップを利用する方法<その1>) 2004/09/09
[Oracle] データベースのコピー方法(オフライン・バックアップを利用する方法<その2>) 2004/09/10