DB2: copia de seguridad y recuperación
Este capítulo describe los métodos de copia de seguridad y restauración de la base de datos.
Introducción
Los métodos de respaldo y recuperación están diseñados para mantener nuestra información segura. En Command Line Interface (CLI) o Graphical User Interface (GUI) usando utilidades de respaldo y recuperación, puede realizar respaldo o restaurar los datos de bases de datos en DB2 UDB.
Inicio sesión
Los archivos de registro consisten en registros de errores, que se utilizan para recuperarse de los errores de la aplicación. Los registros mantienen el registro de cambios en la base de datos. Hay dos tipos de registro que se describen a continuación:
Registro circular
Es un método en el que los registros de transacciones antiguos se sobrescriben cuando existe la necesidad de asignar un nuevo archivo de registro de transacciones, borrando así las secuencias de los archivos de registro y reutilizándolos. Solo puede realizar copias de seguridad completas en modo fuera de línea. es decir, la base de datos debe estar fuera de línea para realizar la copia de seguridad completa.
Registro de archivo
Este modo admite la copia de seguridad en línea y la recuperación de la base de datos utilizando archivos de registro llamados recuperación en avance. El modo de copia de seguridad se puede cambiar de circular a archivo estableciendo logretain o userexit en ON. Para el registro de archivos, la base de datos de configuración de copia de seguridad requiere un directorio en el que se pueda escribir para el proceso DB2.
Apoyo
Utilizando Backupcomando puede tomar una copia de toda la base de datos. Esta copia de seguridad incluye archivos del sistema de base de datos, archivos de datos, archivos de registro, información de control, etc.
Puede realizar copias de seguridad mientras trabaja sin conexión y en línea.
Copia de seguridad sin conexión
Syntax: [Para enumerar las aplicaciones / bases de datos activas]
db2 list application
Output:
Auth Id Application Appl. Application Id
DB # of
Name Handle
Name Agents
-------- -------------- ---------- ---------------------
----------------------------------------- -------- -----
DB2INST1 db2bp 39
*LOCAL.db2inst1.140722043938
ONE 1
Syntax:[Para forzar la aplicación usando la aplicación. Id manejado]
db2 "force application (39)"
Output:
DB20000I The FORCE APPLICATION command completed
successfully.
DB21024I This command is asynchronous and may not
be effective immediately.
Syntax: [Para terminar la conexión a la base de datos]
db2 terminate
Syntax: [Para desactivar la base de datos]
db2 deactivate database one
Syntax: [Para tomar el archivo de respaldo]
db2 backup database <db_name> to <location>
Example:
db2 backup database one to /home/db2inst1/
Output:
Backup successful. The timestamp for this backup image is :
20140722105345
Copia de seguridad en línea
Para comenzar, debe cambiar el modo de Circular logging a Archive Logging.
Syntax: [Para comprobar si la base de datos utiliza un registro circular o de archivo]
db2 get db cfg for one | grep LOGARCH
Output:
First log archive method (LOGARCHMETH1) = OFF
Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFF
Options for logarchmeth1 (LOGARCHOPT1) =
Second log archive method (LOGARCHMETH2) = OFF
Archive compression for logarchmeth2 (LOGARCHCOMPR2) = OFF
Options for logarchmeth2 (LOGARCHOPT2) =
En la salida anterior, los valores resaltados son [logarchmeth1 y logarchmeth2] en modo apagado, lo que implica que la base de datos actual está en modo “REGISTRO CIRCULAR”. Si necesita trabajar con el modo 'ARCHIVE LOGGING', debe cambiar o agregar una ruta en las variables logarchmeth1 y logarchmeth2 presentes en el archivo de configuración.
Actualizando logarchmeth1 con el directorio de archivo requerido
Syntax: [Para hacer directorios]
mkdir backup
mkdir backup/ArchiveDest
Syntax: [Para proporcionar permisos de usuario para la carpeta]
chown db2inst1:db2iadm1 backup/ArchiveDest
Syntax: [Para actualizar la configuración LOGARCHMETH1]
db2 update database configuration for one using LOGARCHMETH1
'DISK:/home/db2inst1/backup/ArchiveDest'
Puede realizar copias de seguridad sin conexión por seguridad, activar la base de datos y conectarse a ella.
Syntax: [Para realizar una copia de seguridad en línea]
db2 backup database one online to
/home/db2inst1/onlinebackup/ compress include logs
Output:
db2 backup database one online to
/home/db2inst1/onlinebackup/ compress include logs
Verifique el archivo de respaldo usando el siguiente comando:
Syntax:
db2ckbkp <location/backup file>
Example:
db2ckbkp
/home/db2inst1/ONE.0.db2inst1.DBPART000.20140722112743.001
Listado del historial de archivos de respaldo
Syntax:
db2 list history backup all for one
Output:
List History File for one
Number of matching file entries = 4
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-- --- ------------------ ---- --- ------------ ------------
--------------
B D 20140722105345001 F D S0000000.LOG S0000000.LOG
------------------------------------------------------------
----------------
Contains 4 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
00003 SYSTOOLSPACE
00004 TS1
------------------------------------------------------------
----------------
Comment: DB2 BACKUP ONE OFFLINE
Start Time: 20140722105345
End Time: 20140722105347
Status: A
------------------------------------------------------------
----------------
EID: 3 Location: /home/db2inst1
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-- --- ------------------ ---- --- ------------ ------------
--------------
B D 20140722112239000 N S0000000.LOG S0000000.LOG
------------------------------------------------------------
-------------------------------------------------------------
-------------------------------
Comment: DB2 BACKUP ONE ONLINE
Start Time: 20140722112239
End Time: 20140722112240
Status: A
------------------------------------------------------------
----------------
EID: 4 Location:
SQLCA Information
sqlcaid : SQLCA sqlcabc: 136 sqlcode: -2413 sqlerrml: 0
sqlerrmc:
sqlerrp : sqlubIni
sqlerrd : (1) 0 (2) 0 (3) 0
(4) 0 (5) 0 (6) 0
sqlwarn : (1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-- --- ------------------ ---- --- ------------ ------------
--------------
B D 20140722112743001 F D S0000000.LOG S0000000.LOG
------------------------------------------------------------
----------------
Contains 4 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
00003 SYSTOOLSPACE
00004 TS1
-------------------------------------------------------------
----------------
Comment: DB2 BACKUP ONE OFFLINE
Start Time: 20140722112743
End Time: 20140722112743
Status: A
-------------------------------------------------------------
----------------
EID: 5 Location: /home/db2inst1
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-------------------------------------------------------------
----------------
R D 20140722114519001 F
20140722112743
------------------------------------------------------------
----------------
Contains 4 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
00003 SYSTOOLSPACE
00004 TS1
------------------------------------------------------------
----------------
Comment: RESTORE ONE WITH RF
Start Time: 20140722114519
End Time: 20140722115015
Status: A
------------------------------------------------------------
----------------
EID: 6 Location:
Restaurar la base de datos desde la copia de seguridad
Para restaurar la base de datos desde el archivo de respaldo, debe seguir la sintaxis dada:
Syntax:
db2 restore database <db_name> from <location>
taken at <timestamp>
Example:
db2 restore database one from /home/db2inst1/ taken at
20140722112743
Output:
SQL2523W Warning! Restoring to an existing database that is
different from
the database on the backup image, but have matching names.
The target database
will be overwritten by the backup version. The Roll-forward
recovery logs
associated with the target database will be deleted.
Do you want to continue ? (y/n) y
DB20000I The RESTORE DATABASE command completed successfully.
Mueva hacia adelante todos los registros ubicados en el directorio de registros, incluidos los últimos cambios justo antes de la falla de la unidad de disco.
Syntax:
db2 rollforward db <db_name> to end of logs and stop
Example:
db2 rollforward db one to end of logs and stop
Output:
Rollforward Status
Input database alias = one
Number of members have returned status = 1
Member ID = 0
Rollforward status = not pending
Next log file to be read =
Log files processed = S0000000.LOG -
S0000001.LOG
Last committed transaction = 2014-07-22-
06.00.33.000000 UTC
DB20000I The ROLLFORWARD command completed successfully.