Prepara las bases de datos de Oracle para el servicio de copia de seguridad y DR

Antes de comenzar, te recomendamos que revises el servicio de copia de seguridad y DR para Oracle.

Antes de poder crear copias de seguridad de las bases de datos de Oracle, debes agregar el servidor de Oracle como un host al servicio de copia de seguridad y DR. Para que esto funcione, asegúrate de consultar los Requisitos previos para crear una copia de seguridad de una base de datos de Oracle y, luego, sigue estos pasos de preparación.

Procedimientos de preparación para bases de datos de Oracle
Paso Procedimiento de preparación
1 Prepara las bases de datos de Oracle en un entorno de Linux o
Prepara las bases de datos de Oracle en un entorno de Windows
2 Prepárate para crear una copia de seguridad de una base de datos de Oracle con archivos de datos en un grupo de discos de ASM
3 Prepara la autenticación de la base de datos de Oracle
Habilita el seguimiento de cambios de bloques de la base de datos (opcional)
Protección contra un nodo de Oracle Data Guard
Configura la conmutación por error transparente de RAC de la copia de seguridad de RMAN a otros nodos
Compresión de registros de archivo de Oracle
Configura los servicios de la base de datos de Oracle para el balanceo de cargas en varios nodos
Aplica parches a Oracle 12c

Prepara las bases de datos de Oracle en un entorno de Linux

Antes de proteger una base de datos de Oracle o si fallan las tareas de protección de la base de datos, asegúrate de que la siguiente configuración sea correcta en el servidor de la base de datos de Oracle.

  • Cada base de datos de Oracle que se proteja debe estar activa y en funcionamiento. Por ejemplo:

    database: actdb
    #ps -ef | grep pmon | grep -i actdb
    oracle   27688     1  0  2015 ?        00:26:24 ora_pmon_actdb
    
  • La base de datos debe estar ejecutándose en modo de registro de archivo. Para verificar que la base de datos se ejecuta en el modo de registro de archivo, accede al servidor de la base de datos como usuario del SO Oracle y establece la variable de entorno de la base de datos:

    export ORACLE_HOME=<oracle home path>
    (get this from /etc/oratab)
    export ORACLE_SID=<database instance name> (you can get this through
    ps -ef | grep pmon)
    export PATH=$ORACLE_HOME/bin:$PATH
    

    Accede a sqlplus:

    #sqlplus / as sysdba
    #SQL> archive log list;
    Database log mode   Archive Mode
    Automatic archival        Enabled
    Archive destination        +FRA
    Oldest online log sequence     569
    Next log sequence to archive   570
    Current log sequence        570
    #SQL>
    
  • La base de datos debe usar spfile. Verifica que la base de datos se esté ejecutando con spfile:

    #sqlplus / as sysdba
    SQL> show parameter spfile
    NAME      TYPE   VALUE
    ------------------ ----------- ------------
    spfile      string  +DATA/ctdb/spfilectdb.ora
    
  • En el caso de la base de datos de Oracle RAC, el archivo de control de instantáneas debe ubicarse en los discos compartidos. Para una base de datos de Oracle RAC en ASM, el archivo de control de instantáneas debe ubicarse en discos compartidos.

    Para verificar esto, conéctate a RMAN y ejecuta el comando show all. Configura la opción si es necesario:

        rman target /
    

    Luego, en RMAN, haz lo siguiente:

       show all
    

    Los parámetros de configuración de RMAN para la base de datos con CTDB db_unique_name son los siguientes:

    CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
    CONFIGURE BACKUP OPTIMIZATION OFF; # default
    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
    CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
    CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/mnt/ctdb/snapcf_ctdb.f';
    

    En este ejemplo, se muestra la configuración establecida en el sistema de archivos local.

    En un entorno de RAC, se debe configurar como grupo de discos de ASM compartido. Para colocarlo en el grupo de discos de ASM, usa lo siguiente:

    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+<DG name>/snap_<DB name>.f';
    

Prepara la creación de una copia de seguridad de una base de datos de Oracle con archivos de datos en un grupo de discos ASM

Crea un disco de preparación de copia de seguridad y DR en un grupo de discos de ASM

El parámetro ASM diskstring debe estar configurado y no ser nulo. Accede al servidor de la base de datos como usuario del SO de ASM y configura la variable de entorno de ASM:

    # export ORACLE_HOME=(oracle ASM home path)
    (get this from /etc/oratab)
    #export ORACLE_SID=(ASM instance name) (you
    can get this through ps ?ef | grep pmon)
    #export PATH=$ORACLE_HOME/bin:$PATH

