토폴로지 배치

RMAN "from service" 절을 사용하면 네트워크를 통해 기본 데이터베이스 파일을 대기 데이터베이스로 복원 및 복구할 수 있습니다. 이 기능을 사용하면 RMAN DUPLICATE DATABASE 명령 대신 대기 데이터베이스를 인스턴스화할 수 있으며, 보다 직관적이고 오류 발생 가능성이 적으므로 시간을 절약할 수 있습니다.

주:

명령줄에 붙여 넣기 위해 명령 예제를 클립보드에 저장하려면 복사를 누릅니다. variables를 사용자의 구현과 관련된 값으로 바꿔야 합니다.

RMAN를 사용하여 Standby Database 생성

Oracle Recovery Manager(RMAN)를 사용하여 활성 primary database에서 standby database를 생성합니다. 또는 primary database의 백업에서 복원할 수 있습니다.

  1. 데이터베이스에 연결하고 NOMOUNT 모드로 데이터베이스를 시작합니다.
    $ rman target / 
    startup nomount;
  2. 기본 서비스에서 대기 제어 파일을 복원합니다. 이 예에서 DBUKS_898_LHR은 기본 데이터베이스입니다.
    restore standby controlfile from service 'DBUKS_898_LHR';
    다음과 비슷한 출력이 나타나야 합니다.
    Starting restore at 04-JUL-23 
    using target database control file instead of recovery catalog 
    allocated channel: ORA_DISK_1 
    channel ORA_DISK_1: SID=28 device type=DISK 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: restoring control file 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:04 
    output file name=+RECO/DBUKS_R2J_AMS/CONTROLFILE/current.256.1139953721 
    Finished restore at 04-JUL-23
  3. 데이터베이스를 마운트합니다.
    alter database mount;
    다음과 비슷한 출력이 나타나야 합니다.
    released channel: 
    ORA_DISK_1 Statement processed
  4. OCI 인스턴스의 루트로 Oracle 디렉토리의 권한을 열도록 변경합니다(chmod 777).
    cd /opt/ 
    ls -ltra 
    다음이 표시됩니다.
    drwxr-xr-x 10 root root 4096 Jun 20 03:52 oracle 
    입력:
    [root@ldbuksdr]# chmod 777 oracle/ 
    ls -ltra 
    다음이 표시됩니다.
    drwxrwxrwx 10 root root 4096 Jun 20 03:52 oracle
  5. 기본 데이터베이스에서 복원합니다(DBUKS_898_LHR).
    restore database from service ' DBUKS_898_LHR ';
    다음과 비슷한 출력이 나타나야 합니다.
    Starting restore at 04-JUL-23 
    using target database control file instead of recovery catalog 
    allocated channel: ORA_SBT_TAPE_1 
    channel ORA_SBT_TAPE_1: SID=162 device type=SBT_TAPE 
    channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=19.0.0.1 allocated 
    channel: ORA_DISK_1 channel ORA_DISK_1: SID=28 device type=DISK 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00001 to +DATA/DBUKS_898_LHR/DATAFILE/system.261.1139943103 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00003 to +DATA/DBUKS_898_LHR/DATAFILE/sysaux.268.1139943085 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:38 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00004 to +DATA/DBUKS_898_LHR/DATAFILE/undotbs1.260.1139943133 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:04 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00005 to +DATA/DBUKS_898_LHR/F9D6EA8CCAA09630E0530905F40A5107/DATAFILE/system.264.1139942759 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:49 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00006 to +DATA/DBUKS_898_LHR/F9D6EA8CCAA09630E0530905F40A5107/DATAFILE/sysaux.265.1139942759 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:25 channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00007 to +DATA/DBUKS_898_LHR/F9D6EA8CCAA09630E0530905F40A5107/DATAFILE/undotbs1.266.1139942759 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:18 
    channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00008 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/system.273.1139943583 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:04 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00009 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/sysaux.271.1139943599 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:16 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00010 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/undotbs1.270.1139943611 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:20 channel ORA_DISK_1: starting datafile backup set restore 
    channel ORA_DISK_1: using network backup set from service DBUKS_898_LHR 
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
    channel ORA_DISK_1: restoring datafile 00011 to +DATA/DBUKS_898_LHR/DATAFILE/users.269.1139943873 channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:02 
    channel ORA_SBT_TAPE_1: starting datafile backup set restore 
    channel ORA_SBT_TAPE_1: using network backup set from service DBUKS_898_LHR channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set 
    channel ORA_SBT_TAPE_1: restoring datafile 00012 to +DATA/DBUKS_898_LHR/FE812140C0716067E053F6005A0AEB32/DATAFILE/users.274.1139943875 
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:02 
    channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:02 
    Finished restore at 04-JUL-23
    exit ;

