Despliegue de la topología

La cláusula "from service" de RMAN permite restaurar y recuperar archivos de base de datos primaria en una base de datos en espera en toda la red. Puede utilizar esta funcionalidad para crear una instancia de una base de datos en espera en lugar del comando RMAN DUPLICATE DATABASE y es más intuitiva y menos propensa a errores, lo que ahorra tiempo.

Note:

Haga clic en Copiar para guardar el ejemplo de comando en el portapapeles para pegarlo en la línea de comandos. Asegúrese de sustituir cualquier variables por valores específicos de la implantación.

Creación de la Base de Datos en Espera mediante RMAN

Utilice Oracle Recovery Manager (RMAN) para crear la base de datos en espera a partir de la base de datos primaria activa. También puede restaurar desde una copia de seguridad de la base de datos primaria.

  1. Conéctese a la base de datos e inicie la base de datos en el modo NOMOUNT.
    $ rman target / 
    startup nomount;
  2. Restaure el archivo de control en espera desde el servicio principal. En este ejemplo, DBUKS_898_LHR es la base de datos principal:
    restore standby controlfile from service 'DBUKS_898_LHR';
    La salida debe ser similar a la siguiente:
    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. Mount the database:
    alter database mount;
    La salida debe ser similar a la siguiente:
    released channel: 
    ORA_DISK_1 Statement processed
  4. Como raíz en la instancia de OCI, cambie los permisos del directorio de Oracle a abierto (chmod 777).
    cd /opt/ 
    ls -ltra 
    Debe ver:
    drwxr-xr-x 10 root root 4096 Jun 20 03:52 oracle 
    Introduzca:
    [root@ldbuksdr]# chmod 777 oracle/ 
    ls -ltra 
    Debe ver:
    drwxrwxrwx 10 root root 4096 Jun 20 03:52 oracle
  5. Restaure la base de datos desde la base de datos primaria (DBUKS_898_LHR):
    restore database from service ' DBUKS_898_LHR ';
    La salida debe ser similar a la siguiente:
    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 ;

Validación de la Base de Datos en Espera

A continuación, debe validar la base de datos en espera.

  1. Consulte el nombre y el rol de la base de datos. En la petición de datos SQL>, introduzca:
     select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ; 

    Debería ver una respuesta similar a la siguiente:

    FORCE_LOGGING         FLASHBACK_ON       OPEN_MODE       DATABASE_ROLE       DATAGUARD_BROKER        PROTECTION_MODE 
    -------------------- ------------------ --------------- ------------------- ------------------------ ---------------------------- 
    YES                  NO                  MOUNTED        PHYSICAL STANDBY       DISABLED              MAXIMUM PERFORMANCE
  2. Consulte el proceso de archivación, el número de thread de estado y el número de secuencia de la base de datos:
    select sysdate,process,status,thread#,sequence#,block# from v$managed_standby where status!='IDLE'; 

    Debería ver una respuesta similar a la siguiente:

    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 

    Introduzca:

    select distinct process from gv$managed_standby; 

    Debería ver una respuesta similar a la siguiente:

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

Adición de Archivos Log en Espera a Bases de Datos Primarias y en Espera

Los archivos log en espera se utilizan en una base de datos en espera para recibir datos de redo de la base de datos primaria. Los registros escritos en los redo logs en línea de la base de datos primaria se transfieren a la base de datos en espera y se escriben en los redo logs en espera al mismo tiempo, minimizando así la probabilidad de pérdida de datos en la base de datos en espera. El redolog en espera es obligatorio para la aplicación en tiempo real.
Utilice el símbolo del sistema SQL> para los siguientes pasos.
  1. En primer lugar, agregue los archivos log en espera a la base de datos primaria.
    1. Introduzca:
      select group#, type, member from v$logfile; 

      Verá una respuesta similar a esta:

      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. Introduzca:
      select bytes, group# from v$log;
      Verá una respuesta similar a esta:
      1073741824 1 
      1073741824 3 
      1073741824 2
    3. Introduzca esta serie de comandos:
      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;
      La respuesta para cada uno debe ser:
      Database altered
    4. Introduzca:
      select group#, type, member from v$logfile;
      Verá una respuesta similar a esta:
      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 la lista de logs:
      archive log list
  2. A continuación, agregue los archivos log en espera a la base de datos en espera.
    1. Introduzca:
      select group#, type, member from v$logfile;
      Verá una respuesta similar a esta:
      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. Introduzca:
      select bytes, group# from v$log;
      Verá una respuesta similar a esta:
      1073741824 1 
      1073741824 3 
      1073741824 2
    3. Introduzca esta serie de comandos:
      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;
      La respuesta para cada comando debe ser:
      Database altered
    4. Introduzca:
      select group#, type, member from v$logfile;
      Verá una respuesta similar a esta:
      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. Borre los archivos log con el nombre único de la base de datos primaria. De los tres archivos log, uno de ellos será el log actual y, por lo tanto, no podrá borrarlo en este momento; este archivo se borrará y se volverá a crear más adelante.
    1. Introduzca:
      alter database drop logfile group 1;
      Verá una respuesta similar a esta:
      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. Introduzca:
      alter database drop logfile group 2; 
      alter database drop logfile group 3;
      La respuesta para cada uno debe ser:
      Database altered
  4. Vuelva a crear los archivos log introduciendo los siguientes comandos:
    alter database add logfile thread 1 group 2 ('+RECO') size 1073741824;
    alter database add logfile thread 1 group 3 ('+RECO') size 1073741824;
    La respuesta para cada uno debe ser:
    Database altered.

