Anda di halaman 1dari 22

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
Introduccin

Automatic recovery
Ante fallas de potencia elctrica y del computador
Copias de respaldo
Ante fallas del medio donde se almacenan los datos
Plan de copias de respaldo y recuperacin
Transaction Log (TL) con el registro de cambios
Checkpoints, sincronizacin de BD y el TL
Comandos SQL Permisos y autorizaciones
Backup Server
Medios para backup
Configuracin 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 pgina 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 transaccin
Transacciones definidas por el usuario Begin Transaction
Recuperacin de BD
Comandos SQL
dump transaction
sp_spaceused syslogs
sp_helpsegment logsegment
Delayed_commit

Garanta ACID (Atomicidad, Consistencia, Integridad y Durabilidad)


Escritura de todas las operaciones en el log
Escritura del log antes de modificar pginas de datos o ndices
Escritura de pginas de log al disco al hacer commit
Notificacin al cliente del commit despus de hecha efectiva la escritura en
disco
En todas las oportunidades no se necesita garanta ACID
Comandos
set delayed_commit { on | off | default }
sp_dboption [dbname, optname, optvalue [, dockpt]]
Checkpoints

Escritura de todas las pginas sucias al dispositivo


Recovery interval
Procedimiento automtico de Checkpoint
Truncamiento del Log despus de Checkpoint automtico
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, ...]]
Recuperacin automtica
Al encender el servidor, despus de
Una falla del sistema
shutdown
Secuencia de recuperacin
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


Recuperacin cuando hay fallo en los medios de
almacenamiento
Posible nicamente si hay copias adecuadas de respaldo
Si se sigue adecuadamente los procedimientos de recuperacin
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

Tpicamente 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 porcin 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 estadsticas a systabstats
Esperar mientras se hacen estas tareas
checkpoint
dump database
Load entre plataformas

Trminos
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 electrnica

Diferentes proveedores de DBMS


Comando bcp
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Ejemplo