Standby Database 검증

그런 다음 standby database를 검증해야 합니다.

  1. 데이터베이스 이름 및 롤을 확인합니다. SQL> 프롬프트에서 을 입력합니다.
     select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ; 

    다음과 유사한 응답이 표시됩니다.

    FORCE_LOGGING         FLASHBACK_ON       OPEN_MODE       DATABASE_ROLE       DATAGUARD_BROKER        PROTECTION_MODE 
    -------------------- ------------------ --------------- ------------------- ------------------------ ---------------------------- 
    YES                  NO                  MOUNTED        PHYSICAL STANDBY       DISABLED              MAXIMUM PERFORMANCE
  2. 데이터베이스의 아카이브 프로세스, 상태 스레드 번호 및 시퀀스 번호를 확인합니다.
    select sysdate,process,status,thread#,sequence#,block# from v$managed_standby where status!='IDLE'; 

    다음과 유사한 응답이 표시됩니다.

    04-JUL-23    ARCH    CONNECTED    0    0    0 
    04-JUL-23    DGRD    ALLOCATED    0    0    0 
    04-JUL-23    DGRD    ALLOCATED    0    0    0 
    04-JUL-23    ARCH    CONNECTED    0    0    0 
    04-JUL-23    ARCH    CONNECTED    0    0    0 
    04-JUL-23    ARCH    CONNECTED    0    0    0 

    그리고 다음을 입력합니다.

    select distinct process from gv$managed_standby; 

    다음과 유사한 응답이 표시됩니다.

    PROCESS 
    --------- 
    ARCH 
    DGRD

기본 및 대기 데이터베이스에 대기 로그 파일 추가

