구성 완료

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) 의 경우 중개자 구성 파일이 공유 저장 영역에 있어야 합니다.

  1. 온-프레미스 데이터베이스 호스트에 대한 dg_broker_start 값을 확인합니다. False로 설정해야 합니다.
    SQL> show parameter dg_broker_start;
    다음과 같이 출력됩니다:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  2. Oracle Data Guard 파일에서 온-프레미스 데이터베이스를 확인하십시오.
    SQL> show parameter dg_broker_config_file1;
    SQL> show parameter dg_broker_config_file2;
  3. 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;
  4. 기본 데이터베이스에서 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 
  5. 대기 데이터베이스 호스트에 대한 dg_broker_start 값을 확인하십시오. false로 설정해야 합니다.
    SQL> show parameter dg_broker_start;
    다음과 같이 출력됩니다:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  6. 대기 데이터베이스에서 Oracle Data Guard 파일을 확인하십시오.
    SQL> show parameter dg_broker_config_file1;
    SQL> show parameter dg_broker_config_file2;
  7. 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;
  8. 대기 데이터베이스에서 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) 를 사용하여 기본 온-프레미스 호스트의 중개자 구성에 대기 데이터베이스 프로파일을 등록하거나 추가합니다.

  1. 기본 호스트에 sys로 로그인합니다.
    $ dgmgrl sys/sys password@net service name for primary database
  2. 기본 데이터베이스 이름을 사용하는 구성을 생성합니다.
    DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT
              IDENTIFIER IS primary database name;
  3. 대기 데이터베이스를 추가합니다.
    DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; 
  4. 구성 사용
    DGMGRL> enable configuration;
  5. 구성을 표시합니다.
    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) 인스턴스로 복사합니다.

  1. 온-프레미스 데이터베이스 파일을 봅니다.
    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
  2. 온-프레미스 데이터 파일에 대한 각 그룹의 크기를 봅니다.
    select bytes, group# from v$log;
    다음과 같이 출력됩니다:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
  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
  4. 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.
  5. 로그 파일의 그룹 번호 및 멤버를 봅니다.
    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.
  6. 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)
  7. 대기 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
  8. 대기 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.
  9. 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)
  10. OCI에서 대기 데이터베이스 인스턴스를 편집하고 상태를 apply-off로 설정한 다음 명령행 인터페이스를 종료합니다.
    DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;
    Succeeded.
    DGMGRL> exit
  11. OCI에서 대기 데이터베이스 인스턴스에 로그인합니다.
    [oracle@droci admin]$ sqlplus / as sysdba
  12. 로그 파일의 그룹 번호 및 멤버를 봅니다.
    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
  13. 각 그룹의 크기를 봅니다.
    select bytes, group# from v$log;
    다음과 같이 출력됩니다:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    3
     209715200	    2
    
  14. 대기 로그 파일 그룹을 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.
  15. 로그 파일의 그룹 번호 및 멤버를 봅니다.
    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.
  16. 대기 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.
  17. OCI에서 대기 데이터베이스 인스턴스를 편집하고 상태를 apply-on로 설정합니다.
    DGMGRL> edit database orclcdb_iad1s3 set state=apply-on;
  18. OCI에서 대기 데이터베이스 인스턴스를 편집하고 전송 상태를 transport-on로 설정한 다음 명령행 인터페이스를 종료합니다.
    DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;
    
    Succeeded.
    DGMGRL> exit
  19. 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
  20. 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
  21. 관리되는 대기 데이터베이스를 복구합니다.
    SQL> recover managed standby database cancel;
    다음과 같이 출력됩니다:
    Media recovery complete
  22. convert 매개변수를 사용하여 파일을 봅니다.
    SQL> show parameter convert;
    다음과 같이 출력됩니다:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert		     string
    log_file_name_convert		     string
    pdb_file_name_convert		     string
  23. 데이터베이스 파일을 봅니다.
    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
  24. SCN(데이터베이스 시스템 변경 번호) 을 확인합니다.
    SQL> select current_scn from v$database;
    다음과 같이 출력됩니다:
    CURRENT_SCN
    -----------
        2906060
  25. 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.
  26. 로그 파일을 사용하여 관리되는 대기 데이터베이스의 복구를 사용 안함으로 설정합니다.
    SQL> recover managed standby database using current logfile disconnect;
    Media recovery complete.
  27. SCN(데이터베이스 시스템 변경 번호) 을 확인합니다.
    SQL> select current_scn from v$database;
    다음과 같이 출력됩니다:
    CURRENT_SCN
    -----------
        2906060
  28. 대상 매개변수와 함께 파일을 표시합니다.
    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
  29. 복구의 설명을 표시합니다.
    SQL> select comments from v$recovery_progress;
    다음과 같이 출력됩니다:
    COMMENTS
    --------------------------------------------------------------------
    RCVID: 4165711446800375620
    SCN: 2907015
    
    COMMENTS
    --------------------------------------------------------------------
    RCVID: 12395680609799335065
    SCN: 2906061
  30. 복구 날짜를 확인합니다.
    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