Está en la página 1de 17

ESTÁNDAR CÓDIGO DOC.

IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

Configuración de
Oracle DATAGUARD 12c

1
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

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

ORACLE DataGuard 12c FECHA 28/10/2016

MODO DE PROTECCION ................................................................................................................................................... 14


ANEXO ............................................................................................................................................................................. 15

3
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

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

ORACLE DataGuard 12c FECHA 28/10/2016

CONFIGURACION SISTEMA OPERATIVO

1. Requerimientos de Hardware

8 Gb Mínimo de Memoria RAM


12 Gb Memoria Swap
4 CPU
Linux Redhat 7.1

RAM Disponible Swap Requerido

Entre 4 GB y 16 GB Igual tamaño de RAM


Más de 16 GB 16 GB

2. Sistema Operativo

Sistema Operativo Linux 7.2

Espacio en FS de Sistema Operativo

Contar con el espacio suficiente en los FS, principalmente (tmp, usr, var)

Filesystem Size Mounted on

/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

/u01 (manejador Oracle)


/ora100 (FS donde se alojara los datafiles de la base de datos)
/ora102 (FS donde se alojara los datafiles de la base de datos)
/resprman (para archives y respaldos)

5
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

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.

IP Pública, IP Privada, IP Virtual (para el caso de RAC)


IP Pública (configuración básica)

Estas direcciones IP deben ser agregadas al archivo /etc/hosts de cada uno de los serviddores, de acuerdo al
siguiente formato.

# IPS DE REPLICACION DATAGUARD


10.225.128.XX SERVER_BD
10.225.128.YY SERVER_DG

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.

Parar servicios Firewall en cada servidor


systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

Parar y deshabilitar servicio "avahi-daemon"


systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl status avahi-daemon.service

6
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

Archivo hosts
Agregar hostname y dirección IP de los servidores en el archivo /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4


::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

## 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

CONFIGURACION SERVIDOR PRINCIPAL

Poner la base principal en modo archivelog

Para verificar el modo actual de tu servidor principal

SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
NOARCHIVELOG

Poner en modo archivelog *Realizar esta operación en horario no laboral

SQL> SHUTDOWN IMMEDIATE;


SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;

Habilitar el registro forzado

SQL> ALTER DATABASE FORCE LOGGING;

7
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

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

SQL> show parameter db_name

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
db_name string DB11G

SQL> show parameter db_unique_name

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
db_unique_name string DB11G

Configurar el archivelog para stanby

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGBDPRD,DGSTDBY)';

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=DGSTDBY NOAFFIRM ASYNC


VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGSTDBY';

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGSTDBY,DGBDPRD)';

Configurar el passwordfile

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;

Configurar el envio de spfile a standby

ALTER SYSTEM SET FAL_SERVER=DGSTDBY;


ALTER SYSTEM SET FAL_SERVER=DGBDPRD;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='DGSTDBY', 'DGBDPRD' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='DGSTDBY','DGBDPRD' SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

8
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

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>

Obtener los archivos de parámetros

a. Crear el controlfile y parameterfile para standby

Ejecutar en el servidor principal

ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/dgstdby_stby.ctl';

CREATE PFILE='/tmp/initDGSTDBY_stby.ora' FROM SPFILE;

b. Editar el archivo init creado para standby en paso anterior, quedando de la siguiente manera:

cambiar DGBDPRD por DGSTDBY


agregar db_unique_name=DGSTDBY

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

ORACLE DataGuard 12c FECHA 28/10/2016

*.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'

Crear los archivos Standby Redo Logs


c. Obtenemos el tamaño actual de los archivos la siguiente sentencia:

SQL> SELECT BYTES FROM V$LOG;

d. Creamos los archivos Redo Log Standby del mismo tamaño.

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;

select * from v$Standby_log;

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

ORACLE DataGuard 12c FECHA 28/10/2016

SINCRONIZAR LOS SERVIDORES CON RMAN