대기 로그 파일은 대기 데이터베이스에서 기본 데이터베이스로부터 리두 데이터를 수신하는 데 사용됩니다. 기본 데이터베이스의 온라인 리두 로그에 기록된 레코드는 대기 데이터베이스로 전송되고 대기 리두 로그에 동시에 기록되므로 대기 데이터베이스에서 데이터가 손실될 확률이 최소화됩니다. 실시간 적용을 위해서는 대기 리두 로그가 필수입니다.
다음 단계에 대해 SQL> 명령 프롬프트를 사용합니다.
  1. 먼저 대기 로그 파일을 기본 데이터베이스에 추가합니다.
    1. 다음을 입력합니다.
      select group#, type, member from v$logfile; 

      다음과 유사한 응답이 표시됩니다.

      GROUP#      TYPE    MEMBER 
      ---------- ------- --------------------------------------------------------- 
      3          ONLINE  +RECO/DBUKS_898_LHR/ONLINELOG/group_3.259.1139942665 
      2          ONLINE  +RECO/DBUKS_898_LHR/ONLINELOG/group_2.258.1139942665 
      1          ONLINE  +RECO/DBUKS_898_LHR/ONLINELOG/group_1.257.1139942665
    2. 다음을 입력합니다.
      select bytes, group# from v$log;
      다음과 유사한 응답이 표시됩니다.
      1073741824 1 
      1073741824 3 
      1073741824 2
    3. 다음 일련의 명령을 입력합니다.
      SQL> alter database add standby logfile thread 1 group 5 ('+RECO') size 1073741824;
      alter database add standby logfile thread 1 group 6 ('+RECO') size 1073741824; 
      alter database add standby logfile thread 1 group 7 ('+RECO') size 1073741824;
      각각에 대한 응답은 다음과 같아야 합니다.
      Database altered
    4. 다음을 입력합니다.
      select group#, type, member from v$logfile;
      다음과 유사한 응답이 표시됩니다.
      GROUP#      TYPE      MEMBER 
      ---------- -------   ------------------------------------------------------- 
      3          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_3.259.1139942665 
      2          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_2.258.1139942665 
      1          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_1.257.1139942665 
      4          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_4.432.1141789993 
      5          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_5.431.1141790001 
      6          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_6.430.1141790011 
      7          STANDBY   +RECO/DBUKS_898_LHR/ONLINELOG/group_7.430.1141790017
    5. 로그 목록을 아카이브합니다.
      archive log list
  2. 이제 대기 데이터베이스에 대기 로그 파일을 추가하십시오.
    1. 다음을 입력합니다.
      select group#, type, member from v$logfile;
      다음과 유사한 응답이 표시됩니다.
      GROUP#      TYPE    MEMBER 
      ---------- ------- ------------------------------------------------------ 
      3          ONLINE  +RECO/DBUKS_R2J_AMS/ONLINELOG/group_3.489.1141280529 
      2          ONLINE  +RECO/DBUKS_R2J_AMS/ONLINELOG/group_2.488.1141280519 
      1          ONLINE  +RECO/DBUKS_R2J_AMS/ONLINELOG/group_1.487.1141280511
    2. 다음을 입력합니다.
      select bytes, group# from v$log;
      다음과 유사한 응답이 표시됩니다.
      1073741824 1 
      1073741824 3 
      1073741824 2
    3. 다음 일련의 명령을 입력합니다.
      alter database add standby logfile thread 1 group 4 ('+RECO') size 1073741824;
      alter database add standby logfile thread 1 group 5 ('+RECO') size 1073741824; 
      alter database add standby logfile thread 1 group 6 ('+RECO') size 1073741824; 
      alter database add standby logfile thread 1 group 7 ('+RECO') size 1073741824;
      각 명령에 대한 응답은 다음과 같아야 합니다.
      Database altered
    4. 다음을 입력합니다.
      select group#, type, member from v$logfile;
      다음과 유사한 응답이 표시됩니다.
      GROUP#      TYPE      MEMBER 
      ---------- -------   ------------------------------------------------------ 
      3          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_3.489.1141280529 
      2          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_2.488.1141280519 
      1          ONLINE    +RECO/DBUKS_898_LHR/ONLINELOG/group_1.487.1141280511 
      4          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_4.294.1141283919 
      5          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_5.295.1141283929 
      6          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_6.296.1141283937 
      7          STANDBY   +DATA/DBUKS_R2J_AMS/ONLINELOG/group_7.296.1141283938
  3. 기본 데이터베이스 고유 이름을 사용하여 로그 파일을 삭제합니다. 세 개의 로그 파일 중 하나는 현재 로그가 되므로 지금은 삭제할 수 없습니다. 이 파일은 나중에 삭제되고 재생성됩니다.
    1. 다음을 입력합니다.
      alter database drop logfile group 1;
      다음과 유사한 응답이 표시됩니다.
      alter database drop logfile group 1 
      * 
      ERROR at line 1: 
      ORA-01623: log 1 is current log for instance dbuks (thread 1) - cannot drop 
      ORA-00312: online log 1 thread 1: '+RECO/DBUKS_898_LHR/ONLINELOG/group_1.257.1139942665'
    2. 다음을 입력합니다.
      alter database drop logfile group 2; 
      alter database drop logfile group 3;
      각각에 대한 응답은 다음과 같아야 합니다.
      Database altered
  4. 다음 명령을 입력하여 로그 파일을 재생성합니다.
    alter database add logfile thread 1 group 2 ('+RECO') size 1073741824;
    alter database add logfile thread 1 group 3 ('+RECO') size 1073741824;
    각각에 대한 응답은 다음과 같아야 합니다.
    Database altered.

