DB2 - Backup e ripristino
Questo capitolo descrive i metodi di backup e ripristino del database.
introduzione
I metodi di backup e ripristino sono progettati per mantenere le nostre informazioni al sicuro. In Command Line Interface (CLI) o Graphical User Interface (GUI) utilizzando le utilità di backup e ripristino è possibile eseguire il backup o ripristinare i dati dei database in DB2 UDB.
Registrazione
I file di registro sono costituiti da registri degli errori, utilizzati per il ripristino dagli errori dell'applicazione. I registri mantengono il registro delle modifiche nel database. Esistono due tipi di registrazione come descritto di seguito:
Registrazione circolare
È un metodo in cui i vecchi log delle transazioni vengono sovrascritti quando è necessario allocare un nuovo file di log delle transazioni, cancellando così le sequenze dei file di log e riutilizzandole. È consentito eseguire solo il backup completo in modalità offline. cioè, il database deve essere offline per eseguire il backup completo.
Registrazione dell'archivio
Questa modalità supporta il backup in linea e il ripristino del database utilizzando file di registro denominati ripristino roll forward. La modalità di backup può essere modificata da circolare ad archivio impostando logretain o userexit su ON. Per la registrazione dell'archivio, il database delle impostazioni di backup richiede una directory scrivibile per il processo DB2.
Backup
Utilizzando Backupcomando puoi prendere una copia dell'intero database. Questa copia di backup include file di sistema del database, file di dati, file di registro, informazioni di controllo e così via.
Puoi eseguire il backup mentre lavori offline e online.
Backup offline
Syntax: [Per elencare le applicazioni / database attivi]
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:[Per forzare l'applicazione utilizzando l'app. ID gestito]
db2 "force application (39)"
Output:
DB20000I The FORCE APPLICATION command completed
successfully.
DB21024I This command is asynchronous and may not
be effective immediately.
Syntax: [Per terminare la connessione al database]
db2 terminate
Syntax: [Per disattivare il database]
db2 deactivate database one
Syntax: [Per prendere il file di backup]
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
Backup online
Per iniziare, è necessario modificare la modalità da Circular logging per Archive Logging.
Syntax: [Per verificare se il database utilizza la registrazione circolare o di archivio]
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) =
Nell'output precedente, i valori evidenziati sono [logarchmeth1 e logarchmeth2] in modalità off, il che implica che il database corrente sia in modalità "LOGGING CIRCULLARE". Se devi lavorare con la modalità 'ARCHIVE LOGGING', devi modificare o aggiungere path nelle variabili logarchmeth1 e logarchmeth2 presenti nel file di configurazione.
Aggiornamento di logarchmeth1 con la directory di archivio richiesta
Syntax: [Per creare directory]
mkdir backup
mkdir backup/ArchiveDest
Syntax: [Per fornire le autorizzazioni utente per la cartella]
chown db2inst1:db2iadm1 backup/ArchiveDest
Syntax: [Per aggiornare la configurazione LOGARCHMETH1]
db2 update database configuration for one using LOGARCHMETH1
'DISK:/home/db2inst1/backup/ArchiveDest'
Puoi eseguire il backup offline per sicurezza, attivare il database e collegarti ad esso.
Syntax: [Per eseguire il backup online]
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
Verifica il file di backup utilizzando il seguente comando:
Syntax:
db2ckbkp <location/backup file>
Example:
db2ckbkp
/home/db2inst1/ONE.0.db2inst1.DBPART000.20140722112743.001
Elenco della cronologia dei file di backup
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:
Ripristino del database dal backup
Per ripristinare il database dal file di backup, è necessario seguire la sintassi data:
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.
Eseguire il roll forward di tutti i registri che si trovano nella directory dei registri, comprese le ultime modifiche appena prima del guasto dell'unità 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.