OOW LatinAmerica 2011 - RMAN sin misterios
-
Upload
nelson-calero -
Category
Technology
-
view
2.785 -
download
4
description
Transcript of OOW LatinAmerica 2011 - RMAN sin misterios
Organización independiente sin fines de lucro, creada por profesionales en Dic/2009.
Ámbito donde se promueve el intercambio de conocimiento entre usuarios de tecnología Oracle, en áreas de aplicaciones y tecnología (BD) .
Organizar eventos técnicos en el país en forma periódica.
Acercar referentes internacionales a eventos locales.
250 afiliados (agosto 2011)
http://www.uyoug.org.uy
Junio/2010: 4 oradores locales 60 asistentes
Octubre/2010: 5 oradores internacionales 5 oradores locales 80 asistentes
Julio/2011: 8 oradores internacionales 3 oradores locales 120 asistentes
Marzo/2012: ?
Sobre mí: http://www.linkedin.com/in/ncalero
● Desde 1994 trabajando con herramientas Oracle y Linux
● Desde 2001 DBA Oracle y MySQL
● Instructor de Oracle University 2011 en cursos oficiales
● Co-fundador y Presidente del Grupo de usuarios Oracle del Uruguay (UYOUG)
● Latin America Chair del Oracle RAC SIG
5/53
Agenda
• Introducción
• Conceptos
• Pasos para comenzar
• Troubleshooting
• Optimización
• Ejemplos
6/53
¿ Qué 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 documentados, en distintas versiones:
– menos de 1283, más de 170.
• Known RMAN Performance Problems [ID 247611.1] - 32 bugs, corregidos todos en 11g (algunos antes)
7/53
Arquitectura procesos RMAN
Referencia : http://docs.oracle.com/
8/53
¿Hoy veremos mejores prácticas de backup &
recovery?
Algunas, las que usan RMAN
Además, es necesario usar más tecnología que RMAN:
• datapump• flashback • secure backup
9/53
Respaldando con rman
Diferencias entre respaldo RMAN y manual (user-managed) :
–rman fija las reglas, pero es flexible–rman necesita menos instrumentación–rman provee más funcionalidades–rman requiere entrenamiento
10/53
Respaldando 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;
11/53
Respaldando con rman
• consistente (frío):rman target /
startup mount;
backup database plus archivelog;
• inconsistente (caliente) :rman target /
backup database plus archivelog;
12/53
Respaldando con rman
Si usamos XE:
$ORACLE_HOME/config/scripts/• backup.sh • restore.sh
13/53
¿Realmente es tan fácil?
oracle@oraculo:~/app/oracle/product/10.2.0/server/config/scripts> ./backup.shWarning: Log archiving (ARCHIVELOG mode) is currently disabled. Ifyou restore the database from this backup, any transactions that takeplace between this backup and the next backup will be lost. It isrecommended that you enable ARCHIVELOG mode before proceeding sothat 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 thedatabase. Are you sure [Y/N]?
Prueba con OpenSuse 11.3 x32 y XE 10.2
14/53
¿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. Ifyou restore the database from this backup, any transactions that takeplace between this backup and the next backup will be lost. It is
recommended that you enable ARCHIVELOG mode before proceeding sothat 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]? yBackup 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
15/53
¿Realmente es tan fácil?
oracle@oraculo:~/app/oracle/product/10.2.0/server/config/scripts> ./backup.shWarning: Log archiving (ARCHIVELOG mode) is currently disabled. Ifyou restore the database from this backup, any transactions that takeplace between this backup and the next backup will be lost. It isrecommended that you enable ARCHIVELOG mode before proceeding sothat 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 thedatabase. Are you sure [Y/N]? yBackup in progress...Backup of the database succeeded.Log file is at /usr/lib/oracle/xe/oxe_backup_current.log.Press ENTER key to exit
No reproducible en XE 11.2
16/53
Manual vs RMAN
• ¿Cuánto 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
17/53
Manual vs RMAN
• ¿Cuánto 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
18/53
Manual vs RMAN
Puede ocupar menos si es comprimidoDos formas para hacerlo:– 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 usar más CPU)
19/53
Manual vs RMAN
Cuidado con XE : backup.sh no genera respaldo 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
20/53
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
21/53
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
22/53
¿Compresión con XE?
• No es tan necesario porque el máximo de datos manejados es 11gb.
• backup.sh usa redundancia 2.
Cambiarlo de acuerdo a nuestra política.
23/53
Archivos usados y generados
• ¿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• archivos configuración de red
24/53
Conceptos
• Backupset–backup pieces–channels
• Expirado• Obsoleto• Crosscheck• Incarnations
25/53
Recovery
http://docs.oracle.com/cd/B12037_01/server.101/b10735/intro.htm#1009445
26/53
Incarnations
http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmrvcon.htm#CHDCJGGD
27/53
¿Hay que seguir sin usar RMAN?
• NO.• Mientras, plan de empezar a corto plazo
• ¿Por qué?– 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:
28/53
• 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: no copia bloques libres
• Compresión (bzip2 y zlib)
• Encriptación
• Repositorio de respaldos (catálogo)
• Detecta corrupción lógica y física
• Backup optimization: no copia archivos existentes idénticos en destino
Hay que usar RMAN
29/53
• Data Recovery Advisor
• Mejor integración con DG: configuración y catálogo
• Mejorado el uso de backups congelados (BACKUP .. KEEP): no necesitan archived logs posteriores
• Uso de archived logs de otros destinos cuando no existen en la FRA y se necesitan respaldar
• Mejoras a política de borrado de archivelogs: con standby no se borran de FRA si no fueron transferidos.
• Clonación de base ACTIVA (sin usar respaldos)
• Virtual private catalogs
• Respaldo en paralelo de archivos grandes, usando nuevo parámetro SECTION SIZE
• Undo optimization: no se respaldan segmentos de transacciones que ya comitearon
• Block Media Recovery Performance Improvements, usando flashback logs si están disponibles
• Mejorada detección de bloques corruptos, incluyendo nuevas opciones al comando VALIDATE: BLOCK y DATABASE.
• Compresión más rápida con la incorporación del algoritmo ZLIB además del BZIP2 existente.
• Block change tracking soportado en standby física
• Soporte a variables de sustitución en scripts almacenados
• Soporte para tablespaces transportables readonly
• Detección de escrituras perdidas mejorado, usando parámetro DB_LOST_WRITE_PROTECT y dataguard
• Parámetro DB_ULTRA_SAFE
• Recovery más rápido usando algoritmo de paralelismo mejorado y optimizado para multi-procesadores
Mejoras en 11.1
30/53
• Oracle Secure Backup (OSB) Cloud Module• Mejoras al comando DUPLICATE Database:
– sin conexión a la base origen, opcionalmente al catálogo– si hay tablespaces excluidos, valida que no incluya objetos de sys
• Mejoras a Tablespace Point-in-Time Recovery (TSPITR): puede recuperar tablespace borrados, y repetir la operación
• Automatic Block Repair usando standby física• Nueva opción del comando SET NEWNAME: variables de sustitución (%b)• Nueva opción SKIP UNNECESSARY DATAFILES al comando CONVERT
DATABASE • Mejoras en algoritmos de compresión con niveles HIGH, MEDIUM, LOW
(Advanced Compression Option)• Nuevo opción INCARNATION en los comandos BACKUP, RESTORE, y LIST • Nueva opción TO DESTINATION del comando BACKUP, usada ademaś por la
funcionalidad de optimización
Mejoras en 11.2
31/53
• 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)
Hay que usar RMAN
32/53
• definir política– nivel de servicio aceptable– retención– destino– nombres– paralelismo– tamaños máximos de archivos– uso de encriptación
Pasos para empezar a usarlo
33/53
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
34/53
Escenarios de recovery
* 2 básicos: completo y de tablespace
* 12 avanzados:Recovering After the Loss of Datafiles: ScenariosRecovering Through an Added Datafile with a Backup Control File: ScenarioRe-Creating Datafiles When Backups Are Unavailable: ScenarioRecovering Through RESETLOGS with Created Control File: ScenarioRecovering NOLOGGING Tables and Indexes: ScenarioRecovering Read-Only Tablespaces with a Backup Control File: ScenarioRecovering Transportable Tablespaces: ScenarioRecovering After the Loss of Online Redo Log Files: ScenariosRecovering After the Loss of Archived Redo Log Files: ScenarioRecovering from a Dropped Table: ScenarioPerforming Media Recovery in a Distributed Environment: Scenario
35/53
Ejemplos de recovery
* recuperar un respaldo completo
RMAN> STARTUP MOUNT; RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE; RMAN> ALTER DATABASE OPEN;
* recuperar solo un tablespace
RMAN> SQL 'ALTER TABLESPACE mytbs OFFLINE IMMEDIATE'; RMAN> RESTORE TABLESPACE mytbs; RMAN> RECOVER TABLESPACE mytbs; RMAN> SQL 'ALTER TABLESPACE mytbs ONLINE';
36/53
Primeros pasos
• validar que respaldos sean útiles– cintas sin errores– integridad de datos
• física: backup validate database ...• lógica + física:
– backup blocks all check logical validate database;– select * from V$DATABASE_BLOCK_CORRUPTION;
– por defecto, backup valida checksum de bloques al escribir en destino (física)
37/53
Sólo en enterprise
1. allocate parallel disk channels 2. block change tracking
38/53
Cuando hay errores
• Manuales : http://otn.oracle.com• Soporte : http://support.oracle.com• 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; }
39/53
Cuando hay errores
• Media manager (MML) es de terceros• Genera 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;
}
40/53
Optimizar backups
- usar async IO (configuración en S.O.)- paralelismo adecuado (channels) a cantidad de cintas usadas por controladora- revisar desempeño de MML
- se puede afinar conociendo la arquitectura de procesos RMAN: RMAN Backup Performance [ID 360443.1]
41/53
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; }
42/53
Optimizar recovery
• Esto sí:run { allocate channel t1 type sbt....; allocate channel t2 type sbt....; allocate channel t3 type sbt....; restore datafile 2,3,5,7,11; }
43/53
¿Tiempo para ejemplos?
• Clonación clásica• Clonación online (> 11.1)• Clonación RAC• Data Recovery Advisor
44/53
Clonación clásica
• configurar ambiente de base destino– db_file_name_convert y log_file_name_convert
• reinicar base destino en modo nomount• obtener SCN a restaurar. Varias formas. Una posible:
select next_change#from v$archived_logwhere recid = (select max(recid) from v$archived_log where backup_count>0);
• clonar (ejecutando en servidor destino)rman catalog rman/clave@rman target sys/clave@origenconnect auxiliary /run { allocate auxiliary channel dupdb1 type disk; set until scn $MAX_SCN; duplicate target database to COPIA NOFILENAMECHECK;}
• quitar archivelog en base clonada
45/53
Clonación online (> 11.1)
• Caso simple, usando mismos paths en origen y destino :
rman nocatalog target sys/clave@origen
connect AUXILIARY sys/clave@copia
run {
DUPLICATE TARGET DATABASE TO 'COPIA' FROM ACTIVE DATABASE;
}
exit;
46/53
Clonación RAC
• Notas 452868.1 y 461479.1• Cambios a clonación single instance
– pfile base destino como single instance– Se clona igual que single instance– Cambiar parámetros pfile, agregar RAC
• control_files, cluster_database
– Reiniciar– Configurar en todos los nuevos nodos– Ajustes finales
• Tnsnames.ora• Registrar en CRS
47/53
Data Recovery Advisor
• Caso : pérdida de datafile
rm /u01/app/oracle/oradata/test11/users01.dbf
oracle@test:/u01/app/oracle/oradata/test11> rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jun 3 14:07:35 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: TEST11 (DBID=3428713062)
RMAN> validate database;
Starting validate at 03-JUN-10
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=68 device type=DISK
RMAN-06169: could not read file header for datafile 4 error reason 5
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of validate command at 06/03/2010 14:07:50
RMAN-06056: could not access datafile 4
48/53
Data Recovery Advisor
RMAN> list failure;
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
122 HIGH OPEN 03-JUN-10 One or more non-system datafiles are missing
RMAN> advise failure all;
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
122 HIGH OPEN 03-JUN-10 One or more non-system datafiles are missing
analyzing automatic repair options; this may take some time
using channel ORA_DISK_1
analyzing automatic repair options complete
Mandatory Manual Actions
========================
no manual actions available
Optional Manual Actions
=======================
1. If file /u01/app/oracle/oradata/test11/users01.dbf was unintentionally renamed or moved, restore it
Automated Repair Options
========================
Option Repair Description
------ ------------------
1 Restore and recover datafile 4
Strategy: The repair includes complete media recovery with no data loss
Repair script: /u01/app/oracle/diag/rdbms/test11/test11/hm/reco_2784754173.hm
49/53
Data Recovery Advisor
• El repair script tiene : # restore and recover datafile
sql 'alter database datafile 4 offline';
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
• Esto es porque hay un respaldo catalogado disponible. Si no hubiera :
analyzing automatic repair options; this may take some time
using channel ORA_DISK_1
analyzing automatic repair options complete
Mandatory Manual Actions
========================
1. If file /u01/app/oracle/oradata/test11/users01.dbf was unintentionally renamed or moved, restore it
2. If you have an export of tablespace USERS, then drop and re-create the tablespace and import the data.
3. Contact Oracle Support Services if the preceding recommendations cannot be used, or if they do not fix the failures selected for repair
Optional Manual Actions
=======================
no manual actions available
Automated Repair Options
========================
no automatic repair options available
50/53
Data Recovery Advisor
RMAN> repair failure;
Strategy: The repair includes complete media recovery with no data loss
Repair script: /u01/app/oracle/diag/rdbms/test11/test11/hm/reco_3604648805.hm
contents of repair script:
# restore and recover datafile
sql 'alter database datafile 4 offline';
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
Do you really want to execute the above repair (enter YES or NO)? yes
executing repair script
sql statement: alter database datafile 4 offline
Starting restore at 03-JUN-10
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/test11/users01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/TEST11/backupset/2010_06_03/o1_mf_nnndf_TAG20100603T140513_60hr69ob_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/TEST11/backupset/2010_06_03/o1_mf_nnndf_TAG20100603T140513_60hr69ob_.bkp tag=TAG20100603T140513
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 03-JUN-10
Starting recover at 03-JUN-10
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 03-JUN-10
sql statement: alter database datafile 4 online
repair failure complete
51/53
¿Siguientes pasos?
• Ejercitar escenarios separando roles de DBA's
• Usar Enterprise Manager• Data Recovery Advisor
¿Preguntas?
53/53
Referencias• Oracle® Database Backup and Recovery Basics - 10.2
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14192/toc.htm
• Oracle® Database Backup and Recovery Advanced User's Guide - 10.2
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/toc.htm
• Oracle® Database Backup and Recovery User's Guide – 11.2http://download.oracle.com/docs/cd/E11882_01/backup.112/e10642/toc.htm
• What's New in Backup and Recovery?11.1 - http://docs.oracle.com/cd/B28359_01/backup.111/b28270/wnbradv.htm
11.2 - http://docs.oracle.com/cd/E24693_01/backup.11203/e10642/wnbradv.htm
• MOS note 360443.1 - RMAN Backup Performance
• MOS note 740911.1 - RMAN Restore Performance
•
•