구성 완료
Oracle Data Guard를 구성하고, 대기 데이터베이스를 등록하고, 온-프레미스 및 대기 데이터베이스 비밀번호를 동기화합니다.
Oracle Data Guard Broker 구성
기본 및 대기 데이터베이스에서 dg_broker_config_file
매개변수를 사용으로 설정하여 Oracle Data Guard를 구성합니다. Oracle ASM(Oracle Automatic Storage Management) 의 경우 중개자 구성 파일을 별도의 디스크 그룹에 배치합니다. Oracle RAC(Oracle Real Application Clusters) 의 경우 중개자 구성 파일이 공유 저장 영역에 있어야 합니다.
- 온-프레미스 데이터베이스 호스트에 대한
dg_broker_start
값을 확인합니다. False로 설정해야 합니다.SQL> show parameter dg_broker_start;
다음과 같이 출력됩니다:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- Oracle Data Guard 파일에서 온-프레미스 데이터베이스를 확인하십시오.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- Oracle RAC 또는 Oracle ASM가 있는 경우 구성 파일 위치를 변경할 수 있습니다.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location;
- 기본 데이터베이스에서 Oracle Data Guard Broker 프로세스를 시작합니다.
SQL> alter system set dg_broker_start=true; SQL> show parameter dg_broker_start
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUE
SQL> select pname from v$process where pname like 'DMON%';
PNAME ----- DMON
- 대기 데이터베이스 호스트에 대한
dg_broker_start
값을 확인하십시오.false
로 설정해야 합니다.SQL> show parameter dg_broker_start;
다음과 같이 출력됩니다:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- 대기 데이터베이스에서 Oracle Data Guard 파일을 확인하십시오.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- Oracle RAC 또는 Oracle ASM가 있는 경우 구성 파일 위치를 변경할 수 있습니다.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location;
- 대기 데이터베이스에서 Oracle Data Guard Broker 프로세스를 시작합니다.
SQL> alter system set dg_broker_start=true; SQL> show parameter dg_broker_start
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUE
SQL> select pname from v$process where pname like 'DMON%';
PNAME ----- DMON
대기 데이터베이스 등록
Oracle Data Guard 명령행 인터페이스(DGMGRL) 를 사용하여 기본 온-프레미스 호스트의 중개자 구성에 대기 데이터베이스 프로파일을 등록하거나 추가합니다.
- 기본 호스트에
sys
로 로그인합니다.$ dgmgrl sys/sys password@net service name for primary database
- 기본 데이터베이스 이름을 사용하는 구성을 생성합니다.
DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;
- 대기 데이터베이스를 추가합니다.
DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;
- 구성 사용
DGMGRL> enable configuration;
- 구성을 표시합니다.
DGMGRL> show configuration;
다음과 같이 출력됩니다:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database Warning: ORA-16789: standby redo logs configured incorrectly orclcdb_iad1s3 - Physical standby database Error: ORA-16810: multiple errors or warnings detected for the member Fast-Start Failover: Disabled Configuration Status: ERROR (status updated 10 seconds ago)
온-프레미스에서 OCI로 리두 로그 파일 복사
redo
로그 파일 및 기타 데이터베이스 파일을 온-프레미스 데이터베이스에서 OCI(Oracle Cloud Infrastructure) 인스턴스로 복사합니다.
- 온-프레미스 데이터베이스 파일을 봅니다.
select name from v$datafile;
다음과 같이 출력됩니다:NAME -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
- 온-프레미스 데이터 파일에 대한 각 그룹의 크기를 봅니다.
select bytes, group# from v$log;
다음과 같이 출력됩니다:BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3
- 온-프레미스 데이터 파일에 대한
redo
로그를 봅니다.select member from v$logfile;
다음과 같이 출력됩니다:MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- 각
redo
로그에 대한 대기 로그 파일 그룹을 추가합니다.예를 들어, 세 개의redo
로그 파일이 있는 경우 세 개의 대기 로그 파일 그룹을 추가합니다.SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200; Database altered. SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200; Database altered. SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200; Database altered.
- 로그 파일의 그룹 번호 및 멤버를 봅니다.
SQL> select group#,member from v$logfile;
다음과 같이 출력됩니다:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log 4 /opt/oracle/oradata/ORCLCDB/redo_sb04.log 5 /opt/oracle/oradata/ORCLCDB/redo_sb05.log 6 /opt/oracle/oradata/ORCLCDB/redo_sb06.log 6 rows selected.
- Oracle Data Guard에서 구성을 봅니다.
DGMGRL> show configuration
다음과 같이 출력됩니다:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database orclcdb_iad1s3 - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 60 seconds ago)
- 대기 OCI 데이터베이스 인스턴스에서 리두 로그를 봅니다.
select member from v$logfile;
다음과 같이 출력됩니다:MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- 대기 OCI 데이터베이스 인스턴스의 Oracle Data Guard 명령행 인터페이스(DGMGRL) 세션에
sys
사용자 이름과 비밀번호로 로그인합니다.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:
다음과 같이 출력됩니다:. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA.
- OCI에서 대기 데이터베이스에 대한 구성을 봅니다.
DGMGRL> show configuration;
다음과 같이 출력됩니다:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database orclcdb_iad1s3 - Physical standby database Warning: ORA-16809: multiple warnings detected for the member Fast-Start Failover: Disabled Configuration Status: WARNING (status updated 50 seconds ago)
- OCI에서 대기 데이터베이스 인스턴스를 편집하고 상태를
apply-off
로 설정한 다음 명령행 인터페이스를 종료합니다.DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;
Succeeded.
DGMGRL> exit
- OCI에서 대기 데이터베이스 인스턴스에 로그인합니다.
[oracle@droci admin]$ sqlplus / as sysdba
- 로그 파일의 그룹 번호 및 멤버를 봅니다.
SQL> select group#,member from v$logfile;
다음과 같이 출력됩니다:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log
- 각 그룹의 크기를 봅니다.
select bytes, group# from v$log;
다음과 같이 출력됩니다:BYTES GROUP# ---------- ---------- 209715200 1 209715200 3 209715200 2
- 대기 로그 파일 그룹을 OCI의 데이터베이스에 추가합니다.
SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200; Database altered. SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200; Database altered. SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200; Database altered.
- 로그 파일의 그룹 번호 및 멤버를 봅니다.
SQL> select group#,member from v$logfile;
다음과 같이 출력됩니다:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log 4 /opt/oracle/oradata/ORCLCDB/redo_sb04.log 5 /opt/oracle/oradata/ORCLCDB/redo_sb05.log 6 /opt/oracle/oradata/ORCLCDB/redo_sb06.log 6 rows selected.
- 대기 OCI 데이터베이스 인스턴스의 Oracle Data Guard 명령행 인터페이스(DGMGRL) 세션에
sys
사용자 이름과 비밀번호로 로그인합니다.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:
. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA.
- OCI에서 대기 데이터베이스 인스턴스를 편집하고 상태를
apply-on
로 설정합니다.DGMGRL> edit database orclcdb_iad1s3 set state=apply-on;
- OCI에서 대기 데이터베이스 인스턴스를 편집하고 전송 상태를
transport-on
로 설정한 다음 명령행 인터페이스를 종료합니다.DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;
Succeeded.
DGMGRL> exit
- OCI의 대기 데이터베이스에 있는 대기 로그 파일을 확인합니다.
SQL> select * from v$logfile where type='STANDBY';
다음과 같이 출력됩니다:GROUP# STATUS TYPE ---------- ------- ------- MEMBER -------------------------------------------------------------------- IS_ CON_ID --- ---------- 4 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb04.log NO 0 5 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb05.log NO 0 6 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb06.log NO 0
- OCI에서 대기 데이터베이스의 리두 로그 파일을 확인합니다.
SQL> select member from v$logfile where type != 'STANDBY';
다음과 같이 출력됩니다:MEMBER -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- 관리되는 대기 데이터베이스를 복구합니다.
SQL> recover managed standby database cancel;
다음과 같이 출력됩니다:Media recovery complete
convert
매개변수를 사용하여 파일을 봅니다.SQL> show parameter convert;
다음과 같이 출력됩니다:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string log_file_name_convert string pdb_file_name_convert string
- 데이터베이스 파일을 봅니다.
select name from v$datafile;
다음과 같이 출력됩니다:NAME -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
- SCN(데이터베이스 시스템 변경 번호) 을 확인합니다.
SQL> select current_scn from v$database;
다음과 같이 출력됩니다:CURRENT_SCN ----------- 2906060
- Oracle Data Guard 아카이브 세부정보를 봅니다.
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
다음과 같이 출력됩니다:ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ RFS archive 0 0 IDLE RFS archive 0 0 IDLE RFS async 1 18 RECEIVING RFS ping 1 18 IDLE broker monitor 0 0 IDLE broker instance slave 0 0 IDLE archive redo 0 0 IDLE archive local 0 0 IDLE redo transport timer 0 0 IDLE gap manager 0 0 IDLE log writer 0 0 IDLE broker net slave 0 0 IDLE broker worker 0 0 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE redo transport monitor 0 0 IDLE 16 rows selected.
- 로그 파일을 사용하여 관리되는 대기 데이터베이스의 복구를 사용 안함으로 설정합니다.
SQL> recover managed standby database using current logfile disconnect;
Media recovery complete.
- SCN(데이터베이스 시스템 변경 번호) 을 확인합니다.
SQL> select current_scn from v$database;
다음과 같이 출력됩니다:CURRENT_SCN ----------- 2906060
- 대상 매개변수와 함께 파일을 표시합니다.
SQL>show parameter dest;
다음과 같이 출력됩니다:NAME TYPE VALUE ------------------------------------ ----------- ------------------- cursor_bind_capture_destination string memory+disk db_create_online_log_dest_1 string /u03/app/oracle/redo/ db_create_online_log_dest_2 string db_create_online_log_dest_3 string db_create_online_log_dest_4 string db_create_online_log_dest_5 string db_recovery_file_dest_size big integer 238G log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_11 string log_archive_dest_12 string
- 복구의 설명을 표시합니다.
SQL> select comments from v$recovery_progress;
다음과 같이 출력됩니다:COMMENTS -------------------------------------------------------------------- RCVID: 4165711446800375620 SCN: 2907015 COMMENTS -------------------------------------------------------------------- RCVID: 12395680609799335065 SCN: 2906061
- 복구 날짜를 확인합니다.
SQL> select START_TIME,comments from v$recovery_progress order by 1;
다음과 같이 출력됩니다:START_TIM --------- COMMENTS -------------------------------------------------------------------- 03-SEP-20 03-SEP-20 03-SEP-20 RCVID: 2657984638848411078 START_TIM --------- COMMENTS -------------------------------------------------------------------------------- 03-SEP-20