Realizar backup de la base primaria utilizando la herramienta de RMAN para ello ejecutar

rman target sys/manager@dgbdprd catalog rman/rman123@rman

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/resprman/respaldos/DGBDPRD/full_%d_%s_%p';


BACKUP DATABASE PLUS ARCHIVELOG;

CONFIGURACION SERVIDOR SECUNDARIO

Crear los directorios


Generar en el servidor secundario los directorios como estan en el servidor primario

mkdir -p /ora102/DGSTDBY/admin
mkdir -p /ora102/DGSTDBY/fra
mkdir –p /ora101/DGSTDBY/oradata/datos

crear los que falten

Archivo de control e init_DGSTDBY.ora


Copiar los archivos de configuración al directorio correspondiente

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

ORACLE DataGuard 12c FECHA 28/10/2016

Listener.ora
Configurar archivo listener con los datos de la base de datos Standby

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = DGSTDBY)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/db_1)
(SID_NAME = DGSTDBY)

Crear spfile en Servidor Secundario


Iniciaremos la bbdd de Standby con el parámetro nomount para cargar el parámetro de configuración pfile y
utilizarlo en esta bbdd y generar un spfile.

export ORACLE_SID=DGSTDBY
sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/tmp/initDGSTDBY.ora';
CREATE SPFILE FROM PFILE=’/tmp/initDB11G_stby.ora';
Shutdown immediate;

Restaurar con RMAN

export ORACLE_SID=DGSTDBY

rman target sys/manager@dgstdby catalog rman/rman123@rman


RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;
exit;

Crear los archivos Standby logfile


export ORACLE_SID=DGSTDBY
sqlplus “/as sysdba”

ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=’MANUAL’;


ALTER DATABASE ADD STANDBY LOGFILE ('/ora102/DGSTDBY/oradata/redo/dgstdby_01.log')
SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE ('/ora102/DGSTDBY/oradata/redo/dgstdby_02.log')
SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE ('/ora102/DGSTDBY/oradata/redo/dgstdby_03.log')
SIZE 52428800;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO' scope=spfile;
exit;

12
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

ACTIVAR DATAGUARD
Iniciaremos la bbdd de standby y listeners antes que la bbdd primaria

Reinicio de servicios

lsnrctl stop
lsnrctl start
lsnrctl status

Levantar BBDD (Standby)


Iniciaremos la instancia de la bbdd de oracle sin montar la misma por ejemplo:

STARTUP NOMOUNT;

Montamos la bbdd en modo standby de la siguiente manera:

ALTER DATABASE MOUNT STANDBY DATABASE;

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:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Para cancelar la operación de recuperación:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DELAY 30 DISCONNECT FROM


SESSION;

13
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

Parada y Arranque de la bbdd

Existe un orden del cual se debe respetar para que no se desincronizen las base de datos primaria y standby,
estos son los pasos:

1. Iniciaremos la bbdd de standby y listeners antes que la bbdd primaria.


2. Pararemos primero la bbdd primaria y luego la de standby.

Posibles errores de archivado:

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:

SQL> alter system set log_archive_dest_2='service=DGSTDBY ARCH SYNC NOAFFIRM


delay=0 OPTIONAL max_failure=0 reopen=300 register';

Si el dataguard esta activado este paso se hace automaticamente:

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:

SQL >archive log start

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

ORACLE DataGuard 12c FECHA 28/10/2016

ANEXO
Checklist
-- base primaria
primaria = DGBDPRD
standby = DGSTDBY

Poner la base principal en modo archivelog


SELECT log_mode FROM v$database;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER DATABASE FORCE LOGGING;

db_name y db_unique_name deben ser iguales

Configurar el archivelog para stanby


ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGBDPRD,DGSTDBY)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=DGSTDBY NOAFFIRM ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGSTDBY';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGSTDBY,DGBDPRD)';

5.5.Configurar el passwordfile

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;

5.6.Configurar el envio de spfile a standby

ALTER SYSTEM SET FAL_SERVER=DGSTDBY;


