次の手順では、主クラスタは cluster-paris (phys-paris-1 ノードと phys-paris-2 ノード) およびスタンバイクラスタは cluster-newyork (phys-newyork-1 と phys-newyork-2) という名前になっています。サフィックス -crs が Oracle Clusterware の仮想 IP ホスト名に追加されます。
cluster-paris 上のプライマリデータベースは sales で、sales1 および sales2 というインスタンスを持っています。 cluster-newyork 上のスタンバイデータベースは salesdr で、salesdr1 および salesdr2 というインスタンスを持っています。各データベースと各インスタンスのネットサービス名には、サフィックス -svc が追加されます。たとえば、sales-svc または sales1 -svc のようになります。
Oracle ユーザー .profile または .cshrc ファイルを編集し、正しい Oracle SID 、ORACLE_HOME、および PATH 環境変数がローカルの Oracle RAC データベースインスタンスに対して設定されていることを確認します。 特に指定がない限り、必要な操作は、保護されたデータベースインスタンスをホストする主クラスタ内のノードからコマンドを実行するだけです。
すべての主ノードおよびスタンバイノード上で Oracle Clusterware によって使用される Oracle 仮想 IP アドレスが解決できることを確認します。
phys-paris-1# getent hosts phys-paris-1-crs 10.11.112.41 phys-paris-1-crs … |
主クラスタ上にデータベースを作成します。
Oracle Database Configuration Assistant (dbca) または SQL*Plus ユーティリティーのいずれかを使用します。
プライマリデータベースに対する Oracle パスワードファイルが存在することを確認します。
oracle (phys-paris-1)$ cd ${ORACLE_HOME}/dbs oracle (phys-paris-1)$ ls -l orapwsales1 lrwxrwxrwx 1 oracle oinstall 25 November 2 02:06 orapwsales1 -> /oradata/SALES/orapwsales |
Oracle Data Guard では、主クラスタとスタンバイクラスタに参加するすべてのノードで、パスワードファイルを一致させる必要があります。
パスワードファイルがない場合は、以下の手順に従って作成します。
oracle (phys-paris-1)$ orapwd file=${ORACLE_HOME}/dbs/orapwsales1 \ password=sysdba_password |
その後、このファイルを共有ストレージ上の任意の場所に移動し、各ノードからのシンボリックリンクを作成できます。各ノード上でのローカル SID を反映するよう、ファイル名を変更します。その後、このファイルをスタンバイクラスタ (cluster-newyork) にコピーします。
sqlplus コマンドを使用して、データベースがロギングモードで動作していることを確認します。
oracle (phys-paris-1)$ sqlplus '/ as sysdba' SQL> alter database force logging; Database altered. |
Oracle Data Guard Broker 構成ファイルの場所を構成します。
次のように sqlplus コマンドを実行し、これら 2 つのファイル名を構成に従った名前に置き換えます。これらのファイルが、すべての cluster-paris から見ることができる共有ストレージに置かれていることを確認します。
oracle (phys-paris-1)$ sqlplus '/ as sysdba' SQL> alter system set dg_broker_config_file1='/oradata/SALES/dr1sales.dat' 2 scope=both sid='*'; System altered. SQL> alter system set dg_broker_config_file2='/oradata/SALES/dr2sales.dat' 2 scope=both sid='*'; System altered. |
すべてのデータベースインスタンスをシャットダウンします。
プライマリデータベース上で、単一のデータベースインスタンスをマウントし、Oracle データベースのフラッシュバック機能を有効にします。
oracle (phys-paris-1)$ sqlplus '/ as sysdba' SQL> startup mount; ORACLE instance started. Total System Global Area 532676608 bytes Fixed Size 2031416 bytes Variable Size 276824264 bytes Database Buffers 247463936 bytes Redo Buffers 6356992 bytes Database mounted. System altered. SQL> alter database archivelog; Database altered. SQL> alter database flashback on; Database altered. SQL> alter database open; Database altered. |
もう一方のデータベースインスタンスを再起動します。
データベースのスタンバイ REDO ログを作成します。
構成によっては、多数の REDO ログを追加しなければならない場合があります。これらのログの名前、数、およびサイズは多くの要因によって決まります。要因には、OFA (Oiptimal Flexible Architecture) を使用するかどうか、オンライン REDO ログの数、これらのログのサイズなどがあります。次の例では、OFA のネーミングスキームが使用されている状況で、50 MB の REDO ログファイルを 1 つ構成する方法を示します。デフォルトでは、通常 2 ノードの Oracle RAC データベースには、6 つのログファイルを追加する必要があります。
oracle (phys-paris-1)$ sqlplus '/ as sysdba' SQL> alter database add standby logfile size 50m; Database altered. |
Oracle ログのアーカイブ先を構成します。
構成によっては、Oracle ログのアーカイブ先のパラメータを 1 つ以上変更または追加しなければならない場合があります。これらのパラメータには、チューニング可能なプロパティーが数多くあります。詳細については、Oracle のマニュアルを参照してください。次の例では、ログのアーカイブ先が 2 つ設定されています。1 つはローカルクラスタ用、もう 1 つはスタンバイクラスタ用で、OFA のネーミングが使用されています。
oracle (phys-paris-1)$ sqlplus '/ as sysdba' SQL> alter system set log_archive_dest_1='location=use_db_recovery_file_dest 2 arch mandatory valid_for=(all_logfiles,all_roles) 3 db_unique_name=sales' scope=both sid='*'; System altered. SQL> alter system set log_archive_dest_2='service=salesdr-svc 2 lgwr sync affirm valid_for=(online_logfiles,primary_role) 3 db_unique_name=salesdr' scope=both sid='*'; System altered. SQL> alter system set log_archive_dest_10='location=use_db_recovery_file_dest' 2 scope=both sid='*'; System altered. SQL> alter system set standby_file_management='AUTO' scope=both sid='*'; System altered. |
FAL (Fetch Archive Log) パラメータを構成します。
失われているアーカイブ REDO ログを取得するサーバー上の場所と、REDO ログの送信先となるクライアント上の場所をデータベースに認識させるには、FAL システムプロパティーを設定する必要があります。これらのプロパティーでは、ソースデータベースと宛先データベースのネットサービス名が使用されます。 次の sqlplus コマンドを実行して、構成に従った正しい値にパラメータを設定します。
oracle (phys-paris-1)$ sqlplus '/ as sysdba' SQL> alter system set fal_server='salesdr-svc' scope=both sid='*'; System altered. SQL> alter system set fal_client='sales-svc' scope=both sid='*'; System altered. |