BACKUP – RECOVERY DE LAS BASES DE DATOS Servidor de Bases de datos ASE Sybase Fuentes: Manuales...
-
Upload
sandalio-marcano -
Category
Documents
-
view
225 -
download
0
Transcript of BACKUP – RECOVERY DE LAS BASES DE DATOS Servidor de Bases de datos ASE Sybase Fuentes: Manuales...
BACKUP – RECOVERY DE LAS BASES DE DATOS
Servidor de Bases de datos ASE Sybase
Fuentes: Manuales Sybase v15.7:Reference Manual: CommandsReference Manual: ProceduresReference Manual: Tables System Administration Guide: Volume 2 Utility Guide
Introducción
• Automatic recoveryAnte fallas de potencia eléctrica y del computador
• Copias de respaldoAnte fallas del medio donde se almacenan los datos
• Plan de copias de respaldo y recuperación• Transaction Log (TL) con el registro de cambios• Checkpoints, sincronización de BD y el TL• Comandos SQL – Permisos y autorizaciones• Backup Server• Medios para backup• Configuración del sistema• Agendamiento de backups
Registro de cambios de las BD
• Transaction logGuarda todos los cambios en la BDUno por cada BD – tabla syslogWrite-ahead logCopia de página de datos en el cachéEscritura en discoRegistro de inicio y final de transacciones
• Transacciones en BD – unidad de trabajo– Instrucciones que cambian contenido – transacción– Transacciones definidas por el usuario – Begin Transaction
• Recuperación de BD• Comandos SQL
– dump transaction– sp_spaceused syslogs– sp_helpsegment logsegment
Delayed_commit
• Garantía ACID (Atomicidad, Consistencia, Integridad y Durabilidad)– Escritura de todas las operaciones en el log– Escritura del log antes de modificar páginas de datos o índices– Escritura de páginas de log al disco al hacer commit– Notificación al cliente del commit después de hecha efectiva la escritura en
disco
• En todas las oportunidades no se necesita garantía ACID• Comandos
– set delayed_commit { on | off | default }– sp_dboption [dbname, optname, optvalue [, dockpt]]
Checkpoints
• Escritura de todas las páginas sucias al dispositivo• Recovery interval• Procedimiento automático de Checkpoint• Truncamiento del Log después de Checkpoint automático• Free checkpoints• Checkpoint manual• Comandos
– sp_configure "recovery interval in minutes", value– sp_who– sp_dboption database_name, "trunc log on chkpt", {true | false}– checkpoint [all | [dbname[, dbname, dbname, ...]]
Recuperación automática
• Al encender el servidor, después de– Una falla del sistema– shutdown
• Secuencia de recuperación– master– sybsystemprocs– model– Crea tempdb (by copying model)– sybsystemdb– sybsecurity– BDs de usuario, en el orden dado por
• sysdatabases.dbid ó • sp_dbrecovery_order
• Variable @@recovery_state– NOT_IN_RECOVERY– RECOVERY_TUNING– BOOTIME_RECOVERY– FAILOVER_RECOVERY
dump & load
• Fallo en los medios de almacenamiento• Recuperación cuando hay fallo en los medios de
almacenamiento– Posible únicamente si hay copias adecuadas de respaldo– Si se sigue adecuadamente los procedimientos de recuperación– dump de la BD vs dump del sistema operativo– dump no arregla problemas de las estructuras
• Comandos– dump database– dump transaction– dbcc
Responsable de los Backups
• Típicamente es un operador• Privilegios
– Administrador– Propietario de la BD– Operador
• Comandos– dump– load
dump database
• Copia completa de una base de datos• Incluye datos y log• No trunca el log• Copia en caliente• Comando dump database database_name to [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name] [with shrink_log]with verify[= header | full] [stripe on [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]] [[stripe on [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]]...] [with {density = density_value, blocksize = number_bytes, capacity = number_kilobytes, compression = compress_level dumpvolume = volume_name, file = file_name, [dismount | nodismount], [nounload | unload], passwd = password,retaindays = number_days, [noinit | init], notify = {client | operator_console} }]
dump transaction
• Hace una copia del transaction log y quita la porción inactiva• Comando dump tran[saction] database_name
to [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name] [stripe on [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]] [[stripe on [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]]...] [with {density = density_value, blocksize = number_bytes, capacity = number_kilobytes, compression = compress_level, dumpvolume = volume_name,file = file_name, [dismount | nodismount], [nounload | unload], retaindays = number_days, [noinit | init], notify = {client | operator_console}, standby_access}]
dump transaction
• Similar a copias incrementales del SO
• Trunca el log sin hacer una copia de respaldo:dump tran[saction] database_name with truncate_only
• Trunca un log que ha llenado su capacidad. – Usado como último recurso
dump tran[saction] database_name with no_log
dump transaction
• Cuando un dispositivo de BD falla: dump tran[saction] database_name to [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name] [stripe on [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]] [[stripe on [compress::[compression_level::]]stripe_device [at backup_server_name] [density = density_value, blocksize = number_bytes, capacity = number_kilobytes, dumpvolume = volume_name, file = file_name]]...] [with {density = density_value, blocksize = number_bytes, capacity = number_kilobytes, compression = compress_level dumpvolume = volume_name, file = file_name, [dismount | nodismount], [nounload | unload], retaindays = number_days, [noinit | init], no_truncate, notify = {client | operator_console}}]
load database
• Recupera una BD a partir de un dump database• Luego ejecutar load transaction
– De acuerdo a los dump transaction hechos– Ejecutados en el mismo orden en que se hicieron los dump transaction
• Colocar activa la base de datos– Comando: online database database_name [for standby_access]
• Dump & Load de diferentes plataformas
dump para load en diferentes plataformas
• dbcc checkdb & dbcc checkalloc – BD consistente• sp_dboption en mode single-user• sp_flushstats pasar las estadísticas a systabstats• Esperar mientras se hacen estas tareas• checkpoint• dump database
Load entre plataformas
• Términos– APL: All Pages Locked– DOL Data [page] Only Locking
• load database• load transaction• online database• Problemas al pasar índices
– Índice noCluster sobre tabla APL– Índice Cluster sobre tabla DOL– Índice noCluster sobre tabla DOL
Importar & Exportar
• Archivo plano• Formatos:
– XML– Estructura XML– HTML– CSV– Hoja electrónica
• Diferentes proveedores de DBMS• Comando bcp
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Ejemplo