BACKUP – RECOVERY DE LAS BASES DE DATOS Servidor de Bases de datos ASE Sybase Fuentes: Manuales Sybase v15.7: Reference Manual: Commands Reference Manual: Procedures Reference Manual: Tables System Administration Guide: Volume 2 Utility Guide
Introducción Automatic recovery Copias de respaldo Ante fallas de potencia eléctrica y del computador Copias de respaldo Ante 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 log Guarda todos los cambios en la BD Uno por cada BD – tabla syslog Write-ahead log Copia de página de datos en el caché Escritura en disco Registro 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 file = file_name]] [[stripe on [compress::[compression_level::]]stripe_device 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 file = file_name]] [[stripe on [compress::[compression_level::]]stripe_device 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 file = file_name]] [[stripe on [compress::[compression_level::]]stripe_device 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