Configuración de la futura base de datos secundaria

Después de establecer la primera base de datos física en espera en Oracle Cloud Infrastructure (OCI), creará una segunda en otra región. Esta segunda base de datos es la base de datos de su entorno de recuperación ante desastres basado en la nube.

La funcionalidad en cascada en espera de Oracle Data Guard, donde la segunda base de datos en espera recibe su redo de la primera base de datos en espera, no directamente de la principal local, reduce el tráfico de red de la ubicación del host local. También establecerá cuál será, en última instancia, la ruta de propagación principal redo.

En este momento, hay restricciones que nos impiden utilizar las herramientas de OCI para establecer y gestionar completamente nuestra futura base de datos de recuperación ante desastres. El servicio en la nube de asociación de Oracle Data Guard no puede registrar actualmente una relación de base de datos en espera existente y no podrá gestionar la configuración de la base de datos en espera. Por lo tanto, por ejemplo, no se puede utilizar Oracle Managed Disaster Recovery Cloud Service.

Dado que ambas bases de datos en espera se establecen con una base de datos de marcador de posición basada en OCI, el plano de control de OCI puede gestionar la aplicación de parches y otra actividad del ciclo de vida para cada una de ellas.

Crear base de datos de marcador de posición

Utilice la consola de OCI para crear una nueva base de datos de marcador de posición en una región diferente (recomendado) o en un dominio de disponibilidad diferente en la misma región.

Siga estos pasos: NO suprima la base de datos de marcador de posición mediante herramientas como OCI o dbaascli.
  1. Seleccione Exadata On Oracle Public Cloud. Seleccione el servicio Oracle Exadata Database Service on Dedicated Infrastructure en el que desea desplegar la base de datos.

    Siga estas restricciones:

    • El directorio raíz de la base de datos debe tener la misma versión de software, versión y nivel de parche que el origen.
    • DB_NAME debe ser el mismo que en la base de datos principal y en la primera base de datos en espera.
    • DB_UNIQUE_NAME se puede dejar en blanco o especificarse, pero debe ser diferente tanto de la base de datos primaria local como de la primera base de datos física en espera.
    • No configure copias de seguridad automáticas al aprovisionar esta base de datos.
    • No especifique un nombre de PDB al aprovisionar esta base de datos.
  2. Capture los datos de configuración en cascada en espera.
    1. Conéctese como usuario del sistema operativo oracle en uno de los nodos de base de datos que alojan la base de datos de marcador de posición que acaba de crear.
    2. Origen del entorno para esta base de datos.
    3. Ejecute el siguiente comando con DB_UNIQUE_NAME:
    $ srvctl config database -db DB_UNIQUE_NAME
    Guarde estos datos de configuración, los utilizará en varios pasos a continuación.
  3. Cerrar la base de datos de marcador de posición.
    $ srvctl stop database -db cascade standby placeholder database -stopoption immediate
  4. Conéctese como usuario Grid OS. Con el comando asmcmd, vacíe los archivos en los directorios en +DATAC1/DB_UNIQUE_NAME:
    1. DATAFILE
    2. ONLINELOG
    3. Todos PDB GUID/DATAFILE
    4. Todos los archivos de control en +DATAC1/DB_UNIQUE_NAME/CONTROLFILE
    5. Archivo de contraseñas especificado en los datos de configuración capturados en el paso 1
  5. En +RECOC1/DB_UNIQUE_NAME, elimine los archivos de los directorios ARCHIVELOG, AUTOBACKUP y FLASHBACKLOG.
  6. No elimine spfile.

Preparación para la restauración de base de datos

Configure el nuevo directorio raíz de Oracle como preparación para la restauración de la base de datos.

  • Ajuste el archivo tnsnames.ora en cada entorno para conocer cada una de las otras bases de datos. Verifique las comunicaciones entre entornos.
  • Copie el archivo de contraseñas de la primera base de datos en espera.
  • Copie la cartera de cifrado de datos transparente (TDE) de la primera base de datos en espera.
  • Ajuste los parámetros de la base de datos para la base de datos en espera en cascada.

Configurar TNS para base de datos en espera en cascada

Ajuste el archivo tnsnames.ora en cada entorno para conocer cada una de las otras bases de datos. Verifique las comunicaciones entre entornos.

