ORACLE DATAGUARD – create a standby database by manual steps

RECUPERAMOS UNA BASE STANDBY SIN DUPLICATE

Para poder hacer una standby de forma manual sin tener que recurrir al duplicate database for standby,
podemos usar la forma tradicional.
Para ello como paso previo vamos a setear los parametros que sean necesarios necesarios.
Una vez que tenemos las configuraciones en forma correcta tomamos un backup y luego generamos un controlfile en la base primaria para la base standby.

run {
allocate channel disk1 device type disk
format '/u03/rman_database_backup/STBYcontrolfile.ctl';
backup current controlfile for standby;
}

Una vez que tenemos el backup tanto con el controlfile standby, pasamos del sitio primario al secundario.

[oracle@sdat0101lx]$ ls
STBYcontrolfile.ctl
JVPAR_t679670423_s345_p1_dbf
JVPAR_t679671275_s347_p1_arc
JVPAR_t679671249_s346_p1_dbf
JVPAR_t679671344_s348_p1_ctl

[oracle@sdat0101lx]$ scp STBYcontrolfile.ctl oracle@nodo1jvarlx:/u03/rman_database_backup/
oracle@nodo1jvarlx's password:
STBYcontrolfile.ctl

Ahora con el backup ya enviado al sitio de contingencia, procedemos a recuperar el controlfile standby mediante el RMAN.

[oracle@nodo1jvarlx bin]$ export ORACLE_SID=JVPARDG
[oracle@nodo1jvarlx bin]$ echo $ORACLE_SID
JVPARDG
[oracle@nodo1jvarlx bin]$ rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Mon Mar 8 17:10:23 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: JVPAR (not mounted)

RMAN> restore standby controlfile from '/u03/rman_database_backup/STBYcontrolfile.ctl';

Starting restore at 08-MAR-10
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK

channel ORA_DISK_1: copied control file copy
output filename=+JVPARDG_DG1/JVPARDG/controlfile/current.285.681066673
Finished restore at 08-MAR-10

Finalizado el restore del standby controlfile, montamos la base, pero de modo standby.

RMAN> sql 'alter database mount standby database';

sql statement: alter database mount standby database
released channel: ORA_DISK_1

Ahora si podemos hacer el restore de todos los datafiles.

RMAN> restore database;

Starting restore at 08-MAR-10
Starting implicit crosscheck backup at 08-MAR-10
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=149 devtype=DISK
Crosschecked 4 objects
Crosschecked 62 objects
Finished implicit crosscheck backup at 08-MAR-10

Starting implicit crosscheck copy at 08-MAR-10
using channel ORA_DISK_1
using channel ORA_DISK_2
Finished implicit crosscheck copy at 08-MAR-10

searching for all files in the recovery area
cataloging files...
no files cataloged

using channel ORA_DISK_1
using channel ORA_DISK_2

channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to +JVPARDG_DG1/JVPARDG/datafile/system.273.662308595
restoring datafile 00002 to +JVPARDG_DG1/JVPARDG/datafile/undotbs1.260.662308537
restoring datafile 00003 to +JVPARDG_DG1/JVPARDG/datafile/sysaux.267.662308539
restoring datafile 00004 to +JVPARDG_DG1/JVPARDG/datafile/users.272.662308667
restoring datafile 00005 to +JVPARDG_DG1/JVPARDG/datafile/undotbs2.270.662308539
restoring datafile 00006 to +JVPARDG_DG1/JVPARDG/datafile/undotbs3.263.662308539
restoring datafile 00007 to +JVPARDG_DG1/JVPARDG/datafile/vm_dat.268.662308639
restoring datafile 00008 to +JVPARDG_DG1/JVPARDG/datafile/vm_idx.266.662308539
restoring datafile 00009 to +JVPARDG_DG1/JVPARDG/datafile/jv_dat.288.662308531
restoring datafile 00010 to +JVPARDG_DG1/JVPARDG/datafile/jv_idx.259.662308535
restoring datafile 00011 to +JVPARDG_DG1/JVPARDG/datafile/undotbs4.269.662308537
channel ORA_DISK_1: reading from backup piece /u03/rman_database_backup/20090309_JVPAR_t681046553_s349_p1_dbf

Finalizado el restore, activamos el modo recovery de la base para verificar que comience con el aplicado de los archivelogs que recibe del sitio primario.

# Iniciar el recovery de la base de datos standby

STDB> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Prodemos verificar que los archives se esten aplicando mediante el siquiente query.

set line 150
col NAME format a60
select NAME, THREAD#, SEQUENCE#, APPLIED, registrar
from v$archived_log
where APPLIED='NO' order by sequence#;

En el caso que tengamos el broker configurado, solo basta con activarlo para que solo comience a realizar su tarea de aplicado.
Si en un paso previo a la activacion del broker habiamos activado el recovery manager, solo nos haria falta deshabilitarlo con las sentencias que estan a continuacion. Luego que se detiene el aplicado podemos activar el parametro dg_broker_start en TRUE y verificamos el correcto aplicado.

# Detener la sincronización de la base de datos standby

STDB> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Seguimos en la rueda, en el proximo articulo vamos a ver como trabajar con dgmgrl.

About Juan Andres
Consultant | Oracle DBA & IT Specialist | LinuxUnix Administrator | Father | Musician | Farmer | Environmentalist | Writer | Builder | Buenos Aires · burzaco.wordpress.com

2 Responses to ORACLE DATAGUARD – create a standby database by manual steps

  1. edgar says:

    Saludos juan andrs , mira en el caso de que yo quiera generar una standby desde una single hacia un rac de tres nodos con ASM como podria hacer ? he estado investigando a ver cual seria el procedimeinto en ese escenario

    • Juan Andres says:

      Estimado, es el mismo procedieminto de siempre. Por ejemplo, si tenemos un rac primario con 5 nodos y otro secundario con 4 nodos, en el sitio primario se bajan todos dejando solo el primero y en el secundario se bajan todos menos el priemero. Se arma el dataguard y ahi se leantan todas las instancias. En el sitio primario en modo OPEN y en el secundario en modo MOUNT. En tu caso puntual, en el sitio donde tienes tres nodos, bajas dos dejando el nodo 1. Con ese nodo 1 y tu sitio single armas el DATAGUARD, una vez finalizado todo levantas los nodos restantes. y ahi tienes tu dataguard, en la primaria con RAC y tres nodos y una standby single o al reves. Como te guste. Esto te lo confirmo basado en la experiencia de haberlo hecho para un compañia financiera. Saludos Cordiales ! Andres

%d bloggers like this: