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.