Data Guard 환경 구성

파라미터 설정

db name 파라미터 조회

show parameter db_name
show parameter db_unique_name
SQL> show parameter db_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      orcl

SQL> show parameter db_unique_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      ORCL
ALTER SYSTEM SET db_unique_name = ORCL scope=spfile;

 

아카이브 환경 설정

아카이브 로그 파라미터 설정

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCL_STB)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL_STB NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL_STB';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
-- ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCL_STB)';

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL_STB NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL_STB';

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

System altered.

 

아카이브 로그 모드 활성화

SELECT log_mode FROM v$database;
SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
ARCHIVELOG
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

 

강제 로그 적용 모드 활성화

ALTER DATABASE FORCE LOGGING;
ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER DATABASE FORCE LOGGING;

Database altered.
 
SQL> ALTER SYSTEM SWITCH LOGFILE;

System altered.

 

Data Guard 환경 설정

Data Guard 관련 파라미터 설정

ALTER SYSTEM SET FAL_CLIENT=ORCL;
ALTER SYSTEM SET FAL_SERVER=ORCL_STB;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> ALTER SYSTEM SET FAL_CLIENT=ORCL;

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER=ORCL_STB;

System altered.
 
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

System altered.

 

Standby Log File 생성

ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo01.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo02.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo03.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo01.log') SIZE 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo02.log') SIZE 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo03.log') SIZE 200M;

Database altered.

SQL> SELECT group#, member, type FROM v$logfile;

    GROUP# MEMBER                                             TYPE
---------- -------------------------------------------------- -------
         3 /u01/app/oracle/oradata/orcl/redo03.log            ONLINE
         2 /u01/app/oracle/oradata/orcl/redo02.log            ONLINE
         1 /u01/app/oracle/oradata/orcl/redo01.log            ONLINE
         4 /u01/app/oracle/oradata/orcl/standby_redo01.log    STANDBY
         5 /u01/app/oracle/oradata/orcl/standby_redo02.log    STANDBY
         6 /u01/app/oracle/oradata/orcl/standby_redo03.log    STANDBY

6 rows selected.

 

플래시백 활성화 (옵션)

ALTER DATABASE FLASHBACK ON;
SQL> SELECT flashback_on FROM v$database;

FLASHBACK_ON
------------------
NO

SQL> ALTER DATABASE FLASHBACK ON;

Database altered.

SQL> SELECT flashback_on FROM v$database;

FLASHBACK_ON
------------------
YES

 

Standby 서버 환경 설정

디렉토리 생성

mkdir -p /u01/app/oracle/oradata/orcl/orclpdb
mkdir -p /u01/app/oracle/oradata/orcl/pdbseed
mkdir -p /u01/app/oracle/fast_recovery_area/orcl
mkdir -p /u01/app/oracle/admin/orcl/adump
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/oradata/orcl/orclpdb
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/oradata/orcl/pdbseed
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/fast_recovery_area/orcl
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/admin/orcl/adump

 

패스워드 파일 생성

orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10 format=12

 

임시 파라미터 파일 생성

*.db_name='orcl'
[oracle@orcl ~]$ cat orcl_stb.ora
*.db_name='orcl'