Conéctate a sqlplus:

    #sqlplus / as sysasm
    #sql> show parameter asm_diskstring
    NAME      TYPE   VALUE
    ------------------- ----------- ------------------------------
    asm_diskstring      string  ORCL:*, /dev/sdt1, /dev/sdu1

Si el resultado del valor es nulo, obtén el valor correcto de la cadena de disco ASM para los discos ASM existentes antes de continuar con la protección de copia de seguridad y DR. La copia de seguridad de Backup and DR agrega su ruta de acceso de cadena de disco (/dev/Backup and DR/asm/*) para que su disco de preparación de copia de seguridad se asigne a ASM.

Disco de preparación de copia de seguridad y DR en el sistema de archivos

Si proteges una base de datos de ASM de Oracle en un sistema de archivos, la opción Convertir ASM a sistema de archivos debe establecerse en en Detalles y configuración de la aplicación. Consulta Detalles y configuración de la aplicación para bases de datos de Oracle.

Prepara la autenticación de la base de datos de Oracle

Los siguientes pasos de preparación adicionales son obligatorios solo si planeas usar la autenticación de base de datos. La autenticación de la base de datos de Oracle se describe en Copia de seguridad y DR con autenticación de la base de datos.

  1. Sigue los pasos que se indican en Cómo preparar bases de datos de Oracle en un entorno de Linux.

  2. Crea una cuenta de usuario de base de datos para la copia de seguridad de Backup and DR, si no se proporcionó una:

    create user act_rman_user identified by <password>;
    
  3. Para otorgarle acceso a sysdba a todos los nodos de RAC, accede a sqlplus en todos los nodos y ejecuta lo siguiente:

    grant create session, resource, sysdba to act_rman_user;
    

    Para Oracle 12c, este rol puede ser sysbackup en lugar de of sysdba, y el nombre de usuario de la base de datos comienza con #.

  4. Verifica que se haya otorgado el rol sysdba en todos los nodos del entorno de RAC:

    #sqlplus / as sysasm
    # sql> select * from gv$pwfile_users;
    INST_ID USERNAME SYSDB SYSOP SYSAS
    ---------- --------------  ----- ----- -----
    1 SYS TRUE TRUE FALSE
    2 SYS TRUE TRUE FALSE
    1 ACT_RMAN_USER TRUE TRUE FALSE
    2 ACT_RMAN_USER TRUE TRUE FALSE
    
  5. Prueba el nombre del servicio según el tipo de entorno con las siguientes instrucciones:

Crea y verifica el nombre de servicio de Oracle en un entorno que no sea de RAC

El nombre de servicio de Oracle solo se usa para la autenticación de la base de datos. No es necesario para la autenticación del SO.

Ejemplo: Nombre de la base de datos: dbstd, Nombre de la instancia: dbstd

  1. Si el nombre de servicio de Oracle no aparece en la lista, crea la entrada de nombre de servicio en el archivo tnsnames.ora en $ORACLE_HOME/network/admin o en $GRID_HOME/network/admin agregando la siguiente entrada:

    act_svc_dbstd =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST
    = (IP of the database server)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = dbstd)
    ) )
    

    Si el archivo tnsnames.ora se encuentra en una ubicación no estándar, proporciona la ruta de acceso absoluta en Detalles y configuración de la aplicación, como se describe en Detalles y configuración de la aplicación para bases de datos de Oracle.

  2. Prueba la entrada del nombre del servicio de la base de datos para asegurarte de que esté configurada:

    Accede como usuario del SO Oracle y configura el entorno de Oracle:

    TNS_ADMIN=(tnsnames.ora file location)
    tnsping act_svc_dbstd
    
  3. Verifica la cuenta de usuario de la base de datos para asegurarte de que la copia de seguridad de Backup and DR se pueda conectar:

    sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
    
  4. Proporciona el nombre de servicio creado (act_svc_dbstd) en la configuración del nombre de servicio de Oracle en Detalles y configuración de la aplicación, como se describe en Detalles y configuración de la aplicación para bases de datos de Oracle.

Crea y verifica el nombre de servicio de Oracle en un entorno de RAC

El nombre de servicio de Oracle solo se usa para la autenticación de la base de datos. No es necesario para la autenticación del SO.

Ejemplo de RAC de tres nodos:

  • Nombre de la base de datos: dbrac

  • Nombre de la instancia 1: dbrac1

  • Nombre de Instance2: dbrac2

  • Nombre de la instancia 3: dbrac3 con la protección de la base de datos establecida desde el nodo 3 (nombre de la instancia dbrac3):

  1. Crea una entrada de nombre de servicio en el archivo tnsnames.ora en $ORACLE_HOME/network/admin o en $GRID_HOME/network/admin agregando la siguiente entrada:

    act_svc_dbrac3 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = (IP of the database server)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (INSTANCE_NAME = dbrac3)
    (SERVICE_NAME = dbrac)
    ) ) )
     Where:
     HOST = This can be SCAN IP in a RAC environment or VIP or IP of the node 3 database server.
    SERVICE_NAME = database name
    INSTANCE_NAME = database instance name on node3
    
  2. Prueba el nombre del servicio:

    Accede como usuario del SO Oracle y configura el entorno de Oracle:

    TNS_ADMIN=(tnsnames.ora file location)
    tnsping act_svc_dbrac3
    
  3. Verifica la cuenta de usuario de la base de datos para asegurarte de que la copia de seguridad de Backup and DR se pueda conectar:

    sqlplus act_rman_user/act_rman_user@act_svc_dbrac3 as sysdba
    
  4. Proporciona el nombre del servicio creado (act_svc_dbrac3) en la configuración del nombre del servicio de Oracle en Detalles y configuración de la aplicación, que se describe en Detalles y configuración de la aplicación para bases de datos de Oracle.

    Si el archivo tnsnames.ora se encuentra en una ubicación no estándar, proporciona la ruta de acceso absoluta al archivo tnsnames.ora en la configuración de ruta de acceso TNS_Admin de Oracle en Detalles y configuración de la aplicación que se describe en Detalles y configuración de la aplicación para bases de datos de Oracle.

Habilita el seguimiento de cambios de bloques de la base de datos (opcional)

El seguimiento de bloques de cambios de la base de datos se describe en Seguimiento de cambios de bloques de la base de datos de Oracle (BCT).

Para verificar si el seguimiento de cambios de bloques de la base de datos está habilitado, haz lo siguiente:

sqlplus / as sysdba

En el mensaje de SQL, escribe lo siguiente:

select * from v$block_change_tracking;

Si el seguimiento de cambios de bloques de la base de datos no está habilitado, habilítalo desde sqlplus:

Usa el grupo de discos de ASM

sqlplus / as sysdba

En el mensaje de SQL, escribe lo siguiente:

alter database enable block change tracking using file '+<ASM Disk Group Name>/<database name>/<dbname>.bct';

Cómo usar el sistema de archivos

sqlplus / as sysdba

En el mensaje de SQL, escribe lo siguiente:

alter database enable block change tracking using file '$ORACLE_HOME/dbs/<dbname>.bct';

Protección desde un nodo de Oracle Data Guard

Puedes proteger una base de datos de Oracle de los nodos de la base de datos principal o de los nodos de espera de Oracle Data Guard. Si la protección se establece desde un nodo de Oracle Data Guard, asegúrate de configurar las credenciales del nodo principal en Detalles y configuración de la aplicación en la consola de administración.

Para la autenticación de bases de datos (solo Linux)

  • Nombre de usuario o contraseña: Son las credenciales de la cuenta de usuario de la base de datos. Para que esta cuenta de usuario esté disponible en el nodo de Data Guard con acceso a sysdba, este usuario debe crearse con el privilegio sysdba en el nodo principal (consulta cómo crear una cuenta de usuario de copia de seguridad con acceso a sysdba). Luego, el archivo de contraseña (en $ORACLE_HOME/dbs/) del nodo principal se debe copiar en el nodo de Data Guard.

Para la autenticación del SO

  • Nombre de usuario y contraseña: En la autenticación del SO, no se requiere el privilegio sysdba. Esta cuenta de usuario de la base de datos necesita el privilegio connect, alter system. Para que esta cuenta de usuario esté disponible en el nodo de Data Guard, se debe crear en el nodo principal.

Si el usuario no tiene el rol sysdba, necesita grant connect, alter system, select on dba_tablespaces.

Para otorgar estos privilegios, en la instrucción sql, haz lo siguiente:

    grant connect, alter system, select on dba_tablespaces to act_rman_user;
  • Nombre de servicio del nodo principal de Oracle Data Guard: Es el nombre de servicio en el archivo tnsnames.ora configurado en el nodo de Data Guard para conectarse al nodo principal desde el nodo en espera. Se requiere el nombre de servicio del nodo principal de Oracle Data Guard para la autenticación del SO y de la BD si la copia de seguridad se configura desde el nodo en espera de Data Guard.

Para obtener detalles completos sobre todos los detalles y la configuración, consulta Detalles y configuración de la aplicación para bases de datos de Oracle.

Nodo de base de datos Autenticación del SO Autenticación de la base de datos
Principal No se necesitan credenciales de la base de datos. Se necesitan credenciales de la base de datos. Si no se selecciona ningún rol, se usa sysdba.
En suspensión Las credenciales de la base de datos son necesarias incluso para la autenticación del SO (para conectarse al registro principal y cambiarlo). Las credenciales de la base de datos no necesitan tener un rol sysdba/sysbackup. Si se usa una cuenta de sysdba/sysbackup, configura el rol de usuario en Rol de usuario en la base de datos en Detalles y configuración de la aplicación. Se necesitan credenciales de la base de datos. Las credenciales de la base de datos deben ser para el rol sysdba o sysbackup, y Rol del usuario en la base de datos debe establecerse en sysdba o sysbackup en Detalles y configuración de la aplicación. Para configurar la autenticación de la base de datos, consulta Cómo habilitar la autenticación de la base de datos para un servidor de Oracle.

Configura la conmutación por error transparente de RAC de la copia de seguridad de RMAN a otros nodos

El agente de Backup and DR debe estar instalado y en ejecución en todos los nodos que planeas que formen parte de la configuración de conmutación por error de la copia de seguridad. La protección se configura solo desde un nodo.

En Detalles y configuración, Nodos del clúster, especifica la elección del nodo de conmutación por error en un entorno de Oracle RAC:

    <Failover choice>:<Node IP>:<Servicename>:<Role>

Aquí:

  • Failover Choice: Es el orden del nodo en el que se debe realizar la conmutación por error.

  • IP del nodo: Es la dirección IP del nodo en el que deseas que se ejecute la copia de seguridad.

  • Servicename: Es el nombre del servicio creado y especificado en tnsnames.ora para la copia de seguridad de RMAN de Backup and DR. Puede ser un servicio nuevo dedicado creado para la copia de seguridad de Backup and DR o el nombre de SID (nombre de la instancia) de la base de datos en ese nodo.

  • Rol: F, que indica que es un nodo de conmutación por error

Para crear un nuevo nombre de servicio en el nodo de conmutación por error en el archivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora o $GRID_HOME/network/admin/tnsnames.ora)

Ejemplo en un entorno de Oracle One Node

RAC One Node consta de dos nodos:

172.15.157.200
172.15.157.201

Tiene una base de datos OneN que se ejecuta solo en uno de los nodos en un momento determinado. OneN está protegido desde 172.15.157.200, con la configuración del nodo del clúster especificada como 1:172.15.157.201:OneN:F.

Si OneN se traslada a 172.15.157.201, la copia de seguridad de Backup and DR la sigue y comienza la siguiente tarea de copia de seguridad desde 172.15.157.201 en lugar de 200. Si la conmutación por error se produce en medio de un trabajo de copia de seguridad, este falla y el siguiente trabajo usa el nodo de conmutación por error para iniciar una nueva copia de seguridad.

Ejemplo en un entorno de Oracle, no en un solo nodo:

  • RAC de 2 nodos (dbrac1, dbrac2)

  • La protección se establece con el nombre de la base de datos "dbrac" de dbrac1 y la conmutación por error se debe establecer en dbrac2.

  • Nombre del servicio en el nodo 2: act_svc_dbrac2

  • IP de Node2 o IP de análisis: 172.1.1.0

act_svc_node2 =

  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 172.1.1.0)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (INSTANCE_NAME = dbrac2)
  (SERVICE_NAME = dbrac)
  ) )

En Detalles y configuración de la aplicación, las entradas de los nodos del clúster son las siguientes:

Failoverchoice:NodeIP:Servicename:Role

1:172.1.1.1:act_svc_node2:F

El comportamiento de las entradas de nodos de clúster F y M

F: Nodo de conmutación por error, solo participa cuando el nodo de protección no es para realizar la copia de seguridad.

M: Nodo de mantenimiento, reemplaza el nodo de protección si se valida para poder realizar la copia de seguridad.

Compresión de registros de archivo de Oracle

La copia de seguridad de registros de archivo de Backup and DR admite la compresión del conjunto de copias de seguridad de registros de Oracle. El tipo de compresión que selecciones depende de estos parámetros de configuración de RMAN. Selecciona una opción según tu caso de uso.

  • Las proporciones de compresión más bajas tienen el menor impacto en la capacidad de procesamiento de las copias de seguridad. Son más adecuados para entornos en los que los recursos de la CPU son el factor limitador.

  • Se recomienda la compresión media para la mayoría de los entornos. Estos proporcionan una buena combinación de índices de compresión y velocidad.

  • Las relaciones de compresión altas requieren muchos recursos y son más adecuadas para las copias de seguridad en redes más lentas, en las que el factor limitante es la velocidad de la red.

La configuración predeterminada es Básica. La versión básica no requiere la compresión avanzada de Oracle.

Para verificar el tipo de compresión establecido en el entorno, ejecuta el comando show all desde el mensaje de RMAN:

rman target /

    show all

Configura los servicios de base de datos de Oracle para el balanceo de cargas en varios nodos

Este procedimiento solo se aplica a las bases de datos de ASM de Oracle. En este ejemplo, supongamos un entorno de RAC de cuatro nodos; los nodos 3 y 4 se deben balancear para el uso de copias de seguridad.

Consulta los siguientes vínculos:

El balanceo de cargas entre nodos de Oracle RAC requiere la autenticación de la base de datos de Oracle.

Configura la copia de imagen de RMAN en paralelo desde varios nodos

En un entorno de RAC, puedes configurar la copia de seguridad para que se ejecute en paralelo desde varios nodos.

  1. Instala el agente de Backup and DR en todos los nodos.

  2. Configura la asignación del grupo de discos de ASM al nodo 3 y al nodo 4 con los detalles y la configuración de la aplicación.

  3. Crea un servicio de base de datos con srvctl para ejecutarlo desde el nodo 3 y el nodo 4.

  4. Usa este servicio para especificarlo en Detalles y configuración de la aplicación. Elige Cantidad de canales en Configuración avanzada (Cantidad de canales). RMAN distribuye los canales entre el nodo 3 y el 4.

  5. Establece el nombre de servicio de Oracle y los nodos miembros de RAC.

Configura los servicios de base de datos de Oracle para el balanceo de cargas en varios nodos

  1. En Detalles y configuración de la aplicación, configura los nodos miembros de RAC: la IP del nodo 3 y la IP del nodo 4.

  2. Crea un servicio de base de datos para el nodo de mantenimiento que usará Backup and DR para crear copias de seguridad:

    srvctl add service -d <dbname> -s act_service_<dbname>
    -r <dbinstance3>,<dbinstance4> srvctl start service -d <dbname>
    -s act_service_<dbname>
    
  3. Agrega la entrada tns para el nombre del servicio de Oracle que se creó en los nodos de copia de seguridad (nodos dbinstance3 y dbinstance4 en este ejemplo) en el archivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora o $GRID_HOME/network/admin/tnsnames.ora).

    act_service_<dbname> =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = <DATABASE NAME>)
    ) )
    
  4. Prueba el nombre de servicio creado:

    tnsping actservice

  5. Prueba el nombre de servicio y las credenciales del usuario:

    sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
    
  6. Especifica este nombre de servicio en el nombre de servicio de Oracle Application Details & Settings.

  7. Crea un servicio de copia de seguridad de registro de archivo dedicado en un nodo protegido (p.ej., el nodo 3) para usar en la copia de seguridad:

    srvctl add service -d <dbname> -s act_arc_service_<dbname> -r <dbinstance3>
    srvctl start service -d <dbname> -s act_arc_service_<dbname>
    
  8. Agrega la entrada tns para el nombre del servicio de copia de seguridad de registro de archivo creado en el archivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora o en $GRID_HOME/network/admin/tnsnames.ora).

    act_arc_service_<dbname> =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (INSTANCE_NAME = <node 3 instance>)
    (SERVICE_NAME = act_arc_service_<dbname>)
    ) )
    
  9. Prueba el nombre del servicio:

    tnsping act_archservice

  10. Especifica este nombre de servicio en Application Details & Settings archive log backup servicename.

Cómo aplicar parches a Oracle 12c

Es posible que los activadores de copia de seguridad y DR para aplicaciones fallen si tu instalación de Oracle 12c no incluye este parche, que se puede descargar desde el portal de asistencia de Oracle:

Error de Oracle Database 12c# 19404068 (ORA-1610 ON RECOVER DATABASE FOR CREATED CONTROLFILE)

  • (Parche 19404068) Linux x86-64 para Oracle 12.1.0.2.0

Para ver si el parche está instalado, ejecuta el siguiente comando:

    $cd $ORACLE_HOME/OPatch
    $./opatch lsinventory -details
    $./opatch lsinventory -details | grep 19404068

Pasos siguientes

Antes de agregar el host de Oracle, continúa con los siguientes pasos:

  1. Cómo usar Oracle Direct NFS con Backup and DR (opcional)
  2. Parches de Oracle y problemas conocidos

Guía del administrador de bases de datos de Oracle