ALTER SYSTEM SET FAL_SERVER=DGBDPRD;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='DGSTDBY', 'DGBDPRD' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='DGSTDBY','DGBDPRD' SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

5.7.Configurar el tnsname.ora
base primar y standby mismo puerto (1521), probar tnsping

6. Obtener los archivos de parámetros


6.1. Crear el controlfile y parameterfile para standby

Ejecutar en el principal

ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/dgstdby_stby.ctl';


CREATE PFILE='/tmp/initDGSTDBY_stby.ora' FROM SPFILE;

6.2. Cambiar en el archivo de init creado para standby anteriromente


-- cambiar DGBDPRD por DGSTDBY
agregar db_unique_name=DGSTDBY

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

ORACLE DataGuard 12c FECHA 28/10/2016

*.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;

select * from v$Standby_log;

--copiar los archivos generados al servidor STANDBY (ruta temporal)

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;

-- 7. Sincronizados los servidores con RMAN


7.1. Sacar backup de la base primaria
Ejecutar en el principal

rman target sys/manager@dgbdprd catalog rman/rman123@rman


CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/resprman/respaldos/DGBDPRD/full_%d_%s_%p';
BACKUP DATABASE PLUS ARCHIVELOG;

7.2. Crear los directorios como se tiene en el servidor de producción


Ejecutar en el secundario
mkdir -p /ora102/DGSTDBY/admin
mkdir -p /ora102/DGSTDBY/fra

16
ESTÁNDAR CÓDIGO DOC.IMP-002

Configuración de VERSIÓN 1

ORACLE DataGuard 12c FECHA 28/10/2016

mkdir -p /ora102/DGSTDBY/admin/adump
crear los que falten

7.3. Copiar los archivos de configuración de producción a standby

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

*Archivelogs and backups


scp -r oracle@ol5-112-dga1:/u01/app/oracle/fast_recovery_area/DB11G/archivelog
/u01/app/oracle/fast_recovery_area/dbg11_stby
scp -r oracle@ol5-112-dga1:/u01/app/oracle/fast_recovery_area/DB11G/backupset
/u01/app/oracle/fast_recovery_area/dbg11_stby

*Parameter file.
scp oracle@ol5-112-dga1:/tmp/initDB11G_stby.ora /tmp/initDB11G_stby.ora

*Login password file.


scp oracle@ol5-112-dga1:$ORACLE_HOME/dbs/orapwDB11G $ORACLE_HOME/dbs

*Tnsname
scp oracle@ol5-112-dga1:$ORACLE_HOME/network/admin/tnsname.ora $ORACLE_HOME/network/admin/tnsname.ora

7.4. Levantar el listener

lsnrctl reload

7.5. Restaurar el backup en el servidor de standby con el spfile

export ORACLE_SID=DGBDPRD
sqlplus / as sysdba
CREATE SPFILE FROM PFILE=’/tmp/initDB11G_stby.ora';

rman rman target sys/manager@dgstdby catalog rman/rman123@rman


RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;

7.6. Crear los logfile

ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='MANUAL';


ALTER DATABASE ADD STANDBY LOGFILE ('/ora102/DGSTDBY/oradata/redo/dgstdby_01.log') SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE ('/ora102/DGSTDBY/oradata/redo/dgstdby_02.log') SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE ('/ora102/DGSTDBY/oradata/redo/dgstdby_03.log') SIZE 52428800;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO' scope=spfile;

-- Iniciaremos la bbdd de standby y listeners antes que la bbdd primaria

-- 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;

-. Queries validacion replica

DGSTDBY> select sequence#, first_time, next_time from v$archived_log;


select max(sequence#) as "STANDBY", applied from v$archived_log group by applied;
SELECT PERCENT_SPACE_USED, PERCENT_SPACE_RECLAIMABLE FROM V$RECOVERY_AREA_USAGE;
select * from v$recovery_area_usage where file_type='ARCHIVED LOG';

17

También podría gustarte