martes, 17 de marzo de 2009

Pasos para generar una standby database

Pasos para generar una standby database.

BD PRIMARIA
1.- Verificar que este en archived log.
Enable Forced Logging
SQL> ALTER DATABASE FORCE LOGGING;
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u07/ordm030/oraarch
Oldest online log sequence 31
Next log sequence to archive 33
Current log sequence 33

2.- Crear un pfile para la standby.
NOTA: Antes se debe verificar que la BD este trabajando con SPFILE.
SQL> create pfile=’/u01/standby.ora’ from spfile;
Pasar el pfile que se genero al HOST donde va a vivir el dataguard.

3.- Modificar parametros en archivo de dataguard.
Cambiar los siguientes paramentros en el archivo PFILE en el host del dataguard /u01/standby.ora con un editor ejemplo “vi” con los valores que le correspondan.
#CAMBIOS PARA STANDBY
*.log_archive_dest_1='LOCATION=/u07/oracle/oraarch'
*.log_archive_format='fcrdm004_%t_%s.arc'
*.standby_archive_dest='/u07/oracle/oraarch'
*.remote_archive_enable = TRUE
*.standby_file_management=manual
*.log_archive_start=TRUE

NOTA: EN CASO DE QUE LAS RUTAS SEAN DIFERENTES TAMBIEN TENEMOS QUE MODIFICAR LAS RUTAS DE LOS ARCHIVOS COMO UDUMP,CDUMP,BDUMP,Archives, etc.
4.- Levantar la BD standby en modo nomount.
Antes verificar variables de ambiente
SQL> startup pfile=’/u01/standby.ora’ nomount;
Agregar entrada en el tnsnames de la BD productiva.
Configurar listener en BD standby en el server alterno.
5.- En la BD productiva
Agregar entrada en el tnsnames de la BD standby con el alias de standby. Y probar conexión Tnsping.
Y hacer los siguientes cambios en los parametros.
*.log_archive_dest_1='LOCATION=/u01/ordm004/oraarch'
*.log_archive_format='fcrdm004_%t_%s.arc'
*.log_archive_dest_2= ‘SERVICE=standby DELAY=720' SCOPE=BOTH;
*.log_archive_dest_state_1=ENABLE
*.log_archive_dest_state_2=ENABLE
*.log_archive_start=TRUE

Para poder hacer estas modificaciones la BD tiene que estar corriendo con el SPFILE y se hacen con el comando alter system set desde SQL.El delay es el tiempo en minutos de debaran pasar para aplicar el archivo archive.
6.- Respaldar BD productiva.
Antes de hacer el respaldo se debe verificar que la BD este registradae en el catalog. Y que tenga la entrada en el tnsnames de la BD de rman.
oracle@rp7410-fcret1n2> /u01/oracle/product/9.2.0/bin/rman target / CATALOG rman/rman@fcogridc
run
{
allocate channel ch01 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
allocate channel ch02 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
allocate channel ch03 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
allocate channel ch04 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
allocate channel ch05 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
allocate channel ch06 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
allocate channel ch07 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
allocate channel ch08 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=fconwbck.femcom.net,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/oracle/product/9
.2.0/lib/libobk.sl';
backup incremental level 0 database
include current controlfile for standby;
sql "alter system archive log current";
backup archivelog all format 'fcrdm030_%t_%s.arc' delete input;
release channel ch01;
release channel ch02;
release channel ch03;
release channel ch04;
release channel ch05;
release channel ch06;
release channel ch07;
release channel ch08;
}


Nota: se debe incluir la sentencia include current controlfile for standby;
Para poder hacer el restore desde rman.Tambien se deberan cambiar

