Prepara bases de datos de Oracle para Backup and DR en un dispositivo de copia de seguridad o recuperación

Antes de comenzar, te recomendamos que revises Backup and DR para Oracle.

Antes de crear copias de seguridad de las bases de datos de Oracle, debes agregar el servidor de Oracle como un host a Backup and DR. Para que esto funcione, asegúrate de consultar los requisitos previos para crear copias 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 bases de datos de Oracle en un entorno de Linux o
Prepara 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)
Protege desde 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 base de datos de Oracle para el balanceo de cargas en varios nodos
Aplica parches a Oracle 12c

Prepara bases de datos de Oracle en un entorno de Linux

Antes de proteger una base de datos de Oracle o si fallan los trabajos de protección de la base de datos, asegúrate de que los siguientes parámetros de configuración sean correctos en el servidor de la base de datos de Oracle.

  • Cada base de datos de Oracle que se protegerá debe estar 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 ejecutarse en modo de registro de archivo. Para verificar que la base de datos se ejecute en modo de registro de archivo, accede al servidor de la base de datos como usuario del SO de Oracle y configura 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>
export PATH=$ORACLE_HOME/bin:$PATH
 Login to sqlplus:
sqlplus / as sysdba
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
 Note: If archive log mode is not enabled then get archive mode enabled
 before proceeding.
  • La base de datos debería usar spfile. Verifica que la base de datos se esté ejecutando con spfile:
sqlplus / as sysdba
show parameter spfile
NAME      TYPE   VALUE
------------------ ----------- ------------
spfile      string  +DATA/ctdb/spfilectdb.ora
 Note: If the value is `null_` then
 get the spfile set. Backup and DR supports backing up using pfile as well.
 pfile should be available in default location. For example, a
 Linux `pfile` should be located under `$ORACLE_HOME/dbs`.
  • Para la base de datos de Oracle RAC, el archivo de control de instantáneas debe ubicarse en 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. Configúrala 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 db_unique_name CTDB 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';
 This example shows the configuration set to the local file system.

 In a RAC environment, this must be set to shared ASM Disk Group. To put it
 on the ASM Disk Group, use:

```bash
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+(disk group name)/snap_(database name).f';
```

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

Disco de etapa de pruebas de Backup and DR en un grupo de discos de ASM

El parámetro diskstring de ASM debe estar configurado y no debe 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)
export PATH=$ORACLE_HOME/bin:$PATH

Conéctate a sqlplus:

sqlplus / as sysasm
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 de cadena de disco de ASM correcto para los discos de ASM existentes antes de continuar con la protección de Backup and DR. La copia de seguridad de Backup and DR agrega su ruta de cadena de disco (/dev/Backup and DR/asm/*) para que su disco de copia de seguridad de etapa de pruebas se asigne a ASM.

Disco de etapa de pruebas de Backup and DR en el sistema de archivos

Si proteges una base de datos de ASM de Oracle en un sistema de archivos, Convertir ASM en sistema de archivos debe establecerse en Sí 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 solo son necesarios si planeas usar la autenticación de la base de datos. La autenticación de la base de datos de Oracle se describe en Backup and DR using database authentication.

  1. Sigue los pasos que se indican en Prepara 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 proporciona:

create user act_rman_user identified by <password>;
  1. Otorga acceso de sysdba a todos los nodos de RAC. Para ello, 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 #.

  1. Verifica que se haya otorgado el rol sysdba en todos los nodos del entorno de RAC:
sqlplus / as sysasm
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
  1. Prueba el nombre del servicio según el tipo de entorno con las siguientes instrucciones:

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

El nombre del servicio de Oracle se usa solo 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 no aparece el nombre del servicio de Oracle, crea la entrada del nombre del servicio en el archivo tnsnames.ora en $ORACLE_HOME/network/admin o en $GRID_HOME/network/admin agregando la 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.

  1. Prueba la entrada del nombre del servicio para la base de datos y asegúrate de que esté configurada:

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

TNS_ADMIN=(tnsnames.ora file location)
tnsping act_svc_dbstd
  1. Verifica la cuenta de usuario de la base de datos para asegurarte de que la copia de seguridad de Backup and DR pueda conectarse:
sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
  1. Proporciona el nombre del servicio creado (act_svc_dbstd) en el parámetro de configuración Nombre del 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 del servicio de Oracle en un entorno de RAC

El nombre de servicio de Oracle se usa solo 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 la instancia 2: dbrac2

  • Nombre de la instancia 3: dbrac3 con la protección de la base de datos configurada 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
  1. Prueba el servicename:

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

TNS_ADMIN=(tnsnames.ora file location)
tnsping act_svc_dbrac3
  1. 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
  1. Proporciona el nombre del servicio creado (act_svc_dbrac3) en el parámetro de 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 el parámetro de configuración de la ruta de acceso de Oracle TNS_Admin 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 cambios de bloques de la base de datos se describe en Seguimiento de cambios de bloques (BCT) de la base de datos de Oracle

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

sqlplus / as sysdba

En el símbolo del sistema de SQL, haz lo siguiente:

select * from v$block_change_tracking;

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

Usa el grupo de discos de ASM

sqlplus / as sysdba

En el cuadro de SQL, haz lo siguiente:

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

Usa el sistema de archivos

sqlplus / as sysdba

En el símbolo del sistema de SQL, haz lo siguiente:

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

Protege desde un nodo de Oracle Data Guard

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

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

  • Nombre de usuario/Contraseña: Son las credenciales de cuenta del usuario de la base de datos. Para que esta cuenta de usuario esté disponible en el nodo de Data Guard con acceso de sysdba, este usuario se debe crear con el privilegio de sysdba en el nodo principal (consulta cómo crear una cuenta de usuario de copia de seguridad con acceso de 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 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 este usuario 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 el mensaje de SQL, haz lo siguiente:

grant connect, alter system, select on dba_tablespaces to act_rman_user;
  • Nombre del servicio del nodo principal de Oracle Data Guard: Es el nombre del servicio en el archivo tnsnames.ora configurado en el nodo de Data Guard para conectarse al nodo principal desde el nodo en espera. Oracle Data Guard El nombre del servicio del nodo principal es obligatorio para la autenticación del SO y de la base de datos 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 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 a la base de datos principal y cambiar el registro). Las credenciales de la base de datos no necesitan tener un rol de sysdba o sysbackup. Si se usa una cuenta de sysdba/sysbackup, establece 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 el rol de usuario en la base de datos debe establecerse en sysdba o sysbackup en los detalles y la configuración de la aplicación. Para configurar la autenticación de la base de datos, consulta Habilita 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 desde un solo 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í:

  • Elección de conmutación por error: 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 el archivo tnsnames.ora para la copia de seguridad de RMAN de Backup and DR. Este puede ser un servicio dedicado nuevo creado para la copia de seguridad de Backup and DR o el nombre del 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 servicename nuevo en el nodo de conmutación por error en el archivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora o en $GRID_HOME/network/admin/tnsnames.ora), haz lo siguiente:

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 de 172.15.157.200, con la configuración del nodo del clúster especificada como 1:172.15.157.201:OneN:F

Si OneN conmuta por error a 172.15.157.201, la copia de seguridad de Backup and DR la sigue y comienza el siguiente trabajo 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 copia de seguridad nueva.

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

  • RAC de 2 nodos (dbrac1, dbrac2)

  • La protección se configura con el nombre de la base de datos "dbrac" de dbrac1 y la conmutación por error se configurará en dbrac2

  • Nombre del servicio en el nodo 2: act_svc_dbrac2

  • IP del nodo 2 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:

1:172.1.1.1:act_svc_node2:F

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

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

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

Compresión de los 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 dependerá 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 generan 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 CPU son el factor limitante.

  • Se recomienda la compresión media para la mayoría de los entornos. Estos proporcionan una buena combinación de proporciones 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 básica no requiere Oracle Advanced Compression.

Para verificar el tipo de compresión establecido en el entorno, ejecuta el comando show all desde el símbolo del sistema 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 Oracle ASM. En este ejemplo, se supone que hay 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 los nodos de Oracle RAC requiere la autenticación de la base de datos de Oracle.

Configura la copia de imágenes 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 Application details & settings.

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

  4. Usa este servicio para especificar en Application Details & Settings. Elige la cantidad de canales en Configuración avanzada (Cantidad de canales). RMAN distribuye los canales entre el nodo 3 y el nodo 4.

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

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

  1. Configura en Application Details & Settings, RAC Member Nodes: IP of node3 and IP of node 4.

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

srvctl add service -d <dbname> -s act_service_<dbname> -r <dbinstance3>,<dbinstance4>
srvctl start service -d <dbname> -s act_service_<dbname>
  1. Agrega la entrada tns para el nombre del servicio de Oracle creado en los nodos de copia de seguridad (nodo dbinstance3y dbinstance4 en este ejemplo) en el archivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora o en $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>)
) )
  1. Prueba el nombre del servicio creado:
tnsping act_service_<dbname>
  1. Prueba el nombre del servicio y las credenciales del usuario:
sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
  1. Especifica este nombre de servicio en el nombre de servicio de Oracle de Application Details & Settings.

  2. Crea un servicio de copia de seguridad de registros de archivo dedicado en un nodo protegido (p.ej., el nodo 3) para usarlo 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>
  1. Agrega la entrada tns para el nombre del servicio de copia de seguridad del 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>)
) )
  1. Prueba el nombre del servicio:
tnsping act_arch_service_<dbname>
  1. Especifica este nombre de servicio en el nombre de servicio de la copia de seguridad del registro de archivo de Detalles y configuración de la aplicación.

Aplica parches a Oracle 12c

Las activaciones de Backup and DR compatibles con aplicaciones pueden fallar si tu instalación de Oracle 12c no incluye este parche, que se puede descargar desde el portal de asistencia de Oracle:

Error n° 19404068 de Oracle Database 12c (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 lo siguiente:

  1. (Opcional) Usa Oracle Direct NFS con Backup and DR
  2. Parches y problemas conocidos de Oracle

The Oracle DBA Guide