Data Guard Broker debe poder comunicarse con cada base de datos de la configuración independientemente de la instancia a la que esté conectado. Oracle Zero Downtime Migration realizó esta configuración para la relación en espera inicial. Debe agregar la base de datos en espera en cascada a la configuración:
  • Agregue la cadena de conexión TNS para la base de datos en espera en cascada a los archivos tnsnames.ora utilizados por todas las instancias de Oracle Real Application Clusters (Oracle RAC) de las bases de datos primaria local y primera base de datos en espera.
  • Agregue las cadenas de conexión TNS para las bases de datos principales locales y las primeras bases de datos en espera de OCI a los archivos tnsnames.ora utilizados por todas las instancias de Oracle RAC de la base de datos en espera en cascada.
Estas entradas TNS deben utilizar direcciones SCAN IP, no el nombre SCAN. A continuación se muestra un ejemplo de una entrada TNS compatible que Oracle Zero Downtime Migration ha creado para nuestra primera base de datos en espera:
CDBHCM_iad1dx =
          (DESCRIPTION =
             (ADDRESS = (PROTOCOL = TCP) (HOST = <SCAN IPv4 address  1>) (PORT = 1521))
             (ADDRESS = (PROTOCOL = TCP) (HOST = <SCAN IPv4 address  2>) (PORT = 1521))
             (ADDRESS = (PROTOCOL = TCP) (HOST = <SCAN IPv4 address  3>)) (PORT = 1521))
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = CDBHCM_iad1dx)
              (FAILOVER_MODE =
                  (TYPE = select)
                  (METHOD = basic)
              )
              (UR=A)
             )
          )

Debe conectarse a cada servidor de base de datos como usuario del sistema operativo oracle, crear el entorno y, a continuación, cambiar el directorio a $TNS_ADMIN.

  1. Para cada instancia de Oracle RAC tanto de la instancia principal local como de la primera base de datos en espera de OCI, edite el archivo tnsnames.ora y agregue la cadena de conexión TNS de la base de datos en espera en cascada.
  2. Para cada instancia de Oracle RAC de la base de datos en cascada en espera de OCI, edite el archivo tnsnames.ora y agregue cadenas de conexión TNS tanto para la base de datos principal local como para la primera base de datos en espera de OCI.
  3. Pruebe que puede hacer ping a la primera base de datos en espera desde la base de datos en espera en cascada mediante la utilidad tnsping con el alias de cadena de conexión agregado.
    $ tnsping CDBHCM_iad1dx
    Esto debería devolver OK con tiempo de latencia en milisegundos. Si no se devuelve OK, compruebe los errores y la dirección según corresponda.
  4. Pruebe la conexión de cada uno de los servidores de base de datos que alojará la base de datos en espera en cascada en la primera base de datos en espera (CDBHCM_iad1dx) mediante SQL*Plus. Necesitará la contraseña SYS para la principal.
    $ sqlplus sys/<password>@CDBHCM_iad1dx as sysdba
    Corrija los errores y repita hasta que pueda conectarse correctamente.

Copia el archivo de contraseñas

Copie el archivo de contraseñas de la primera base de datos en espera.

  1. Conéctese a uno de los servidores que alojan la primera base de datos en espera (CDBHCM_iad1dx) como usuario oracle OS.
  2. Utilice srvctl para determinar dónde se encuentra el archivo de contraseñas de esta base de datos y, a continuación, cópielo en el directorio /tmp.
    Para determinar la ubicación raíz de la cartera, ejecute lo siguiente como sysdba:
    $ srvctl config database -db first standby db name
  3. Busque la línea que indica "Archivo de contraseña:" y registre su ubicación (ruta de acceso de Oracle Automatic Storage Management (Oracle ASM)).
  4. Conviértase en el usuario del sistema operativo de cuadrícula y utilice el comando asmcmd para copiar el archivo de contraseñas en el directorio /tmp:
    $ asmcmd -p
    asmcmd> cd +DATAC1/path from step 3
    asmcmd> cp <password file name> /tmp/password file name
  5. Transfiera el archivo de contraseñas a una ubicación temporal en uno de los servidores de base de datos en espera en cascada mediante scp o por cualquier medio que utilice para transferir archivos dentro de OCI.
  6. Conéctese al servidor de base de datos en espera en cascada en el que se ha colocado el archivo de contraseñas, como usuario del sistema operativo grid. Copie el archivo de contraseñas en Oracle ASM mediante la ubicación especificada en los datos de configuración en espera en cascada anteriores.
    $ asmcmd -p --privilege sysdba
    asmcmd> pwcopy –dbuniquename cascade standby db unique name /tmp/password-file-name +ASM Diskgroup/path/password-file-name -f
    Por ejemplo,
    asmcmd> pwcopy –dbuniquename CDBHCM_phx5s   /tmp/password file name +DATAC1/CDBHCM_phx5s/PASSWORD/orapwCDBHCM_phx5s -f 
  7. Asegúrese de que todas las cadenas de conexión TNS están configuradas correctamente mediante la validación de que cada base de datos se puede conectar al resto de bases de datos. Corrija los errores de conexión para los siguientes intentos de conexión.
    1. Desde la base de datos local (principal):
      $ sqlplus sys/password@first standby db as sysdba
      $ sqlplus sys/password@cascade standby db as sysdba
    2. Desde la primera base de datos física en espera:
      $ sqlplus sys/password@on-prem primary as sysdba
      $ sqlplus sys/password@cascade standby db as sysdba
    3. Desde la base de datos física en espera en cascada:
      $ sqlplus sys/password@on-prem primary as sysdba
      $ sqlplus sys/password@first standby db as sysdba
    No continúe hasta que todos los intentos de conexión se realicen correctamente.

