sábado, 20 de septiembre de 2014

CONFIGURACION DE ORACLE STANDBY DATABASE


En el origen modificamos el archivo tnsnames.ora y agregamos la base de datos destino.  Y en el destino que será standby tambien modificamos el archivo y agregamos la base de datos primaria.


En la base de datos primaria Ejecutamos el siguiente comando para comprobar comunicación
tnsping nombre_dela_base_destino


Nos aseguramos de que los directorios para los datafile existan o los creamos, al igual que las otras rutas necesarias.


En la base de datos Primaria Renombramos el init
cp init.ora init_basededatos.ora


Lo llevamos a la base de datos de standby y una vez que ya esté ahí nos aseguramos de modificarle los siguientes parametros.
pfile o spfile según lo que vayamos a usar y agregamos lo siguiente:


db_unique_name=’baseSTB’
log_archive_format=’nombre_%t_%s.arc
instance_name=’baseSTB’
fal_client      >que exista
fal_server     >que exista
log archive_dest=’ruta de los archives’


y guardamos   


Nos conectamos a la base de datos as sysdba y levantamos la base en nomount
>startup nomount
>exit


Nos conectamos como RMAN
>register database
>exit
Una vez configurado lo anterior, podemos ejecutar los siguientes comandos, en este caso los he puesto en un archivo.sh


rman << EOF
connect target sysusr/usr@dborigen
connect catalog rman/rmanusr@base
connect auxiliary
run{
allocate channel ch1 type ‘sbt_tape’ parms ‘SBT_LIBRARY=/usr/omni/lib/libob2oracle8_64bit.a, ENV=(OB2BARTYPE=Oracle8, OB2APPNAME=baseorigen, OB2BARLIST=hostorigen-ora-baseorige-onl-mar)’;
DUPLICATE TARGET DATABASE FOR STANDBY dorecover NOFILENAMECHECK;
restore archivelog from sequence 54656 until sequence 64778;
release channel ch1;
}
EOF


En dado caso de que falten archvies nos los traemos desde la base de datos primaria.


AHORA, EN LA BASE DE DATOS PRIMARIA
seteamos el siguiente parametro:
Nos conectamos como sysdba
>alter system set los_archive_dest_2=’SERVICE=baseSTB ARCH SYNC NOAFFIRM delay=0 OPTIONAL max_failure=0 register’;


Una vez hecho esto, en el destino hacemos lo siguiente:
SQL> CONNECT / AS SYSDBA
2. Iniciamos la instancia sin montar la base.
SQL> STARTUP NOMOUNT;
3. Montamos la standby database:
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;


Iniciamos la recuperación en managed recovery mode que permitirá la aplicacion automatica de los archived redolog files de la base primaria a la standby. Managed recovery deberá ser iniciado con una sesion disconnect con la siguiente seintaxis:


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;


El siguiente es para un realtime apply, disponible desde versión 10.1
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;


También es posible efectuar un manual recovery (era requerido en 8i standby database)
SQL> RECOVER STANDBY DATABASE;
or
SQL> ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE;


Cancelar el recovery:
En dado caso de querer cancelar el recovery deberemos usar lel siguiente comando:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
O bien para cancelar el recovery manual:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;


LISTO!!! Ya debe estar sincronizada la base de datos y ya debe estar recibiendo los archives que se vayan generando en la base de datos primaria.


Nota importante:
Una situación que a mi se me presentó es que repentinanmente los archives dejaron de generarse en la ruta que especifiqué para los archives, para prevenir esto hacemos lo siguiente:
En nuestra base de datos standby nos conectamos as sysdba
>alter system set standby_archive_dest=’/folder/delos/archive’

No hay comentarios.:

Publicar un comentario