7.- Restaurar la BD en el HOST del DataGuard.
En el host del Datagurd correr el comando de rman que va a duplicar y activar la standby.
NOTA:La BD standby debera estar montada y debe de ser conectada como auxiliar en RMAN.
rman target sys/dba2f3mc0@FCRDM030 CATALOG rman/rman@fcogridc auxiliary / trace /home/ordm007/duplicate_FCRDM007.log
run
{
allocate auxiliary channel ch01 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
allocate auxiliary channel ch02 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
allocate auxiliary channel ch03 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
allocate auxiliary channel ch04 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
allocate auxiliary channel ch05 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
allocate auxiliary channel ch06 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
allocate auxiliary channel ch07 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
allocate auxiliary channel ch08 type 'SBT_TAPE'
parms 'ENV=(NSR_SERVER=10.80.8.172,NSR_CLIENT=10.80.1.145,NSR_DATA_VOLUME_POOL=POOL ORACLE FCRDM030 SEMANAL),SBT_LIBRARY=/u01/ordmprd/product/9
.2.0/lib/libobk.so';
duplicate target database for standby NOFILENAMECHECK
dorecover;
release channel ch01;
release channel ch02;
release channel ch03;
release channel ch04;
release channel ch05;
release channel ch06;
release channel ch07;
release channel ch08;
}

8.- VERIFICAR QUE LOS ARCHIVES SE ESCRIBAN EN LA BD DATAGUARD.
Checar en el alert log de la BD productiva para la vlidar que los este mandando par al bd standby asi como en el filesystem de host de la standby.
Y en la vista v$archived_log


Procedimiento para activar y desactivar el standby database de México.
1.- Para cancel el proceso de recuperación y dar de baja la BD.
Con el usuario ORDM007 (ya tiene cargadas las variables de ambiente en el .profile)
ordm007@rx8640-fcrdmdb2 > sqlplus /nolog
SQL> conn /as sysdba
SQL> recover managed standby database cancel;
Para bajar la Base de Datos.
SQL> shutdown immediate;
2.- Arrancar la BD standby
Con el usuario ORDM007 (ya tiene cargadas las variables de ambiente en el .profile)
ordm007@rx8640-fcrdmdb2 > sqlplus /nolog
SQL> conn /as sysdba
SQL> startup nomunt;
SQL> alter database mount standby database;

3.- Para activar el proceso de recuperación.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
4.- Para abrir la BD en modo de solo lectura
Con el usuario ORDM007 (ya tiene cargadas las variables de ambiente en el .profile)
ordm007@rx8640-fcrdmdb2 > sqlplus /nolog
SQL> conn /as sysdba
SQL> recover managed standby database cancel;
SQL> alter database open read only;

5.- Para activar la BD standby
Con el usuario ORDM007 (ya tiene cargadas las variables de ambiente en el .profile)
ordm007@rx8640-fcrdmdb2 > sqlplus /nolog
SQL> conn /as sysdba
SQL> recover managed standby database cancel;
SQL> alter database open read only; SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;

Nota: Este comando se solo y unicamente si la BD primaria esta perdida ya que esto implica volver a sincronizar las BD’s.

Procedimiento para apagar y prender una BD Oracle
Levanatr BD
Con el usuario ORDM007 (ya tiene cargadas las variables de ambiente en el .profile)
ordm007@rx8640-fcrdmdb2 > sqlplus /nolog
SQL> conn /as sysdba
SQL> startup
ordm007@rx8640-fcrdmdb2 > lsnrctl start

Bajar BD
Con el usuario ORDM007 (ya tiene cargadas las variables de ambiente en el .profile)
ordm007@rx8640-fcrdmdb2 > sqlplus /nolog
SQL> conn /as sysdba
SQL> shutdown immediate
ordm007@rx8640-fcrdmdb2 > lsnrctl stop

PARA CAMBIAR EL DELAY DE LA APLICACIÓN DE LOS ARCHIVES.ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=standby DELAY=720' SCOPE=BOTH; Donde 720 son los minutos que la BD standby tendra que esperar despues de que se genero y de que recibio el archivo antes de aplicar los archives.

No hay comentarios:

Publicar un comentario