Copia de la cartera de TDE

Copie la cartera de cifrado de datos transparente (TDE) de la primera base de datos en espera. En Oracle Exadata Database Service on Dedicated Infrastructure, la ubicación que utilizan las herramientas en la nube para almacenar las carteras de TDE está en Oracle Advanced Cluster File System (Oracle ACFS), que comparten todos los servidores de base de datos del cluster.
  1. Conéctese a uno de los servidores que alojan la primera base de datos en espera (CDBHCM_iad1dx) como usuario del sistema operativo oracle y cambie el directorio a la ubicación raíz de cartera.
    Para determinar la ubicación raíz de la cartera, ejecute lo siguiente como sysdba:
    $ sqlplus / as sysdba
    SQL> show wallet_root
    $ cd wallet root location from “show wallet_root” above
  2. Vaya a la ubicación raíz de la cartera y comprima el directorio tde.
    El directorio tde está en el directorio proporcionado en el paso 1, que suele ser /var/opt/oracle/dbaas_acf/<DB_NAME>/wallet_root.
    $ zip -r CDBHDM_tde_wallet.zip  tde
  3. Transfiera este archivo ZIP a uno de los servidores de base de datos que alojará la base de datos en cascada (CDBHCM_phx5s) a una ubicación temporal (por ejemplo, /tmp).
    Utilice scp o cualquier medio que utilice para transferir archivos dentro de OCI.
  4. Conéctese a los servidores de base de datos que alojarán la base de datos en cascada (CDBHCM_phx5s) y en los que se ha colocado el archivo zip, como usuario del sistema operativo oracle y cambie el directorio a la ubicación raíz de cartera.

    La ubicación debe ser la misma que la anterior, ya que DB_NAME es la misma (CDBHCM).

    $ cd /var/opt/oracle/dbaas_acf/<DB_NAME>/wallet_root
  5. Mueva el directorio TDE existente a un nombre diferente.
    $ mv tde tde_date
  6. Mueva el archivo ZIP que contiene la cartera de TDE (CDBHDM_tde_wallet.zip) creada en el paso 2 a la siguiente ruta:/var/opt/oracle/dbaas_acf/<DB_NAME>/wallet_root.
    Sustituya DB_NAME por el nombre de la base de datos.
  7. Elimine el archivo CDBHDM_tde_wallet.zip.
    $ unzip CDBHDM_tde_wallet.zip

Esto crea un nuevo subdirectorio tde con los archivos de cartera de la primera base de datos física en espera.

Ajuste de los Parámetros de la Base de Datos para la Base de Datos en Espera en Cascada