Oracle Data Guard Broker 구성

Oracle Data Guard Broker를 구성하고, standby database를 등록하고, primary database와 standby database를 동기화합니다. 기본 및 대기 데이터베이스에서 dg_broker_config_file 매개변수를 사용으로 설정하여 Oracle Data Guard Broker를 구성합니다. Oracle ASM(Oracle Automatic Storage Management)의 경우 중계자 구성 파일을 개별 디스크 그룹에 배치합니다. Oracle RAC(Oracle Real Application Clusters)의 경우 브로커 구성 파일이 공유 저장소에 있어야 합니다.
  1. 기본 데이터베이스 및 대기 데이터베이스에 대한 dg_broker_start 값을 확인하십시오. SQL 명령행에서 True로 설정되었는지 확인하고 다음을 입력합니다.
    show parameter dg_broker_start;
    다음과 비슷한 출력이 나타나야 합니다.
    NAME                                  TYPE         VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start                       boolean      TRUE 
    dg_broker_startFALSE로 설정된 경우 다음 단계로 진행하기 전에 매개변수를 TRUE로 설정하고 다음을 입력합니다.
    alter system set dg_broker_start=true; 
    select pname from v$process where pname like 'DMON%';
    다음과 비슷한 출력이 나타나야 합니다.
    PNAME 
    ----- 
    DMON
  2. Oracle Data Guard 파일에서 primary database를 확인합니다.
    show parameter dg_broker_config_file1;
    show parameter dg_broker_config_file2;
    Oracle RAC 또는 Oracle ASM을 사용하는 경우 다음과 같이 구성 파일 위치를 변경할 수 있습니다.
    alter system set dg_broker_config_file1=broker_config_file_location; 
    alter system set dg_broker_config_file2=broker_config_file_location; 
  3. primary 및 standby database 등록:
    Oracle Data Guard DGMGRL(명령행 인터페이스)을 사용하여 primary database를 등록하고 standby database 프로파일을 broker 구성에 추가합니다.
    1. 기본 호스트에 sys로 로그인합니다.
      dgmgrl sys/password@net_service_name_for_primary
    2. primary database 이름을 사용하는 구성을 생성합니다.
      CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary_database_name CONNECT IDENTIFIER IS primary_database_name; 
      다음과 비슷한 출력이 나타나야 합니다.
      CREATE CONFIGURATION dbuks_898_lhr_dbuks_r2j_ams AS PRIMARY DATABASE IS dbuks_898_lhr CONNECT IDENTIFIER IS dbuks_898_lhr;
    3. standby database를 추가합니다.
      ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;
      예:
      ADD DATABASE dbuks_r2j_ams AS CONNECT IDENTIFIER IS dbuks_r2j_ams MAINTAINED AS PHYSICAL; 
      
      다음과 비슷한 출력이 나타나야 합니다.
      Database "dbuks_r2j_ams" added
  4. 구성을 사용으로 설정합니다.
    enable configuration;
  5. 구성을 표시합니다.
    1. 다음을 입력합니다.
      show configuration; 

      주:

      적용 지연을 확인할 수 없다는 WARNING이 나타나면 sqlplus를 통해 primary database에 로그인하고 몇 가지 로그 전환을 수행합니다.
      다음과 비슷한 출력이 나타나야 합니다.
      Configuration - dbuks_898_lhr_dbuks_r2j_ams 
      Protection Mode: MaxPerformance 
      Members: 
      dbuks_898_lhr - Primary database 
      dbuks_r2j_ams - Physical standby database 
      Fast-Start Failover: Disabled 
      Configuration Status: 
      SUCCESS (status updated 36 seconds ago)
    2. primary database의 구성을 표시합니다(이 예제에서는 dbuks_898_lhr).
      show database dbuks_898_lhr 
      다음과 유사한 응답이 표시됩니다.
      Database - dbuks_898_lhr 
      Role: PRIMARY 
      Intended State: TRANSPORT-ON 
      Instance(s): 
      dbuks 
      Database Status: 
      SUCCESS
    3. 대기 데이터베이스에 대한 구성을 표시합니다(이 예의 경우 dbuks_r2j_ams).
      show database dbuks_r2j_ams 
      다음과 유사한 응답이 표시됩니다.
      Database - dbuks_r2j_ams 
      Role: PHYSICAL STANDBY 
      Intended State: APPLY-ON 
      Transport Lag: 0 seconds (computed 1 second ago) 
      Apply Lag: 0 seconds (computed 0 seconds ago) 
      Average Apply Rate: 59.00 KByte/s 
      Real Time Query: ON 
      Instance(s): 
      dbuks 
      Database Status: 
      SUCCESS

