Beruflich Dokumente
Kultur Dokumente
Gerencia de Tecnologa
Direccin de Tecnologa Informtica
RMAN
CONCEPTOS GENERALES______________________________________________3
Instalacin_____________________________________________________________3
COMANDO RMAN______________________________________________________4
Parmetros de la base target_______________________________________________5
Sentencia_________________________________________________________________________6
Backup de 1 Datafile_______________________________________________________________7
Backup de Tablespaces______________________________________________________________8
Backup del controlfile______________________________________________________________8
Backup de Archives________________________________________________________________9
Full Backup_______________________________________________________________________9
Backup Incrementales______________________________________________________________9
Script actual de BNPAIS:___________________________________________________________10
Monitoreo de Jobs de Rman__________________________________________________13
Indentificacin de sesiones de rman__________________________________________________13
Progreso de un job________________________________________________________________13
RESTORE____________________________________________________________14
Restore datafile_____________________________________________________________14
Restore Tablespace________________________________________________________________14
Restore Full Database______________________________________________________________15
Restore Full Database______________________________________________________________15
Restore Full Database until time o until SCN___________________________________________15
Restore Controlfile con varias bases con el mismo nombre________________________________16
Monitoreo de Procesos_____________________________________________________________16
Mantenimiento del Repositorio____________________________________________17
Registrar un base___________________________________________________________17
Desregistrar un base_________________________________________________________17
Reseteo del Catlogo________________________________________________________18
Reseteo del catlogo a una incarnation anterior_________________________________________18
Reseteo del catlogo luego de un recovery incompleto____________________________________18
Cambio de disponibilidad de un backup o una copia_____________________________________19
Chequeo cruzado del Repositorio______________________________________________19
Borrado de Backups y copias actualizando el estado en el Repositorio________________20
Borrado fsico de backups o copias y borrado del repositorio_______________________________20
Borrado de registros de backups expirados del catlogo___________________________________21
Borrado de registros de image copy y archive redo log sin borrado fsico_____________________21
CONCEPTOS GENERALES
Backup Set:
Es un objeto lgico que contiene por lo menos un backup piece que constituye un
backup.
Backup piece:
Es uno o ms archivos fsicos que estn almacenados bajo un formato especial de
rman. Los archivos fsicos no se pueden dividir en diferentes backup pieces. Cada
backup piece es un archivo. El tamao de los Backup pieces debe restingirse al
tamao mximo de archivo permitido por el SO.
Image Copy:
Es una copia de un archivo fsico (datafile, archivelog o controlfile).
Rman comprime durante el backup, es decir que no graba los bloques que nunca
fueron usados. Solo las imgenes de un datafile contienen todos sus bloques.
Los bloques de datos en un datafile se agrupan en buffers. Cuando Rman encuentra
un bloque usado lo graba en el backup set. Cuando Rman encuentra cuatro bloques
contiguos no usados, graba un bloque comprimido (del tamao de BD_BLOCK_SIZE)
en el backup set.
Instalacin
1. Crear Base Rcat (base donde est el catalog). El catlogo requiere aprox. system
50Mb, temp 5mb, 10 mb de recovery catalog y 5 Mb de rollback segments.
2. Crear un tablespace donde va a ir el catlogo.
3. Crear Esquema o Usuario:
Create user rman identified rman default tablespace xxxx
COMANDO RMAN
connect target
BACKUPS
-0 Database
-1 Tablespaces
-2 Datafiles
-3 Archived redo log
-4 Control file (actual o una imagen)
Dentro de la poltica de backup, hay que realizar con el S.O. backup de los
archivos de initializacin (inits y configs), de passwords, de configuracin network
y los Lobs externos.
Sentencia
Si a un backup no se le pone el format lo graba en $ORACLE_HOME/dbs
Full copia todos los bloques en un backup set, salteando los bloques que
nunca fueron usados.
Incremental level (nro) copia slo los bloques que fueron modificados desde el
ltimo incremental n, donde n es un nmero entero entre 0 y 4. Este tipo de
backups es un backup diferencial.
Si se utiliza un incremental deber especificar: datafile, datafilecopy, tablespace o
database. No se puede realizar un incremental de los controlfiles, redo.
Parms ??
Nochecksum
Check logical
Filesperset Nro define el mximo nmero de archivos por backup set. El valor
por default es 64, nmero de archivos/nmero de canales. Ver parmetro setsize.
Format
channel define el canal que va a utilizar cuando crea el backup set. (ch1). Sino
se especifica rman los asigna dinmicamente.
Tag tag_name define una etiqueta para el backup set. Por ej: semanal,
lunes,etc.
Setsize integer define el tamao mximo para un backup set en K. Para limitar
un backup set a 2M hay que especificar setsize=2000.
Backupspec
Lista de objetos que van a ser respaldados.
Datafile si pone el 1 adems resguarda el controlfile.
Datafile copy realiza una image copy de los datafiles especificados.
Tablespace
Database
Current controlfile
Controlfile copy 'filename'
Delete input borra los archivos de entrada despus de la creacin deb
backup set. Se utiliza para los archive.
Backup de 1 Datafile
Script:
replace script data1_bkp {
allocate channel ch1 type disk;
backup
datafile 1, 2, 3, 4
filesperset = 5
format '/u08/Ora_bkp/%c_%p_%s.%d';
}
Otro ejemplo:
replace script data2_bkp {
allocate channel ch1 type disk;
backup
(datafile 5, 6, 7, 8
filesperset = 4)
datafilecopy '/u08/Ora_bkp/data_c2.f';
}
Backup de Tablespaces
Script:
replace script tbs_bkp{
allocate channel ch1 type disk;
allocate channel ch2 type disk;
allocate channel ch3 type disk;
allocate channel ch4 type disk;
backup filesperset = 10
tablespace rbs, data01
include current controlfile
format '/u08/Ora_bkp /%c_%p_%s.%d';
}
Puede realizar un backup del controlfile con la base est abierta o cerrada. Rman
usa
un snapshot controlfile.
Script:
Run {
Allocate channel ch1 type disk;
Backup current controlfile
Tag = 'Lunes_ctrl_file';
}
Backup de Archives
Script:
Run {
Allocate channel ch1 type disk;
Backup archivelog all
Delete input;
}
Full Backup
Script:
replace script full_bkp{
allocate channel ch1 type disk;
allocate channel ch2 type disk;
allocate channel ch3 type disk;
allocate channel ch4 type disk;
backup
FULL
format '/u08/Ora_bkp/%c_%p_%s.%d'
DATABASE;
sql 'ALTER SYSTEM ARCHIVE LOG ALL';
backup archivelog all;
}
Backup Incrementales
Para poder aplicar un incremental 1 debo realizar previamente un incremental 0,
el backup full no sirve. Hay dos tipos de backups incrementales: diferencial y
acumulativo. Un backup diferencial resguarda todos los bloques modificados
desde el backup mas reciente del mismo nivel o inferior. Un backup incremental
acumulativo resguarda todos los bloques modificados desde el ms reciente
backup del nivel n-1 o inferior.
Backup Incremental 0
Script:
replace script inc0_bkp{
allocate channel ch1 type disk;
allocate channel ch2 type disk;
allocate channel ch3 type disk;
allocate channel ch4 type disk;
backup
INCREMENTAL LEVEL=0
format '/u08/Ora_bkp/%c_%p_%s.%d'
DATABASE;
sql 'ALTER SYSTEM ARCHIVE LOG ALL';
backup archivelog all;
}
format '/bck05/oradata/BNPAIS/%c_%p_%s.%d';
change archivelog all validate; - Actualizacin de archives-
resync catalog;
backup
INCREMENTAL LEVEL = 0
tag = 'FULL0'
(DATABASE
filesperset = 20 );
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
backup archivelog all;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
release channel ch5;
}
Backup Incremental 1
Backup Incremental 2
format '/bck04/oradata/BNPAIS/%c_%p_%s.%d';
allocate channel ch5 type disk
format '/bck05/oradata/BNPAIS/%c_%p_%s.%d';
change archivelog all validate;
resync catalog;
backup
INCREMENTAL LEVEL = 2
tag = 'INC2'
(DATABASE
filesperset = 20 );
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
backup archivelog all;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
release channel ch5;
}
SELECT sid, spid, client_info FROM v$process p, v$session s WHERE p.addr = s.paddr AND
client_info LIKE '%id=rman%';
Progreso de un job
RESTORE
Luego de un restore full si se resetea los logs para que el Catalog la vea hay que
resetear la base desde el Rman con el siguiente comando: reset batabase;
Restore datafile
-5 Borrado de datafile
-6 Shutdown abort
-7 Start up con error
-8 Shutdown
run {
startup nomount;
allocate channel ch1 type disk;
restore datafile '/u01/oradata/BSBASPE/RATING_DATA_01.dbf';
alter database mount;
recover datafile '/u01/oradata/BSBASPE/RATING_DATA_01.dbf';
alter database open;
}
Nota: exige que se realice el restore con base nomount y el recover con database
mount, excepto que se coloque off line el tablespace o el datafile.
Restore Tablespace
Script:
run {allocate channel ch1 type disk;
sql "alter tablespace rating_data offline immediate";
restore datafile '/u01/oradata/BSBASPE/RATING_DATA_01.dbf';
recover tablespace RATING_DATA;
sql "alter tablespace rating_data online";
}
Script:
run {
starup nomount
allocate channel ch1 type disk;
allocate channel ch2 type disk;
allocate channel ch3 type disk;
allocate channel ch4 type disk;
restore controlfile;
restore database;
alter database mount;
recover database;
alter database open resetlogs;
}
Dio error luego de montarla. Salimos del Rman , volvimos a entrar y luego se corri
este script.
run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
allocate channel ch3 type disk;
allocate channel ch4 type disk;
recover database;
alter database open resetlogs;
}
Por ejemplo:
Run {
Set until time 'Nov 15 2001 09:0000';
Allocate channel ch1 type disk;
Restore database;
Recover database;
Alter database open resetlogs;
}
Para realizarlo hasta un SCN se debe colocar lo siguiente: Set until SCN 1000
Para realizarlo hasta un log sequence: set until logseq 6 thread 1
Monitoreo de Procesos
Registrar un base
Para registrar una base, la base que desea registrar debe estar montada o abierta.
Pasos:
-0 Conectarse al catlogo y a la base desde rman
Rman target / catalog rman/rman@RCAT
Register database;
Desregistrar un base
Para desregistrar una base, la base que desea registrar debe estar montada o
abierta.
Pasos:
1. Conectarse a la base targetdesde rman
Rman target / nocatalog
List backup;
5. Use Sqlplus para conectarse al catalogo y ejecute el query con el Id del primer
paso.
6. Ejecute el comando para borrar la registracin con los datos obtenidos en el paso
anterior.
Run {
Allocate channel ch1 type disk;
Restore database;
Recover database;
Alter database open resetlogs;
}
4. Release channel
Release channel;
4. Release el canal
Release channel;
Borrado de registros de image copy y archive redo log sin borrado fsico
3. Release channel
Release channel;
Una validacin del restore, realiza corre un test del restore de los archivos, es decir
que valida que el restore funcione.
Para recuperar la base que contiene el catlogo hay que considerar lo siguiente:
-0 Crear una base con el backup previo de la base del catlogo.
-1 Puede querer poner el catlogo en otra base. En esa base debe crear un usuario
y darle el privilegio recovery_catalog_owner. Luego debe importar los datos de
un export previo del catlogo en el esquema del nuevo usuario.
-2 Puede crear una base nueva e importar los datos.
-3 Cuando se recupern el catlogo se debe realizar una resincronizacin del
catlogo con el controlfile de la base target.
-4 Durante el resync, Recovery Manager puede agregar registros de archivos que ya
no existan porque los archivos que cataloga no son verificados. Borre dichos
archivos con el comando change . Uncatalog.
Manejo de Scripts
Creacin
1. Ingrese a Rman connectado a la base del catlogo.
Rman catalog rman/rman@RCAT
2. Crear el script
Create script xxx {
Allocate channel ch1 type disk;
Allocata channel ch2 type disk;
Backup database;
};
Ejecucin
1. Ingrese a Rman connectado a la base del catlogo.
Rman catalog rman/rman@RCAT
2. Corra el run
Run [ execute script xxxx ; }
Actualizacin de un script
1. Ingrese a Rman connectado a la base del catlogo.
Rman catalog rman/rman@RCAT
2. Corra el replace
Replace script xxxx {
Allocate channel ch1 type disk;
Backup database;
}
Borrado de un script
delete script xxx;
Impresin de un script
print script xxx;
backup, copy, crosscheck (8i), delete expired backupset (8i), duplicate (8i), list,
recover, report, restore and switch.
Cuando resincronizar
Resincronizacin full:
Generacin de Reportes
List backup; Lista los backup sets, backup pieces o proxy copies
Para generar una lista de los backups e imgenes restringido por objeto:
3. Utilice need backup para identificar que archivos necesitan un backup. Por
ejemplo:
Report need backup days=7;
Report need backup days=30 tablespace system;
Report need backup days=14 datafile '/oracle/dbs/tbs_5.f';
3. Utilice obsolete para identificar que archivos que no se necesitan para un recover.
Por ejemplo:
Report obsolete redundancy = 2; lista backups que tienen 2 por lo menos 2
copias mas recientes.
4. Usar el until para chequear los backups obsoletos anteriores a una fecha, SCN o
secuencia de log determinada.
5. Utilice la opcin orphan para listar los backups o copias que no se pueden usar
debido a que pertenecen a otra incarnation.
Report obsolete orphan;
2. Utilice la opcin unrecoberable para detectar los datafiles que realizaron una
opcin irrecuperable contra un objeto del datafile desde el ltimo backup.
Report unrecoverable database;
2. Liste el esquema:
Report schema;
Report schema until time 'sysdate-14';
Report schema until scn 1000;
Report schema until logseq 10;
List backup;
Vistas
Conectarse con Sqlplus con usuario rman.
Vistas:
-0 rc_database
-1 rc_database_incarnation
-2 rc_tablespace
-3 rc_datafile
-4 rc_stored_script
-5 rc_stored_script_line
-6 Rc_backup_controlfile
Autor: : Paula Sajoux Confidencial de la Versin : 1.0
Compaa
Organizacin : TP Estado : Parcial
Doc-ID : Fecha emisin : 15/10/02
Tipo : Pgina 30 de 33
Documento
Documento sobre Rman
Gerencia de Tecnologa
Direccin de Tecnologa Informtica
-7 Rc_backup_datafile
-8 Rc_backup_piece
-9 Rc_backup_set
-10 Rc_redo_log
-11 Rc_redo_thread
Otros comandos
SET_RUN_OPTIONS
UNTIL clause
Setea un SCN, log sequence o fecha hasta la cual se quiere realizar un recovery.
DUPLEX ON/OFF/integer
Especifica si se debe duplicar el backup. Define la cantidad de veces que se debe copiar cada backup
piece.
COMMAND ID TO 'string' ch
Define que sesin del servidor corresponde a cada canal para poderlo controlar con v$session y
v$process.
Por ejemplo:
SELECT sid, spid, client_info FROM v$process p, v$session s
WHERE p.addr = s.paddr AND client_info LIKE '%id=rman%';
AUTOLOCATE ON/OFF
Troubleshooting Rman
Mensajes de Errores
Rango Causa
9000.9999Command line interpreter
9000.10000Keyword analyzer
9000.10001Syntax analyser
9000.10002Main Layer
9000.10003Services Layer
9000.10004Compilation of restore or recover command
9000.10005Compilation of duplicate command
9000.10006General Compilation
90017000-7999 General execution
9001.9999PL/SQL programs
9001.10000Low-level keyword analyser
900210000-10999 Server-side execution
11000-11999 Interphase errors between PL/SQL and Rman
20000-20999 Recovery catalog packages
Escenarios
Diagnstico:
Esto ocurre cuando se borraron los archived log con comandos del sistema
operativo, y Rman desconoce esto. Rman intenta resguardar un log que ya no
est.
Solucin:
La solucin ms sencilla es especificar al realizar el backup que borre los logs
luego del mismo con el siguiente comando:
Si el parmetro compatible est seteado con 8.1.5 o ms bajo, solo marca los
registros del catlogo con el estado delete. Si el parmetro compatible est
seteado con 8.1.6 o ms alto, borra los registros del repositorio.