Finalice la configuración de la base de datos en espera en cascada.

  1. Conéctese a uno de los servidores que alojan la primera base de datos en espera (CDBHCM_iad1dx) como usuario oracle OS y realice el origen del entorno.
    $ . ./CDBHCM.env
  2. Cree un archivo pfile a partir de la primera base de datos en espera que se utilice como referencia para ajustar los parámetros en la base de datos en espera en cascada.
    $ cd $ORACLE_HOME/dbs
    $ sqlplus / as sysdba
    SQL> create pfile=’tmp_CDBHCM_iad1dx_init.ora’ from spfile;
  3. Conéctese a uno de los servidores de base de datos que alojará la base de datos en espera en cascada (CDBHCM_phx5s) y obtenga el entorno:
    $ . ./CDBHCM.env
  4. Inicie NOMOUNT en una instancia.
    $ sqlplus / as sysdba
    SQL> startup nomount
  5. Realice los siguientes ajustes en los parámetros de base de datos para la base de datos en cascada, haciendo referencia a la lista de parámetros de base de datos del paso 2 anterior:
    SQL> alter system set control_files=’’ sid=’*’ scope=spfile;
    SQL> alter system set undo_tablespace=’<Refer to the parameter list from step 2>’ sid=’<ORACLE_SID for instance 1>’ scope=spfile;
    SQL> alter system set undo_tablespace=’<Refer to the parameter list from step 2>’ sid=’<ORACLE_SID for instance 2>’ scope=spfile;
    SQL> alter system set undo_tablespace=’<Refer to the parameter list from step 2>’ sid=’<ORACLE_SID for instance N>’ scope=spfile;
    SQL> alter system set sga_target=’<Refer to the parameter list from step 2>’ sid=’*’ scope=spfile;
    SQL> alter system set log_buffer=’<Refer to the parameter list from step 2>’ sid=’*’ scope=spfile;
  6. Ajuste los parámetros específicos de PeopleSoft.
    SQL> alter system set “_gby_hash_aggregation_enabled”=false sid=’*’ scope=spfile;
    SQL> alter system set “_ignore_desc_in_index”=true sid=’*’ scope=spfile;
    SQL> alter system set “_unnest_subquery”=true sid=’*’ scope=spfile;
    SQL> alter system set nls_length_semantics='CHAR' sid=’*’ scope=spfile;

    Note:

    No cambie los siguientes parámetros:
    • DB_NAME
    • DB_UNIQUE_NAME
    • WALLET_ROOT
  7. Cierre y reinicie NOMOUNT en la instancia para implantar los cambios.
    $ sqlplus / as sysdba
    SQL> shutdown immediate
    SQL> startup nomount

Restauración de la Base de Datos en la Base de Datos en Espera en Cascada

Restaure la base de datos en la huella en cascada en espera desde la primera base de datos física en espera. Utilice el comando Oracle Recovery Manager (RMAN) RESTORE FROM SERVICE para restaurar el archivo de control y los archivos de datos.

  1. Si la instancia para la base de datos en espera en cascada no se ha iniciado, iníciela en NOMOUNT:
    $ sqlplus / as sysdba 
    $ SQL> startup nomount
  2. Utilice RMAN para restaurar el archivo de control y los archivos de datos de la primera base de datos en espera a la base de datos en cascada.

    Note:

    Puede ser necesario ajustar el número de canales de RMAN para "disco de tipo de dispositivo" a fin de no saturar la red. Si es necesario realizar un cambio, hágalo antes de ejecutar el comando "restore database from service". Puede hacerlo con el siguiente comando, sustituyendo N según corresponda:
    RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM N; 
    $ rman target / nocatalog
    RMAN> restore standby controlfile from service ‘first standby db name’;
    RMAN> alter database mount;
    RMAN> restore database from service ‘first standby db name’ section size 8G;
    RMAN> shutdown immediate;
    RMAN> exit
  3. Reinicie todas las instancias y monte la base de datos en espera en cascada mediante srvctl.
    $ srvctl start database -db cascade standby db unique name -startoption mount
  4. Cree y borre todos los archivos log en línea y en espera mediante el siguiente script.
    $ sqlplus “/ as sysdba”
    SQL> set pagesize 0 feedback off linesize 120 trimspool on
    SQL> spool /tmp/clearlogs.sql
    SQL> select distinct 'alter database clear logfile group '||group#||';' from v$logfile;
    SQL> spool off
  5. Inspeccione el script clearlogs.sql generado antes de ejecutarlo. Esto hará que la instancia de base de datos cree y borre archivos log en línea y en espera para todos los threads. A continuación, ejecute el script.
    SQL> @/tmp/clearlogs.sql

Configurar Data Guard Broker para la base de datos en espera en cascada

Ya ha configurado Data Guard Broker entre la base de datos principal local y la primera base de datos en espera de OCI mediante Oracle Zero Downtime Migration. Ahora agregará la base de datos en espera en cascada a la configuración.

