Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
UYOUG 2010 - RMAN sin misterios
1. RMAN sin misterios
Ing. Nelson Calero, OCP
nelson.calero@logos.com.uy
1
7 junio 2010
2. Agenda
• Uso simple
• Conceptos
• Pasos para comenzar
• Troubleshooting
• Optimización
• Ejemplos
2
3. ¿ Que es RMAN ?
• utilitario de Oracle para manejar backup/recovery y su
historia
• interfaz CLI y GUI
• existe desde Oracle 8 – 1997
• instalado junto con la base, en $ORACLE_HOME/bin
• es pro*C ejecutando PL/SQL
• bugs en distintas versiones: 1359
• Known RMAN Performance Problems [ID 247611.1]
- 32 bugs, corregidos todos en 11g (algunos antes)
3
5. ¿best practices de b&r?
Algunas.
Productos relacionados con
Backup & recovery:
– datapump
– flashback
– secure backup
5
6. respaldo con rman
Diferencias entre respaldo RMAN y
manual (user-managed) :
– rman fija las reglas, pero es flexible
– rman requiere menos instrumentación
– rman provee más funcionalidades
6
7. respaldo sin rman
• consistente (frío):
cp path/* dest-bkp
• inconsistente (caliente) :
Alter tablespace nnn begin backup;
cp path/datafile.dbf destbkp
Alter tablespace nnn end backup;
7
8. respaldo con rman
• consistente (frío):
rman target /
startup mount;
backup database plus archivelog;
• Inconsistente (caliente) :
rman target /
backup database plus archivelog;
8
9. respaldo con rman
Si usamos XE:
$ORACLE_HOME/config/scripts/
• backup.sh
• restore.sh
9
10. ¿ realmente es tan fácil ?
oracle@oraculo:~/app/oracle/product/10.2.0/server/config/scripts> ./backup.sh
Warning: Log archiving (ARCHIVELOG mode) is currently disabled. If
you restore the database from this backup, any transactions that take
place between this backup and the next backup will be lost. It is
recommended that you enable ARCHIVELOG mode before proceeding so
that all transactions can be recovered upon restore. See the section
'Enabling ARCHIVELOG Mode...' in the online help for instructions.
Backup with log archiving disabled will shut down and restart the
database. Are you sure [Y/N]?
10
11. ¿realmente es tan fácil?
oracle@oraculo:~/app/oracle/product/10.2.0/server/config/scripts> ./backup.sh
Warning: Log archiving (ARCHIVELOG mode) is currently disabled. If
you restore the database from this backup, any transactions that take
place between this backup and the next backup will be lost. It is
recommended that you enable ARCHIVELOG mode before proceeding so
that all transactions can be recovered upon restore. See the section
'Enabling ARCHIVELOG Mode...' in the online help for instructions.
Backup with log archiving disabled will shut down and restart the
database. Are you sure [Y/N]? y
Backup in progress...
==================== ERROR =========================
Backup of the database failed
==================== ERROR =========================
RMAN error: See log for details.
Log file is at /usr/lib/oracle/xe/oxe_backup_current.log.
Press ENTER key to exit
11
12. ¿ realmente es tan fácil ?
oracle@oraculo:~/app/oracle/product/10.2.0/server/config/scripts> ./backup.sh
Warning: Log archiving (ARCHIVELOG mode) is currently disabled. If
you restore the database from this backup, any transactions that take
place between this backup and the next backup will be lost. It is
recommended that you enable ARCHIVELOG mode before proceeding so
that all transactions can be recovered upon restore. See the section
'Enabling ARCHIVELOG Mode...' in the online help for instructions.
Backup with log archiving disabled will shut down and restart the
database. Are you sure [Y/N]? y
Backup in progress...
Backup of the database succeeded.
Log file is at /usr/lib/oracle/xe/oxe_backup_current.log.
Press ENTER key to exit
12
13. manual vs RMAN
• Cuanto ocupa el respaldo generado por RMAN ?
oracle@oraculo:~> du -hs oradata/XE
1.5G .oradata/XE
oracle@oraculo:~> ls -lrt
/usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/backupset/2010_06_03/
total 1176688
-rw-r----- 1 oracle dba 1203748864 2010-06-03 00:57
o1_mf_nnndf_TAG20100603T005534_60g9xpkz_.bkp
13
14. manual vs RMAN
• Cuanto ocupa el respaldo generado por RMAN ?
=> RMAN no respalda temp, redo logs, ni bloques libres !
01:41:16 XE>select sum(bytes)/1024/1024 mb from
dba_free_space;
MB
----------
135.8125
1.5G datafiles
1.1G rman
14
15. manual vs RMAN
Puede ocupar menos si es comprimido
• Dos formas:
– Backup as compressed backupset ...
– CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED
BACKUPSET;
-rw-r----- 1 oracle dba 1203986432 2010-06-03 01:31
o1_mf_nnndf_TAG20100603T013020_60gcywnl_.bkp
-rw-r----- 1 oracle dba 235642880 2010-06-03 01:38
o1_mf_nnndf_TAG20100603T013720_60gdd066_.bkp
Pasó de 1.1G a 200M (a costo de más CPU) 15
16. manual vs RMAN
Cuidado con XE : backup.sh no genera comprimido:
rman target /
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET;
exit;
./backup.sh
rman target /
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;
exit
./backup.sh
ls -lrt /usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/backupset/2010_06_03/
-rw-r----- 1 oracle dba 1203748864 2010-06-03 00:57
o1_mf_nnndf_TAG20100603T005534_60g9xpkz_.bkp
-rw-r----- 1 oracle dba 1203986432 2010-06-03 01:31
o1_mf_nnndf_TAG20100603T013020_60gcywnl_.bkp
16
17. manual vs RMAN
Extracto de backup.sh:
echo "Backup in progress..."
rman target / >> $rman_backup << EOF
set echo on;
shutdown immediate;
startup mount;
configure retention policy to redundancy 2;
configure controlfile autobackup format for device type disk clear;
configure controlfile autobackup on;
sql "create pfile=''$rman_spfile2init'' from spfile";
backup as backupset device type disk database;
configure controlfile autobackup off;
alter database open;
delete noprompt obsolete;
EOF
17
18. manual vs RMAN
Para que comprima, backup.sh debe modificarse:
echo "Backup in progress..."
rman target / >> $rman_backup << EOF
set echo on;
shutdown immediate;
startup mount;
configure retention policy to redundancy 2;
configure controlfile autobackup format for device type disk clear;
configure controlfile autobackup on;
sql "create pfile=''$rman_spfile2init'' from spfile";
backup as compressed backupset device type disk database;
configure controlfile autobackup off;
alter database open;
delete noprompt obsolete;
EOF
18
19. Archivos
• ¿Qué generó?
• List backup;
• ¿Qué archivos respalda?
• datafiles (e image copies)
• controlfiles (e image copies)
• archivelog
• Spfile
• Por lo tanto, no respalda:
• redo logs, tempfiles (no son necesarios para recovery)
• archivos de tablas externas o bfiles
• binarios de la instalación 19
• archivos configuración de red
23. ¿hay que seguir sin usar RMAN?
• NO.
• Mientras, plan de empezar a corto plazo
• ¿Porqué?
– Solución uniforme : interfaz idéntica en
distintos sistemas operativos
– Usa menos recursos y genera archivos más
chicos.
– Funcionalidades no disponibles de forma
manual :
23
24. Hay que usar RMAN
Respaldos incrementales : respaldos más chicos, recuperación más
•
rápida (sólo almacena los cambios)
Block media recovery : repara datafile sin ponerlo offline
•
Unused block compression (10.2): no copia bloques libres
•
Compresión (bzip2 / zlib en 11g)
•
Encriptación
•
Repositorio de respaldos
•
Data Recovery Advisor (11g)
•
Detecta corrupción logica y física
•
backup optimization – no copia archivos existentes idénticos en destino.
•
Undo optimization (en 11g) – no copia undo no necesario.
•
24
25. Hay que usar RMAN
• Usarlo implica:
–practicar recovery
–tener presente que archivos no
son transportables entre
plataformas
• ej : Respaldo tomado en x32 no
se puede restaurar en x86_64.
–bugs (cada vez menos) 25
26. Pasos para empezar a usarlo
• definir política
– nivel de servicio aceptable
– retención
– destino
– nombres
– paralelismo
– tamaños máximos de archivos
– uso de encriptación 26
27. Primeros pasos
• crear script de configuración
– recovery puede ser en otro equipo
• implementar scripts completos
– Respaldar
– Borrar obsoletos
– Listar catalogo (documentación)
– Detectar errores
• validar que respaldos sean útiles
27
28. Escenarios de recovery
* 2 básicos:
completo y de tablespace
* 12 avanzados:
Recovering After the Loss of Datafiles: Scenarios
Recovering Through an Added Datafile with a Backup Control File: Scenario
Re-Creating Datafiles When Backups Are Unavailable: Scenario
Recovering Through RESETLOGS with Created Control File: Scenario
Recovering NOLOGGING Tables and Indexes: Scenario
Recovering Read-Only Tablespaces with a Backup Control File: Scenario
Recovering Transportable Tablespaces: Scenario
Recovering After the Loss of Online Redo Log Files: Scenarios
Recovering After the Loss of Archived Redo Log Files: Scenario
Recovering from a Dropped Table: Scenario
Performing Media Recovery in a Distributed Environment: Scenario
28
32. Cuando hay errores
• Manuales
• Metalink
• Debugear
rman target / log rman.log trace rman.trc
run{
allocate channel t1 type sbt………trace=2;
allocate channel t2 type sbt………trace=2;
allocate channel t3 type sbt………trace=2;
debug on;
restore database;
debug off;
}
32
33. Cuando hay errores
• Media manager es de terceros
• sbtio.log
• Simular uso y comparar:
run {
allocate channel t1 type sbt parms
'SBT_LIBRARY=oracle.disksbt,ENV=(BACKUP_DIR
=d:temp)' trace=2;
backup database;
}
33
34. Optimizar backups
- hay que usar async IO (config. SO)
- paralelismo adecuado (channels) a cantidad
de cintas
- revisar desempeño de MML
- se puede afinar conociendo la arquitectura
de procesos RMAN:
RMAN Backup Performance [ID 360443.1]
34
35. Optimizar recovery
• Scripts se ejecutan serial.
• Esto no es performante:
run {
allocate channel t1 type sbt....;
allocate channel t2 type sbt....;
allocate channel t3 type sbt....;
restore datafile 2;
restore datafile 3;
restore datafile 5;
restore datafile 7;
restore datafile 11;
}
35
36. Optimizar recovery
• Esto si:
run {
allocate channel t1 type sbt....;
allocate channel t2 type sbt....;
allocate channel t3 type sbt....;
restore datafile 2,3,5,7,11;
}
36