Antes de empezar, te recomendamos que consultes el artículo Servicio de Backup y DR para Oracle.
Antes de crear copias de seguridad de bases de datos Oracle, debes añadir el servidor Oracle como host al servicio de copia de seguridad y recuperación tras desastres. Para que esto funcione, consulta los requisitos previos para crear copias de seguridad de una base de datos de Oracle y, a continuación, sigue estos pasos de preparación.
Preparar bases de datos de Oracle en un entorno Linux
Antes de proteger una base de datos de Oracle o si fallan los trabajos de protección de bases de datos, asegúrese de que los siguientes ajustes sean correctos en el servidor de bases de datos de Oracle.
Cada base de datos de Oracle que se vaya a proteger debe estar activa. 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 el modo de registro de archivo. Para comprobar que la base de datos se está ejecutando en el modo de registro de archivo, inicia sesión en el servidor de bases de datos como usuario del SO Oracle y define 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
Inicia sesión en 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
. Comprueba que la base de datos se está ejecutando conspfile
:#sqlplus / as sysdba SQL> show parameter spfile NAME TYPE VALUE ------------------ ----------- ------------ spfile string +DATA/ctdb/spfilectdb.ora
En el caso de la base de datos Oracle RAC, el archivo de control de la instantánea debe estar ubicado en discos compartidos. En el caso de una base de datos Oracle RAC en ASM, el archivo de control de la instantánea debe estar en discos compartidos.
Para comprobarlo, conéctate a RMAN y ejecuta el comando
show all
. Configúralo si es necesario:rman target /
A continuación, en RMAN:
show all
Los parámetros de configuración de RMAN de la base de datos con el nombre único de base de datos 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';
En este ejemplo se muestra la configuración definida en el sistema de archivos local.
En un entorno RAC, debe definirse como un grupo de discos 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';
Preparar una copia de seguridad de una base de datos de Oracle con archivos de datos en un grupo de discos de ASM
Disco de almacenamiento provisional de copia de seguridad y recuperación ante desastres en un grupo de discos de ASM
El parámetro ASM diskstring debe definirse y no puede ser nulo. Inicia sesión en el servidor de bases de datos como usuario del SO de ASM y define 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
Conectar con 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 de cadena de disco ASM correcto
para los discos ASM antes de continuar con la protección de Backup and DR. La copia de seguridad de Backup and DR añade la ruta de cadena de su disco
(/dev/Backup and DR/asm/*
) para su disco de almacenamiento provisional de copia de seguridad
para asignarlo a ASM.
Disco de almacenamiento provisional de copias de seguridad y recuperación ante desastres en el sistema de archivos
Si vas a proteger una base de datos de Oracle ASM en un sistema de archivos, debes definir la opción Convertir ASM en sistema de archivos como Sí en Detalles y configuración de la aplicación. Consulta Detalles y ajustes de la aplicación para bases de datos de Oracle.
Preparar la autenticación de la base de datos de Oracle
Los siguientes pasos de preparación adicionales solo son necesarios si tienes previsto usar la autenticación de base de datos. La autenticación de bases de datos de Oracle se describe en el artículo Copia de seguridad y recuperación ante desastres mediante la autenticación de bases de datos.
Sigue los pasos que se indican en el artículo Preparar bases de datos Oracle en un entorno Linux.
Crea una cuenta de usuario de base de datos para la copia de seguridad de Backup and DR, si no se ha proporcionado:
create user act_rman_user identified by <password>;
Concede acceso a
sysdba
a todos los nodos de RAC iniciando sesión ensqlplus
en todos los nodos y ejecutando el siguiente comando:grant create session, resource, sysdba to act_rman_user;
En Oracle 12c, este rol puede ser
sysbackup
en lugar deof sysdba
y el nombre de usuario de la base de datos empieza por #.Verifica que se ha concedido el rol
sysdba
en todos los nodos del entorno 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
Prueba el nombre del servicio en función del tipo de entorno siguiendo estas instrucciones:
Crear y verificar el nombre de servicio de Oracle en un entorno que no sea 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
Si el nombre de servicio de Oracle no aparece en la lista, crea la entrada del nombre de servicio en el archivo
tnsnames.ora
en$ORACLE_HOME/network/admin
o en$GRID_HOME/network/admin
añadiendo 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, proporcione la ruta absoluta a él en Detalles y configuración de la aplicación, tal como se describe en Detalles y configuración de la aplicación para bases de datos Oracle.Prueba la entrada del nombre del servicio de la base de datos para asegurarte de que está configurada:
Inicia sesión como usuario del SO Oracle y define el entorno de Oracle:
TNS_ADMIN=(tnsnames.ora file location) tnsping act_svc_dbstd
Comprueba la cuenta de usuario de la base de datos para asegurarte de que la copia de seguridad de Backup and DR se puede conectar:
sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
Proporcione el nombre de servicio creado (act_svc_dbstd) en el ajuste Nombre de servicio de Oracle, en Detalles y configuración de la aplicación, tal como se describe en Detalles y configuración de la aplicación para bases de datos de Oracle.
Crear y verificar el nombre de servicio de Oracle en un entorno 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
. La protección de la base de datos se ha configurado desde el nodo 3 (nombre de la instanciadbrac3
):
Crea una entrada servicename en el archivo
tnsnames.ora
en$ORACLE_HOME/network/admin
o en$GRID_HOME/network/admin
añadiendo 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
Prueba el nombre del servicio:
Inicia sesión como usuario del SO Oracle y define el entorno de Oracle:
TNS_ADMIN=(tnsnames.ora file location) tnsping act_svc_dbrac3
Comprueba la cuenta de usuario de la base de datos para asegurarte de que la copia de seguridad de Backup and DR se puede conectar:
sqlplus act_rman_user/act_rman_user@act_svc_dbrac3 as sysdba
Proporcione el nombre del servicio creado (act_svc_dbrac3) en el ajuste Nombre del servicio de Oracle, en Detalles y ajustes de la aplicación descrito en Detalles y ajustes de la aplicación para bases de datos Oracle.
Si el archivo tnsnames.ora se encuentra en una ubicación no estándar, proporcione la ruta absoluta al archivo tnsnames.ora en el ajuste Oracle
TNS_Admin
Path en Application Details & Settings (Detalles y ajustes de la aplicación), tal como se describe en Application details & settings for Oracle databases (Detalles y ajustes de la aplicación para bases de datos Oracle).
Habilitar el seguimiento de cambios de bloques de bases de datos (opcional)
El seguimiento de bloques de cambios de bases de datos se describe en el artículo Seguimiento de cambios de bloques de bases de datos de Oracle (BCT).
Para comprobar si el seguimiento de cambios de bloques de la base de datos está habilitado, haz lo siguiente:
sqlplus / as sysdba
En la petición de SQL:
select * from v$block_change_tracking;
Si el seguimiento de cambios de bloques de la base de datos no está habilitado, habilítelo desde sqlplus:
Usar un grupo de discos de ASM
sqlplus / as sysdba
En la petición de SQL:
alter database enable block change tracking using file '+<ASM Disk Group Name>/<database name>/<dbname>.bct';
Usar el sistema de archivos
sqlplus / as sysdba
En la petición de SQL:
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 desde nodos de la base de datos principal o desde nodos de espera de Oracle Data Guard. Si la protección se ha configurado desde un nodo de Oracle Data Guard, asegúrate de definir las credenciales del nodo principal en Detalles y configuración de la aplicación en la consola de gestión.
Para la autenticación de la base de datos (solo en Linux)
Nombre de usuario o contraseña: 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 sysdba, se debe crear con el privilegio sysdba en el nodo principal (consulta cómo crear una cuenta de usuario de copia de seguridad con acceso sysdba). A continuación, el archivo de contraseñas (en
$ORACLE_HOME/dbs/
) del nodo principal debe copiarse en el nodo de Data Guard.
Para la autenticación del SO
- Nombre de usuario o 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, debe crearse en el nodo principal.
Si el usuario no tiene el rol sysdba, necesita grant connect, alter system, select on dba_tablespaces
.
Para conceder estos privilegios, en la petición de 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 del archivo tnsnames.ora configurado en el nodo de Data Guard para conectarse al nodo principal desde el nodo de espera. Se requiere el nombre de servicio del nodo principal de Oracle Data Guard para la autenticación del SO y de la base de datos si la copia de seguridad se configura desde el nodo de espera de Data Guard.
Para obtener información detallada sobre todos los detalles y ajustes, consulta Detalles y ajustes 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 las credenciales de la base de datos. Si no se selecciona ningún rol, se usa sysdba. |
En espera | Las credenciales de la base de datos son necesarias incluso para la autenticación del SO (para conectarse a la principal y cambiar el registro). Las credenciales de la base de datos no tienen por qué tener el rol sysdba o sysbackup. Si se usa una cuenta sysdba o sysbackup, defina el rol de usuario en Rol de usuario en la base de datos en Detalles y configuración de la aplicación. | Se necesitan las credenciales de la base de datos. Las credenciales de la base de datos deben corresponder al rol sysdba o sysbackup, y el valor de Rol de usuario en la base de datos debe ser sysdba o sysbackup en Detalles y configuración de la aplicación. Para configurar la autenticación de base de datos, consulta Habilitar la autenticación de base de datos en un servidor Oracle. |
Configurar la conmutación por error transparente de RAC de la copia de seguridad de RMAN a otros nodos
El agente de Backup y recuperación tras desastres debe estar instalado y en ejecución en todos los nodos que quieras 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 de clúster, especifica el nodo de conmutación por error en un entorno de Oracle RAC:
<Failover choice>:<Node IP>:<Servicename>:<Role>
Donde:
Opción de conmutación por error: el orden de los nodos en los que se va a realizar la conmutación por error.
IP del nodo: dirección IP del nodo en el que quieres que se ejecute la copia de seguridad
Servicename: el nombre del servicio creado y especificado en el archivo tnsnames.ora para la copia de seguridad de RMAN de Backup and DR. Puede ser un servicio dedicado nuevo creado para la copia de seguridad de Backup and DR o el nombre 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 failover 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 dado. OneN está protegido de 172.15.157.200, con la configuración de nodo de clúster especificada como 1:172.15.157.201:OneN:F
Si OneN pasa a 172.15.157.201, la copia de seguridad de Backup and DR la sigue e inicia el siguiente trabajo de copia de seguridad desde 172.15.157.201 en lugar de 200. Si se produce una conmutación por error durante un trabajo de copia de seguridad, el trabajo falla y el siguiente usa el nodo de conmutación por error para iniciar una nueva copia de seguridad.
Ejemplo en un entorno de Oracle que no es de un solo nodo:
RAC de 2 nodos (
dbrac1
ydbrac2
)La protección se define mediante el nombre de la base de datos "dbrac" de
dbrac1
y la conmutación por error se debe definir endbrac2
.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 Application Details & Settings (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
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 está disponible para realizar la copia de seguridad.
M nodo de mantenimiento. Sustituye al 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 copias de seguridad y recuperación tras fallos admite la compresión de conjuntos de copias de seguridad de registros de Oracle. El tipo de compresión que selecciones depende de estos ajustes de configuración de RMAN. Selecciona una opción en función de tu caso práctico.
Los ratios de compresión más bajos son los que menos influyen en el rendimiento 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 en la mayoría de los entornos. Ofrecen una buena combinación de relaciones de compresión y velocidad.
Los ratios de compresión altos consumen muchos recursos y son más adecuados para copias de seguridad en redes más lentas, donde el factor limitante es la velocidad de la red.
El ajuste predeterminado es Básico. La versión básica no requiere Oracle Advanced Compression.
Para comprobar el tipo de compresión definido en el entorno, ejecuta el comando show all
desde la petición de RMAN:
rman target /
show all
Configurar servicios de bases de datos Oracle para balancear la carga en varios nodos
Este procedimiento solo se aplica a las bases de datos de Oracle ASM. En este ejemplo, se presupone un entorno RAC de cuatro nodos. Los nodos 3 y 4 se van a equilibrar para usarlos como copia de seguridad.
Consulta los siguientes artículos:
Configurar una copia de imagen de RMAN paralela desde varios nodos
Configurar servicios de bases de datos Oracle para balancear la carga en varios nodos
Para equilibrar la carga entre los nodos de Oracle RAC, se requiere la autenticación de la base de datos de Oracle.
Configurar una copia de imagen de RMAN paralela desde varios nodos
En un entorno RAC, puede configurar la copia de seguridad para que se ejecute en paralelo desde varios nodos.
Instala el agente de copia de seguridad y recuperación ante desastres en todos los nodos.
Configura la asignación del grupo de discos de ASM a los nodos 3 y 4 mediante los detalles y la configuración de la aplicación.
Crea un servicio de base de datos con srvctl para que se ejecute desde los nodos 3 y 4.
Usa este servicio para especificarlo en Detalles y configuración de la aplicación. Elige Número de canales en Configuración avanzada (número de canales). RMAN distribuye los canales entre los nodos 3 y 4.
Define el nombre de servicio de Oracle y los nodos miembros de RAC.
Configurar servicios de Oracle Database para balancear la carga en varios nodos
Configurar en Detalles y ajustes de la aplicación: Nodos miembros de RAC: IP del nodo 3 e IP del nodo 4.
Crea un servicio de base de datos para que el nodo de mantenimiento lo use Copia de seguridad y recuperación tras fallos 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>
Añade la entrada tns del nombre de servicio de Oracle creado en los nodos de copia de seguridad (nodos
dbinstance3
ydbinstance4
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>) ) )
Prueba el nombre del servicio creado:
tnsping actservice
Prueba el nombre del servicio y las credenciales de usuario:
sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
Especifique este nombre de servicio en Application Details & Settings (Detalles y ajustes de la aplicación) > Nombre de servicio de Oracle.
Crea un servicio de copia de seguridad de registros de archivo específico en un nodo protegido (por ejemplo, el nodo 3) que se utilizará para 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>
Añade la entrada tns del 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>) ) )
Prueba el nombre del servicio:
tnsping act_archservice
Especifica este nombre de servicio en Application Details & Settings (Detalles y configuración de la aplicación) > archive log backup servicename (nombre de servicio de copia de seguridad del registro de archivo).
Parchear Oracle 12c
Es posible que los montajes de aplicaciones de copia de seguridad y recuperación ante desastres 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 n.º 19404068 (ORA-1610 ON RECOVER DATABASE FOR CREATED CONTROLFILE)
- (Parche 19404068) Linux x86-64 para Oracle 12.1.0.2.0
Para comprobar si el parche está instalado, ejecuta el siguiente comando:
$cd $ORACLE_HOME/OPatch
$./opatch lsinventory -details
$./opatch lsinventory -details | grep 19404068
Siguientes pasos
Antes de añadir el host de Oracle, continúa con lo siguiente:
Guía para administradores de bases de datos de Oracle
- Backup y recuperación ante desastres para bases de datos Oracle
- Requisitos previos para proteger una base de datos de Oracle
- Parches de Oracle y problemas conocidos
- Preparar bases de datos de Oracle para la protección
- Descubrir y proteger una base de datos de Oracle
- Detalles y configuración de las bases de datos de Oracle
- Usar dNFS con Backup y DR
- Proteger una base de datos de Oracle detectada
- Montar una base de datos de Oracle como un montaje estándar
- Crear una copia virtual instantánea de una base de datos Oracle
- Restaurar y recuperar una base de datos de Oracle
- Recuperación instantánea de una base de datos de Oracle mediante la opción Montar y migrar
- Aprovisionar un entorno con un flujo de trabajo de copia de seguridad y recuperación tras fallos