복제 확인

이제 standby database가 primary database에서 수신한 리두를 적용하기 시작합니다.

다음 단계에 대해 SQL> 명령 프롬프트를 사용합니다.
  1. MRP 프로세스를 확인합니다.
    1. 다음을 입력합니다.
      select sysdate, process, status, thread#, sequence#, block# 
      from v$managed_standby 
      where status!='IDLE';
      다음과 비슷한 출력이 나타나야 합니다.
      SYSDATE    PROCESS     STATUS         THREAD#      SEQUENCE#    BLOCK# 
      ---------  ---------  ------------   ----------   ----------   ---------- 
      10-JUL-23  DGRD       ALLOCATED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  DGRD       ALLOCATED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  ARCH       CONNECTED          0            0            0 
      10-JUL-23  RFS        RECEIVING          1           417          2413 
      10-JUL-23  MRP0       APPLYING_LOG       1           417          2412
    2. Data Guard 프로세스를 확인합니다.
      select distinct process from gv$managed_standby;
      다음과 비슷한 출력이 나타나야 합니다.
      PROCESS 
      --------- 
      DGRD 
      RFS 
      MRP0 
      ARCH
    3. 이제 standby database가 리두 로그를 적용하기 시작했습니다. primary database에서 일부 로그 전환을 수행하고 standby database에서 다시 확인합니다.
      select sysdate, process, status, thread#, sequence#, block#from v$managed_standbywhere status!='IDLE';
      다음과 비슷한 출력이 나타나야 합니다.
      SYSDATE      PROCESS    STATUS          THREAD#     SEQUENCE#     BLOCK#
      ---------   ---------   ------------   ----------   ----------   ----------
      04-JUL-23   DGRD        ALLOCATED           0           0           0
      04-JUL-23   ARCH        CONNECTED           0           0           0
      04-JUL-23   DGRD        ALLOCATED           0           0           0
      04-JUL-23   ARCH        CLOSING             1          253          1
      04-JUL-23   ARCH        CONNECTED           0           0           0
      04-JUL-23   ARCH        CLOSING             1          252          1
      04-JUL-23   MRP0        APPLYING_LOG        1          254          17
      04-JUL-23   RFS         RECEIVING           1          254          18
    4. primary database에 로그 리스트를 아카이브합니다.
      archive log list
      다음과 비슷한 출력이 나타나야 합니다.
      Database log mode Archive Mode 
      Automatic archival Enabled 
      Archive destination USE_DB_RECOVERY_FILE_DEST 
      Oldest online log sequence 415 
      Next log sequence to archive 417 
      Current log sequence 417 
      그리고 다음을 입력합니다.
      alter system switch logfile;
      다음 응답이 수신됩니다.
      System altered.
      다음을 입력합니다.
       / 
      다음이 표시됩니다.
      System altered.
      이제 로그 목록을 아카이브합니다.
      archive log list 
      다음 응답이 수신됩니다.
      Database log mode Archive Mode 
      Automatic archival Enabled 
      Archive destination USE_DB_RECOVERY_FILE_DEST 
      Oldest online log sequence 417 
      Next log sequence to archive 419 
      Current log sequence 419
    5. standby database에 로그 리스트를 아카이브하고 다음을 입력합니다.
      select sysdate, process, status, thread#, sequence#, block# 
      from v$managed_standby 
      where status!='IDLE';

      다음 응답이 수신됩니다.

      SYSDATE      PROCESS     STATUS        THREAD#      SEQUENCE#      BLOCK#
      ---------    ---------  ------------ ----------    ----------     ----------
      10-JUL-23    DGRD       ALLOCATED         0             0             0
      10-JUL-23    ARCH      CONNECTED          0             0             0
      10-JUL-23    DGRD      ALLOCATED          0             0             0
      10-JUL-23    ARCH      CLOSING            1            418            1
      10-JUL-23    ARCH      CONNECTED          0             0             0
      10-JUL-23    ARCH      CLOSING            1            417          2048
      10-JUL-23    RFS       RECEIVING          1            419           59
      10-JUL-23    MRP0      APPLYING_LOG       1            419           58
  2. 대기 데이터베이스에서 플래시백을 사용으로 설정:
    1. 다음을 입력합니다.
      ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel; 
      SQL> alter database flashback on;
      각 명령 뒤에 다음이 표시됩니다.
      Database altered
    2. 데이터베이스 Flashback이 활성화(설정)되었는지 확인합니다.
      select flashback_on from v$database;
      다음과 비슷한 출력이 나타나야 합니다.
      FLASHBACK_ON 
      ------------------ 
      YES 
    3. 그리고 다음을 입력합니다.
      recover managed standby database using current logfile disconnect from session;
      다음이 표시됩니다.
      Media recovery complete.
  3. 데이터베이스 세부 정보 보기:
    select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ;
    다음과 비슷한 출력이 나타나야 합니다.
    FORCE_LOGGING   FLASHBACK_ON   OPEN_MODE   DATABASE_ROLE     DATAGUARD_BROKER   PROTECTION_MODE 
    ---------------------------------------------------------- --------------- ----- ----------------------- ----------------------------- 
    YES             YES            MOUNTED     PHYSICAL STANDBY  ENABLED          MAXIMUM PERFORMANCE
  4. Server Control 유틸리티(srvctl)를 사용하여 standby database를 정지합니다.
    srvctl stop database -d db_unique_name
    출력은 다음과 유사해야 합니다.
    srvctl stop database -d dbuks_r2j_ams
  5. Server Control 유틸리티를 사용하여 standby database를 시작합니다.
    srvctl start database -d db_unique_name
    출력은 다음과 유사해야 합니다.
    srvctl start database -d dbuks_r2j_ams
  6. 데이터베이스 세부 정보 보기:
    select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ;
    출력은 다음과 유사해야 합니다.
     FORCE_LOGGING   FLASHBACK_ON   OPEN_MODE               DATABASE_ROLE      DATAGUARD_BROKER     PROTECTION_MODE 
    -----------------------------------------------------------------------   -------------------- ----------------------- 
    YES             YES             READ ONLY WITH APPLY   PHYSICAL STANDBY   ENABLED               MAXIMUM PERFORMANCE
  7. 이제 primary에서 일부 로그 파일 전환을 더 제공하고 리두가 standby에 적용되고 있는지 확인할 수 있습니다.
  8. 고유 기본 이름으로 존재하는 보류 중인 로그 파일을 재생성합니다. 다음 명령을 입력합니다.
    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel; 
    alter database drop logfile group 1;
    alter database add standby logfile thread 1 group 1 ('+RECO') size 1073741824;
    
    각 명령 뒤에 다음이 표시됩니다.
    Database altered.
    마지막으로 다음을 입력합니다.
    recover managed standby database using current logfile disconnect from session; 
    다음이 표시됩니다.
    Media recovery complete.