Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IMP-002
Configuración de VERSIÓN 1
Configuración de
Oracle DATAGUARD 12c
1
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
C O N T E N I D O
INTRODUCCION ................................................................................................................................................................. 4
ARQUITECTURA ................................................................................................................................................................. 4
CONFIGURACION SISTEMA OPERATIVO ............................................................................................................................. 5
1. REQUERIMIENTOS DE HARDWARE ............................................................................................................................ 5
2. SISTEMA OPERATIVO ................................................................................................................................................ 5
Espacio en FS de Sistema Operativo ................................................................................................................................ 5
Filesystems Adicionales .................................................................................................................................................... 5
Comunicación TCP/IP ....................................................................................................................................................... 6
Usuarios ............................................................................................................................................................................ 6
Repositorio RMAN ............................................................................................................................................................ 6
Parar servicios Firewall en cada servidor ........................................................................................................................ 6
Parar y deshabilitar servicio "avahi-daemon" ................................................................................................................ 6
Archivo hosts .................................................................................................................................................................... 7
Consejos ............................................................................................................................................................................ 7
CONFIGURACION SERVIDOR PRINCIPAL ............................................................................................................................ 7
Poner la base principal en modo archivelog.................................................................................................................... 7
Habilitar el registro forzado ............................................................................................................................................. 7
Db_name, db_unique_name ............................................................................................................................................ 8
Configurar el archivelog para stanby .............................................................................................................................. 8
Configurar el passwordfile ............................................................................................................................................... 8
Configurar el envio de spfile a standby ........................................................................................................................... 8
Configurar el tnsname.ora ............................................................................................................................................... 9
Obtener los archivos de parámetros ................................................................................................................................ 9
Crear los archivos Standby Redo Logs ........................................................................................................................... 10
SINCRONIZAR LOS SERVIDORES CON RMAN .................................................................................................................... 11
CONFIGURACION SERVIDOR SECUNDARIO ...................................................................................................................... 11
Crear los directorios ....................................................................................................................................................... 11
Archivo de control e init_DGSTDBY.ora ......................................................................................................................... 11
Tnsnames.ora ................................................................................................................................................................. 11
Listener.ora ..................................................................................................................................................................... 12
Crear spfile en Servidor Secundario ............................................................................................................................... 12
Restaurar con RMAN ...................................................................................................................................................... 12
Crear los archivos Standby logfile .................................................................................................................................. 12
ACTIVAR DATAGUARD ..................................................................................................................................................... 13
Reinicio de servicios ....................................................................................................................................................... 13
Levantar BBDD (Standby) ............................................................................................................................................... 13
Parada y Arranque de la bbdd ....................................................................................................................................... 14
Posibles errores de archivado: ....................................................................................................................................... 14
2
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
3
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
INTRODUCCION
En la mayoría de empresas se han ido implantando durante los últimos años planes de recuperación ante
desastres o DR (Disaster Recovery). Estos planes comprenden un conjunto de recursos hardware, software y
procedimientos que deben permitir a una empresa continuar ofreciendo sus servicios (o los considerados
mínimos) en caso de que ocurran problemas graves en los sistemas informáticos.
En el caso de Oracle y para intentar minimizar este tipo de problemas, existen configuraciones de DR data guard
que nos permiten mantener en ubicaciones físicamente separadas sistemas de contingencia denominados
standby que podrán seguir dando servicio en caso de caída de los sistemas principales.
Existen las soluciones que nos aporta Oracle: las BDD Standby y el producto DataGuard (que ya viene integrado
en las BDD EE) “.Solo aplicable para Enterprise Edition”
Existen dos tipos de bases de datos de reserva. Una base de datos física de reserva utiliza Redo Apply para
mantener una réplica exacta, bloque por bloque, de la base de datos principal. Una base de datos lógica de
reserva se vale de SQL Apply y contiene la misma información lógica que la base principal, aunque la organización
física y la estructura de la información pueden ser distintas.
Si el sistema principal falla, los administradores pueden elegir la conmutación ante fallas manual o automática
del sistema de producción al de reserva para mantener la alta disponibilidad de las aplicaciones de uso crítico.
En la Figura 1, se ilustra la arquitectura de Data Guard
ARQUITECTURA
4
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
1. Requerimientos de Hardware
2. Sistema Operativo
Contar con el espacio suficiente en los FS, principalmente (tmp, usr, var)
/dev/mapper/rhel_root 8.0G /
tmpfs 4.0G /dev/shm
tmpfs 4.0G /run
tmpfs 4.0G /sys/fs/cgroup
/dev/mapper/usr 4.0G /usr
/dev/mapper/var 4.0G /var
/dev/mapper/home 4.0G /home
/dev/sda 2.0G /boot
/tmp 4.0G /tmp
Filesystems Adicionales
5
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
Comunicación TCP/IP
Se requieren direcciones IP que tengan comunicación entre ellas, para generar un servicio de alta disponibilidad
para DataGuard, estas direcciones no podrán o deberán estar asignadas a ningún otro Servidor, así como acceso
entre servidores y al repositorio de RMAN.
Estas direcciones IP deben ser agregadas al archivo /etc/hosts de cada uno de los serviddores, de acuerdo al
siguiente formato.
Usuarios
Es necesario contar con el usuario ORACLE en los servidores que se utilizarán para la configuración del
DataGuard.
Por ejemplo: servidor primario, servidor secundario, servidor RMAN.
Repositorio RMAN
En esta práctica, se creo un repositorio Oracle de RMAN para realizar la réplica de la base de datos primaria
utilizando el init de la base de datos y el respaldo de RMAN.
6
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
Archivo hosts
Agregar hostname y dirección IP de los servidores en el archivo /etc/hosts
## Publica
10.225.240.121 SERVERBD
10.225.240.122 SERVERDG
Consejos
Se debe constatar que tanto la base como el sistema operativo sean iguales en los dos servidores mismo Hadware
y Software, así como las mismas características físicas
Los dos servidores deben tener instalados los paquetes necesarios para el correcto funcionamiento del oracle
El primer servidor de producción contiene la base con listener el segundo solo el software de oracle y listener
con los mismos parámetros que se configuro el principal
LOG_MODE
------------
NOARCHIVELOG
7
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
Db_name, db_unique_name
Verificar la configuración de db_name y db_unique_name en ambos casos debe ser el nombre de la instancia
de producción
Configurar el passwordfile
8
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
Configurar el tnsname.ora
Se puede agregar de manera manual o utilizando la utilería del NETMGR.
vi $ORACLE_HOME/network/admin/tnsnames.ora
/***************************************************
DGSTDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MIXSVLDEDBO01)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = dgstdby)
)
)
DGBDPRD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MIXSVLDEDBO01)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DGBDPRD)
)
)
Nota: Para probar si se tiene conexión entre los dos servidores se recomienda ejecutar el comando tnsping
<nombre del servicio>
b. Editar el archivo init creado para standby en paso anterior, quedando de la siguiente manera:
DGSTDBY.__data_transfer_cache_size=0
DGSTDBY.__db_cache_size=616562688
DGSTDBY.__java_pool_size=4194304
DGSTDBY.__large_pool_size=20971520
DGSTDBY.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
DGSTDBY.__pga_aggregate_target=310378496
DGSTDBY.__sga_target=931135488
DGSTDBY.__shared_io_pool_size=41943040
DGSTDBY.__shared_pool_size=239075328
DGSTDBY.__streams_pool_size=0
9
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
*.audit_file_dest='/ora102/DGSTDBY/admin/adump'
*.audit_trail='none'
*.background_core_dump='partial'
*.compatible='12.1.0.2.0'
*.control_files='/ora102/DGSTDBY/oradata/control/control01.ctl','/ora102/DGSTDBY/oradata/con
trol/control02.ctl'
*.core_dump_dest='/ora102/DGSTDBY/admin/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_name_convert='DGBDPRD','DGSTDBY'
*.db_name='DGBDPRD'
*.db_recovery_file_dest='/ora102/DGSTDBY/fra'
*.db_recovery_file_dest_size=2000m
*.db_unique_name='DGSTDBY'
*.dg_broker_config_file1='/ora102/DGSTDBY/admin/dr/dr1-DGSTDBY.dat'
*.dg_broker_config_file2='/ora102/DGSTDBY/admin/dr/dr2-DGSTDBY.dat'
*.diagnostic_dest='/ora102/DGSTDBY/admin/'
*.fal_client='DGSTDBY'
*.fal_server='DGBDPRD'
*.local_listener='LISTENER'
*.log_archive_config='DG_CONFIG=(DGBDPRD,DGSTDBY)'
*.log_archive_dest_2='SERVICE=DGBDPRD NOAFFIRM ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGBDPRD'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_file_name_convert='DGBDPRD','DGSTDBY'
*.open_cursors=300
*.pga_aggregate_target=296m
*.processes=100
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=888m
*.standby_file_management='MANUAL'
*.undo_tablespace='UNDOTBS1'
e. copiar los archivos generados al servidor SECUNDARIO (Standby) en alguna ruta temporal
dgstdby_stby.ctl
initDGSTDBY.ora
orapwdDGSTDBY
10
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
Realizar backup de la base primaria utilizando la herramienta de RMAN para ello ejecutar
mkdir -p /ora102/DGSTDBY/admin
mkdir -p /ora102/DGSTDBY/fra
mkdir –p /ora101/DGSTDBY/oradata/datos
cd /tmp
cp dgstdby_stby.ctl /ora102/DGSTDBY/oradata/control/control01.ctl
cp dgstdby_stby.ctl /ora102/DGSTDBY/oradata/control/control02.ctl
cp initDGSTDBY.ora /u01/app/oracle/product/12.1.0/db_1/dbs
Tnsnames.ora
Copiar archivo tnsnames.ora del servidor primario al secundario o agregar de manera manual
DGSTDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MIXSVLDEDBO01)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = dgstdby)
)
)
DGBDPRD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MIXSVLDEDBO01)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DGBDPRD)
)
)
11
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
Listener.ora
Configurar archivo listener con los datos de la base de datos Standby
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = DGSTDBY)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/db_1)
(SID_NAME = DGSTDBY)
export ORACLE_SID=DGSTDBY
sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/tmp/initDGSTDBY.ora';
CREATE SPFILE FROM PFILE=’/tmp/initDB11G_stby.ora';
Shutdown immediate;
export ORACLE_SID=DGSTDBY
12
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
ACTIVAR DATAGUARD
Iniciaremos la bbdd de standby y listeners antes que la bbdd primaria
Reinicio de servicios
lsnrctl stop
lsnrctl start
lsnrctl status
STARTUP NOMOUNT;
Modo de recuperación administrado permite automatizar la aplicación de los redologs a la bbdd de standby,
para ello debemos lanzar el siguiente comando:
13
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
Existe un orden del cual se debe respetar para que no se desincronizen las base de datos primaria y standby,
estos son los pasos:
Si encontramos error de archivado en la bbdd de standby, debemos chequear el estado de los mismos y si
detectamos problemas debemos lanzar el siguiente comando:
Si el archivado en la bbdd primaria se ha parado, por posibles fallos de disco lleno, para reparar dicho problema
debemos lanzar el siguiente comando:
MODO DE PROTECCION
Data Guard ofrece tres modos de protección de datos para equilibrar los costos, la disponibilidad, el
rendimiento y la protección de datos. Cada modo se vale de un método de transporte de datos redo específico
y establece reglas que rigen el comportamiento de la configuración de Data Guard en caso de que la base de
datos alguna vez pierda contacto con la de reserva. En la siguiente tabla, se da un panorama general de las
características de cada modo.
14
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
ANEXO
Checklist
-- base primaria
primaria = DGBDPRD
standby = DGSTDBY
5.5.Configurar el passwordfile
5.7.Configurar el tnsname.ora
base primar y standby mismo puerto (1521), probar tnsping
Ejecutar en el principal
DGBDPRD.__data_transfer_cache_size=0
DGBDPRD.__db_cache_size=616562688
DGBDPRD.__java_pool_size=4194304
DGBDPRD.__large_pool_size=20971520
DGBDPRD.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
DGBDPRD.__pga_aggregate_target=310378496
DGBDPRD.__sga_target=931135488
DGBDPRD.__shared_io_pool_size=41943040
DGBDPRD.__shared_pool_size=239075328
DGBDPRD.__streams_pool_size=0
*.audit_file_dest='/ora102/DGBDPRD/admin/adump'
*.audit_trail='none'
*.background_core_dump='partial'
*.compatible='12.1.0.2.0'
15
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
*.control_files='/ora102/DGBDPRD/oradata/control/control01.ctl','/ora102/DGBDPRD/oradata/c
ontrol/control02.ctl'
*.core_dump_dest='/ora102/DGBDPRD/admin/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_name_convert='DGSTDBY','DGBDPRD'
*.db_name='DGBDPRD'
*.db_recovery_file_dest='/ora102/DGBDPRD/fra'
*.db_recovery_file_dest_size=2000m
*.dg_broker_config_file1='/ora102/DGBDPRD/admin/dr/dr1-DGBDPRD.dat'
*.dg_broker_config_file2='/ora102/DGBDPRD/admin/dr/dr2-DGBDPRD.dat'
*.diagnostic_dest='/ora102/DGBDPRD/admin/'
*.fal_server='DGSTDBY'
*.local_listener='LISTENER_DGBDPRD'
*.log_archive_config='DG_CONFIG=(DGBDPRD,DGSTDBY)'
*.log_archive_dest_2='SERVICE=DGSTDBY NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_RO
LE) DB_UNIQUE_NAME=DGSTDBY'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=30
*.log_file_name_convert='DGSTDBY','DGBDPRD'
*.open_cursors=300
*.pga_aggregate_target=296m
*.processes=100
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=888m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
-- redologs
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/ora102/DGBDPRD/oradata/redo/redo_stdby_04.log') SIZE 50M
REUSE;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/ora102/DGBDPRD/oradata/redo/redo_stdby_05.log') SIZE 50M
reuse;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/ora102/DGBDPRD/oradata/redo/redo_stdby_06.log') SIZE 50M
reuse;
dgstdby_stby.ctl
initDGSTDBY_stby.ora
-- base standby
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='DGBDPRD', 'DGSTDBY' SCOPE=SPFILE;
ALTER SYSTEM SET FAL_SERVER=DGBDPRD;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='DGBDPRD','DGSTDBY' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGBDPRD,DGSTDBY)';
alter system set LOG_ARCHIVE_DEST_2='SERVICE=DGBDPRD NOAFFIRM ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGBDPRD';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=MEMORY
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
16
ESTÁNDAR CÓDIGO DOC.IMP-002
Configuración de VERSIÓN 1
mkdir -p /ora102/DGSTDBY/admin/adump
crear los que falten
Ejecutar en el primario
*Controlfile
scp oracle@ol5-112-dga1:/tmp/db11g_stby.ctl /u01/app/oracle/oradata/dbg11_stby/control01.ctl
cp /ora102/DGSTDBY/oradata/control/control01.ctl /u01/app/oracle/fast_recovery_area/ DGSTDBY
/control02.ctl
*Parameter file.
scp oracle@ol5-112-dga1:/tmp/initDB11G_stby.ora /tmp/initDB11G_stby.ora
*Tnsname
scp oracle@ol5-112-dga1:$ORACLE_HOME/network/admin/tnsname.ora $ORACLE_HOME/network/admin/tnsname.ora
lsnrctl reload
export ORACLE_SID=DGBDPRD
sqlplus / as sysdba
CREATE SPFILE FROM PFILE=’/tmp/initDB11G_stby.ora';
-- BASE STANDBY
levantar en modo nomount
STARTUP NOMOUNT;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
-- cancelar operacion
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel;
17