Las bases de datos en cascada en espera y las bases de datos locales no se comunican directamente entre sí. Cuando es necesario, redo se envía a través de la primera base de datos en espera local:

  • Cuando la base de datos local es principal, redo se envía desde la base de datos local principal a la primera base de datos en espera o a través de ella y, a continuación, a la base de datos en espera en cascada:
    • Principal local a la primera base de datos en espera de OCI
    • La primera base de datos en espera de OCI en cascada
  • Cuando la primera base de datos en espera tiene el rol primario, redo se envía desde esa base de datos directamente a las bases de datos locales y en cascada en espera:
    • OCI principal a la base de datos en espera local
    • OCI principal en la base de datos en cascada en espera de OCI
  • Si la base de datos en espera en cascada pasa a ser la principal en esta configuración, el redo se enviará desde esa base de datos a la primera base de datos en espera de OCI o a través de ella, y, a continuación, a la base de datos local:
    • Primera base de datos en espera de OCI en la base de datos en espera local
    • OCI en cascada principal a la primera base de datos en espera de OCI
  1. Configure Data Guard Broker en el servidor de base de datos que aloja la base de datos en espera en cascada. Conéctese a uno de los servidores de base de datos que alojan la base de datos en espera en cascada como usuario del sistema operativo oracle y obtenga el entorno.
    $ sqlplus / as sysdba
    SQL> alter system set dg_broker_config_file1=’+DTAC1/cascade standby db/DG/dr1 cascade standby db.dat’ sid=’*’ scope=both;
    SQL> alter system set dg_broker_config_file2=’+RECOC1/cascade standby db/DG/dr2 cascade standby db.dat’ sid=’*’ scope=both;
    SQL> alter system set dg_broker_start=TRUE sid=’*’ scope=both;
  2. Conéctese a la base de datos primaria o a la primera base de datos física en espera y obtenga el entorno. Agregue la nueva base de datos en espera en cascada a la configuración existente de Data Guard Broker.
    $ dgmgrl 
    DGMGRL>  connect sys/password
    DGMGRL> show configuration
    DGMGRL> add database 'cascade standby db’
     as connect identifier is cascade standby db;
  3. Agregue redo routes.
    DGMGRL> edit database on-premises db set property redoroutes='(LOCAL : first standby db ASYNC)';
    DGMGRL> edit database first standby db set property redoroutes='(LOCAL : on-premises db ASYNC, cascade standby db ASYNC)(on-premises db : cascade standby db ASYNC)(cascade standby db : on-premises db ASYNC)';
    DGMGRL> edit database cascade standby db set property redoroutes='(LOCAL : first standby db ASYNC)';
  4. Active la nueva base de datos en cascada en espera.
    DGMGRL> enable database cascade standby db;
  5. Una vez activada la base de datos en cascada, comenzará a recibir redo generado por la base de datos primaria local a través de la primera base de datos en espera. En Data Guard Broker, muestre la configuración:
    DGMGRL> show configuration lag
    Configuration - zdm_psfthcm_dg
      Protection Mode: MaxPerformance
      Members:
      CDBHCM_sca6dp  - Primary database
        CDBHCM_iad1dx - Physical standby database 
                          Transport Lag:      0 seconds (computed 0 seconds ago)
                          Apply Lag:          0 seconds (computed 1 second ago)
          CDBHCM_phx5s - Physical standby database (receiving current redo)
                            Transport Lag:      1 second (computed 1 second ago)
                            Apply Lag:          2 seconds (computed 1 second ago)
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 47 seconds ago)

Definición de los Servicios de Base de Datos Basados en Roles para la Futura Base de Datos en Espera

Agregue servicios de base de datos basados en roles que utilizará la aplicación PeopleSoft cuando la base de datos secundaria de OCI rellene el rol PRIMARY.

  1. Agregue servicios de base de datos basados en roles para el gestor de procesos.
    srvctl add service -db CDBHCM_phx5s -pdb HR92U033 -service HR92U033_BATCH -preferred "CDBHCM1,CDBHCM2" -notification TRUE -role PRIMARY -failovermethod BASIC -failovertype AUTO -failoverretry 10 -failoverdelay 3
  2. Agregue servicios de base de datos basados en roles para los usuarios en línea.
    srvctl add service -db CDBHCM_phx5s -pdb HR92U033 -service HR92U033_ONLINE -preferred "CDBHCM1,CDBHCM2" -notification TRUE -role PRIMARY -failovermethod BASIC -failovertype AUTO -failoverretry 10 -failoverdelay 3