Oracle Data Guard の単一インスタンス構成手順

環境設定

プライマリDB: 192.168.21.142
スタンバイDB: 192.168.21.141
両DBともインスタンス名: adg, DB名: adg

1. ネットワーク設定

両サーバの/etc/hostsに以下を追加:

192.168.2.31 primary
192.168.2.101 standby

2. リスナー設定

プライマリDBのlistener.ora:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = adg)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/)
      (SID_NAME = adg)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = primary)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

スタンバイDBのlistener.ora:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = std)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/)
      (SID_NAME = adg)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

3. パスワードファイルの設定

orapwd file=/u01/app/oracle/product/11.2.0/dbs/orapwadg password=syspass entries=10
scp /u01/app/oracle/product/11.2.0/dbs/orapwadg standby:/u01/app/oracle/product/11.2.0/dbs/

データベース設定

1. 強制ロギングの有効化

SQL> ALTER DATABASE FORCE LOGGING;

2. アーカイブログモードの設定

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
SQL> ALTER SYSTEM SET log_archive_dest_1='location=/u01/app/arch/dg';

3. スタンバイREDOログの追加

SQL> ALTER DATABASE ADD STANDBY LOGFILE 
     GROUP 11 ('/u01/app/oracle/oradata/dg/redo11.log') SIZE 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE 
     GROUP 12 ('/u01/app/oracle/oradata/dg/redo12.log') SIZE 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE 
     GROUP 13 ('/u01/app/oracle/oradata/dg/redo13.log') SIZE 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE 
     GROUP 14 ('/u01/app/oracle/oradata/dg/redo14.log') SIZE 50M;

4. スタンバイ制御ファイルの作成

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/standby.ctl';
scp /tmp/standby.ctl standby:/u01/app/oracle/oradata/dg/control01.ctl

パラメータファイル設定

1. プライマリDBのパラメータ追加

*.db_unique_name='pri'
*.log_archive_config='DG_CONFIG=(pri,std)'
*.log_archive_dest_1='LOCATION=/u01/app/arch/dg VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pri'
*.log_archive_dest_2='SERVICE=std LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=std'
*.fal_server='std'
*.fal_client='pri'
*.standby_file_management='AUTO'

2. スタンバイDBのパラメータ追加

*.db_unique_name='std'
*.log_archive_config='DG_CONFIG=(pri,std)'
*.log_archive_dest_1='LOCATION=/u01/app/arch/dg VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=std'
*.log_archive_dest_2='SERVICE=pri LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pri'
*.fal_server='pri'
*.fal_client='std'
*.standby_file_management='AUTO'

スタンバイDBの起動

SQL> STARTUP NOMOUNT PFILE='/home/oracle/spfile/initdg.ora';
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

同期状態の確認

SQL> SELECT open_mode,database_role FROM v$database;
SQL> SELECT process,status,sequence# FROM v$managed_standby;
SQL> SELECT thread#,sequence#,applied FROM v$archived_log;

タグ: Oracle DataGuard DatabaseReplication HighAvailability

5月17日 10:36 投稿