Tuesday, June 10, 2014

ORACLE 11G R2: COMO HACER RESTORE RMAN DE BBDD RAC

Para restaurar la BBDD almacenada dentro en ASM, recuperamos tanto los controlfiles como los datafiles de la BBDD. En su momento, cuando creamos la BBDD RAC, tanto los datafiles como los controlfiles los creamos en el diskgroup de asm +DATA

1.- Paramos la BBDD
    srvctl stop database -d ORCL
    Arrancamos una instancia en modo nomount
    sql> startup nomount;

2.- Restaurar desde rman un controlfile (nos restaura solo un controlfile)

rman target=/ catalog=rman/temporal@rmandb
rman >run {
           2> allocate channel c1 device type 'SBT_TAPE';
           3> send 'NB_ORA_CLIENT=Host1, NB_ORA_SCHED=Backup.ORCL.BBDD.Int.offline.RMAN';
           4> restore controlfile to '+DATA';
           5> release channel c1;
           6> }
           7> exit;

3.- Multiplexar los controlfiles (para que coincida con el numero de controlfiles especificado en el fichero spfile).
Miramos desde asmcmd el nombre del fichero controlfile restaurado en +DATA
ASMCMD> cd +data/orcl/controlfile
ASMCMD> ls
current.259.729258021

rman nocatalog
rman > connect target

connected to target database: ORCL (DBID=3671654340)
using target database control file instead of recovery catalog

rman > restore controlfile from ‘+data/orcl/controlfile/current.259.729258021’;
rman > exit;

si volvemos a asmcmd veremos que nos ha generado los dos controlfile que nos faltan para asi tener un total de 3 que son los que teniamos especificados en el fichero spfile
ASMCMD> cd +data/orcl/controlfile
ASMCMD> ls
current.259.729258021
        current.273.729258023
        current.274.729258021

4.- Restaurar la BBDD.
rman target=/ catalog=rman/temporal@rmandb
rman >run {
                   2> allocate channel c1 device type 'SBT_TAPE';
                   3> send 'NB_ORA_CLIENT=Host1, NB_ORA_SCHED=Backup.ORCL.BBDD.Int.offline.RMAN';
                   4> sql ‘alter database mount’;
                   5> restore database;
                   6> recover database;
                   7> sql 'alter database open resetlogs';
                   8> release channel c1;
                   9> }
5.- Parada de la instancia arrancada y arranque de la base de datos (todas las instancias del cluster)
Sql> shutdown immediate
$ srvctl start database –d ORCL

ORACLE 11G R2: SCRIPT BACKUP EN FRIO DE BBDD RAC (Backup cold)


Este script es para realizar un backup en frio mediante RMAN de una BBDD en modo RAC. La BBDD se llama ORCL y contiene dos instancias llamadas ORCL1 y ORCL2. La base de datos de RMAN se llama RMANDB.

El script que generaremos y lo lanzaran desde Netbackup  cuando toque en la planificación lo llamaremos /home/Oracle/scripts/rman/cold_ORCL.sh. El contenido es


LOGFILE=/home/oracle/scripts/rman/logs/out_backup_cold.log
DATE=`date '+%d%m%y'`
export DATE

# DETENEMOS LA BASE DE DATOS
echo Intentando detener la consola >>$LOGFILE
emctl stop dbconsole
echo Intentando parar la base de datos completa  >>$LOGFILE
srvctl stop database -d ORCL  >>$LOGFILE
echo Se ha parado la base de datos >>$LOGFILE

# Abrimos en modo mount (*SOLO* esta instancia)
echo Intentando levantar instancia local en modo MOUNT >>$LOGFILE
srvctl start instance -i ORCL1 -d ORCL -o mount >>$LOGFILE

echo Instancia montada >>$LOGFILE

# Lanzamos el backup
echo Lanzando backup >>$LOGFILE
Las tres lineas siguientes, son solo una linea de ejecución
$ORACLE_HOME/bin/rman target / catalog rman/password@rmandb CMDFILE=/home/oracle/scripts/rman/cold_ORCL_nbu.rcv LOG=/home/oracle/scripts/rman/logs/cold_ORCL_${DATE}.log

# Derribamos la instancia *local*
echo Derribando instancia local >>$LOGFILE
srvctl stop instance -i ORCL1  -d ORCL  -o immediate >>$LOGFILE
echo Instancia ORCL1 parada >>$LOGFILE

# Volvemos a levantar todo
echo Levantando el cluster >>$LOGFILE
srvctl start database -d ORCL >>$LOGFILE
echo La bd del cluster esta levantada >>$LOGFILE
echo Levantando la consola >> $LOGFILE
emctl start dbconsole


El contenido del script rcv, lanzado en el backup es

run {

# Total de das que mantenemos las copias de seguridad en el medio fsico
configure retention policy to recovery window of 30 days;

# Establecemos el canal de copias de seguridad;
Estos datos os los tienen que suministrar los que se encargan del software del backup
allocate channel c1 device type 'SBT_TAPE';
send 'NB_ORA_CLIENT=Host1, NB_ORA_SCHED=Backup.ORCL.BBDD.Int.offline.RMAN';

# Hacemos un backup completo
backup database include current controlfile;

# Backup del spfile
backup spfile;

sql 'alter database open';

sql 'alter database backup controlfile to trace';
sql 'create pfile from spfile';

# Liberamos el canal
release channel c1;
}


ORACLE 11g R2: RMAN y NetBackup

If you realize the backups using Netbackup, then so that you could be execute from RMAN, in spite of having the client installed in the host where from you will proceed to execute RMAN, it is not sufficient. You need to link to library of the client Netbackup with this command

ln -sf /usr/openv/netbackup/bin/libobk.so64 $ORACLE_HOME/lib/libobk.so

This is valid for all the oracle versions. But also, specially for the version Oracle 11G, it is necessary to install a patch in Netbackup

NB_6.5.5_ET1940073_1_347227.zip

As soon as the client NetBackup was installed, linked the Oracle library and installed the NetBackup patch we can already proceed to realize backups of Oracle using  RMAN.