Configuración de Oracle Data Guard Broker

Ahora, configure Oracle Data Guard Broker, registre la base de datos en espera y sincronice las bases de datos principal y en espera. Configure Oracle Data Guard Broker activando el parámetro dg_broker_config_file en las bases de datos principal y en espera. Para Oracle Automatic Storage Management (Oracle ASM), coloque los archivos de configuración del broker en grupos de discos independientes. Para Oracle Real Application Clusters (Oracle RAC), los archivos de configuración del broker deben estar en el almacenamiento compartido.
  1. Compruebe el valor dg_broker_start para la base de datos primaria y la base de datos en espera. Asegúrese de que esté definido en True; en la línea de comandos SQL, introduzca:
    show parameter dg_broker_start;
    La salida debe ser similar a la siguiente:
    NAME                                  TYPE         VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start                       boolean      TRUE 
    Si dg_broker_start está definido en FALSE, defina el parámetro en TRUE antes de continuar con los siguientes pasos; introduzca:
    alter system set dg_broker_start=true; 
    select pname from v$process where pname like 'DMON%';
    La salida debe ser similar a la siguiente:
    PNAME 
    ----- 
    DMON
  2. Compruebe los archivos de Oracle Data Guard para la base de datos primaria:
    show parameter dg_broker_config_file1;
    show parameter dg_broker_config_file2;
    Si tiene Oracle RAC u Oracle ASM, puede cambiar la ubicación del archivo de configuración; por ejemplo:
    alter system set dg_broker_config_file1=broker_config_file_location; 
    alter system set dg_broker_config_file2=broker_config_file_location; 
  3. Registre las bases de datos principal y en espera:
    Utilice la interfaz de línea de comandos (DGMGRL) de Oracle Data Guard para registrar la base de datos primaria y agregar el perfil de la base de datos en espera a la configuración del broker:
    1. Inicie sesión en el host principal como sys.
      dgmgrl sys/password@net_service_name_for_primary
    2. Cree una configuración que utilice el nombre de la base de datos primaria.
      CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary_database_name CONNECT IDENTIFIER IS primary_database_name; 
      La salida debe ser similar a la siguiente:
      CREATE CONFIGURATION dbuks_898_lhr_dbuks_r2j_ams AS PRIMARY DATABASE IS dbuks_898_lhr CONNECT IDENTIFIER IS dbuks_898_lhr;
    3. Agregue la base de datos en espera.
      ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;
      Por ejemplo:
      ADD DATABASE dbuks_r2j_ams AS CONNECT IDENTIFIER IS dbuks_r2j_ams MAINTAINED AS PHYSICAL; 
      
      La salida debe ser similar a la siguiente:
      Database "dbuks_r2j_ams" added
  4. Active la configuración:
    enable configuration;
  5. Visualice la configuración:
    1. Introduzca:
      show configuration; 

      Note:

      Si recibe una ADVERTENCIA de que no se ha podido determinar la demora de aplicación, conéctese a la base de datos primaria mediante sqlplus y realice algunos cambios de log.
      La salida debe ser similar a la siguiente:
      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. Muestre la configuración de la base de datos primaria (en este ejemplo, dbuks_898_lhr):
      show database dbuks_898_lhr 
      Aparecerá una respuesta similar a la siguiente:
      Database - dbuks_898_lhr 
      Role: PRIMARY 
      Intended State: TRANSPORT-ON 
      Instance(s): 
      dbuks 
      Database Status: 
      SUCCESS
    3. Muestre la configuración de la base de datos en espera (en este ejemplo, dbuks_r2j_ams):
      show database dbuks_r2j_ams 
      Aparecerá una respuesta similar a la siguiente:
      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

Confirmar la replicación

La base de datos en espera debe empezar a aplicar el redo recibido de la base de datos primaria.

Utilice el símbolo del sistema SQL> para los siguientes pasos.
  1. Compruebe el proceso MRP:
    1. Introduzca:
      select sysdate, process, status, thread#, sequence#, block# 
      from v$managed_standby 
      where status!='IDLE';
      La salida debe ser similar a la siguiente:
      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. Visualice los procesos de Data Guard.
      select distinct process from gv$managed_standby;
      La salida debe ser similar a la siguiente:
      PROCESS 
      --------- 
      DGRD 
      RFS 
      MRP0 
      ARCH
    3. La base de datos en espera ha comenzado a aplicar los redo logs. Realice algunos cambios de log en la base de datos primaria y vuelva a confirmar en la base de datos en espera:
      select sysdate, process, status, thread#, sequence#, block#from v$managed_standbywhere status!='IDLE';
      La salida debe ser similar a la siguiente:
      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. Archive la lista de logs en la base de datos primaria:
      archive log list
      La salida debe ser similar a la siguiente:
      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 
      Introduzca:
      alter system switch logfile;
      Debe recibir esta respuesta:
      System altered.
      Introduzca:
       / 
      Debe ver:
      System altered.
      Ahora, archive la lista de logs:
      archive log list 
      Debe recibir esta respuesta:
      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. Archive la lista de logs en la base de datos en espera; introduzca:
      select sysdate, process, status, thread#, sequence#, block# 
      from v$managed_standby 
      where status!='IDLE';

      Debe recibir esta respuesta:

      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. Active el flashback en la base de datos en espera:
    1. Introduzca:
      ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel; 
      SQL> alter database flashback on;
      Después de cada comando, debería ver:
      Database altered
    2. Confirme que el flashback de base de datos está activado (activado).
      select flashback_on from v$database;
      La salida debe ser similar a la siguiente:
      FLASHBACK_ON 
      ------------------ 
      YES 
    3. Introduzca:
      recover managed standby database using current logfile disconnect from session;
      Debe ver:
      Media recovery complete.
  3. Consulte los detalles de la base de datos:
    select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ;
    La salida debe ser similar a la siguiente:
    FORCE_LOGGING   FLASHBACK_ON   OPEN_MODE   DATABASE_ROLE     DATAGUARD_BROKER   PROTECTION_MODE 
    ---------------------------------------------------------- --------------- ----- ----------------------- ----------------------------- 
    YES             YES            MOUNTED     PHYSICAL STANDBY  ENABLED          MAXIMUM PERFORMANCE
  4. Utilice la utilidad Server Control (srvctl) para parar la base de datos en espera:
    srvctl stop database -d db_unique_name
    La salida debe ser similar a esta:
    srvctl stop database -d dbuks_r2j_ams
  5. Utilice la utilidad Server Control para iniciar la base de datos en espera:
    srvctl start database -d db_unique_name
    La salida debe ser similar a esta:
    srvctl start database -d dbuks_r2j_ams
  6. Consulte los detalles de la base de datos:
    select FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, DATAGUARD_BROKER, PROTECTION_MODE from v$database ;
    La salida debe ser similar a esta:
     FORCE_LOGGING   FLASHBACK_ON   OPEN_MODE               DATABASE_ROLE      DATAGUARD_BROKER     PROTECTION_MODE 
    -----------------------------------------------------------------------   -------------------- ----------------------- 
    YES             YES             READ ONLY WITH APPLY   PHYSICAL STANDBY   ENABLED               MAXIMUM PERFORMANCE
  7. Ahora puede proporcionar algunos cambios de archivo log más desde la base de datos primaria y asegurarse de que el redo se está aplicando a la base de datos en espera.
  8. Vuelva a crear el archivo log pendiente, que existe con el nombre único principal. Escriba estos comandos:
    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;
    
    Después de cada comando, debería ver:
    Database altered.
    Por último, introduzca:
    recover managed standby database using current logfile disconnect from session; 
    Debe ver:
    Media recovery complete.