Esempio: ripristino dei dati partizionati
Questo esempio mostra come ripristinare i dati di backup, inclusi i dati partizionati.
Nei seguenti scenari, il blocco USING BACKUP CATALOG viene utilizzato perché il catalogo del database è danneggiato o inaccessibile. Se così non fosse, non si includerebbe il blocco USING BACKUP CATALOG e si cercherebbe di connettersi al database e di utilizzare il catalogo corrente Optim™ High Performance Unload e si tenterebbe di connettersi al database Db2® e di utilizzare il catalogo corrente.
Si supponga che il database DBPROD sia danneggiato o inaccessibile, ma si dispone di uno o più backup Db2 nella directory home del proprietario dell'istanza. DBPROD era composto da due tablespace (TS_RECETTE e TS_CREDIT) su tre partizioni del database: 1, 10 e 100. Ogni tablespace contiene due tabelle: TB_PERSON e TB_ENTERPRISE. Per ripristinare tutti i dati nel database DBPROD, utilizzare il seguente file di controllo:
GLOBAL
DB2 NO
USING BACKUP CATALOG DBPROD FROM "/home/db2inst1";
;
UNLOAD DATABASE DBPROD
PART(1,10,100)
OUTFILE("/home/db2inst1/data/DBPROD_Recup.out")
FORMAT DEL
USING BACKUP DATABASE DBPROD FROM "/home/db2inst1";
;Al termine di questo scaricamento, si avranno 4 file perché ci sono 4 tabelle utente nel database. I nomi file inizieranno con il nome file specificato nella clausola OUTFILE. Ad esso si aggiungeranno il nome del tablespace, il nome del creatore della tabella e il nome della tabella. In questo esempio, i 4 file sono:/home/db2inst1/data/DBPROD_Recup.out_TS_RECETTE_DB2INST1_TB_PERSON
/home/db2inst1/data/DBPROD_Recup.out_TS_RECETTE_DB2INST1_TB_ENTREPRISE
/home/db2inst1/data/DBPROD_Recup.out_TS_CREDIT_DB2INST1_TB_PERSON
/home/db2inst1/data/DBPROD_Recup.out_TS_CREDIT_DB2INST1_TB_ENTREPRISE
Se si dispone di backup di tablespace sia per il catalogo che per i dati utente, per estrarre la singola tabella TB_PERSON che si trova nel tablespace TS_RECETTE da un backup di tablespace, utilizzare il seguente file di controllo:
GLOBAL
USING BACKUP CATALOG DBPROD TABLESPACE ("SYSCATSPACE") FROM "/home/db2inst1";
DB2 NO ;
UNLOAD TABLESPACE TS_RECETTE PART(1,10,100)
OUTFILE("/home/db2inst1/data/DBPROD_TB_PERSON.out")
FORMAT DEL
USING BACKUP DATABASE DBPROD TABLESPACE("TS_RECETTE") FROM "/home/db2inst1";
SELECT * FROM TB_PERSON
;
Il file risultante sarà:/home/db2inst1/data/DBPROD_TB_PERSON.outche conterrà tutti i dati.Importante:
- Se si sta eseguendo il ripristino da un database partizionato in modalità autonoma, è necessario specificare il numero o i numeri di partizione del database utilizzando la clausola PART. Altrimenti, Optim High Performance Unload viene visualizzato un messaggio di errore. Optim High Performance Unload può acquisire le informazioni richieste dal catalogo da un backup dello spazio della tabella del catalogo o da un backup offline completo del database. Ciò consente di estrarre una tabella che è stata accidentalmente eliminata e non è più nel catalogo Db2 . Oppure è possibile eseguire l'estrazione su un sistema diverso da quello in cui è stato prodotto il backup.
- Se si desidera scaricare da un backup anche le informazioni del catalogo recuperate da un backup, è necessario utilizzare una clausola USING BACKUP CATALOG formattata correttamente per indicare Optim High Performance Unload che il catalogo deve essere recuperato in questo modo. La partizione del database che contiene il catalogo può essere specificata esplicitamente in questa clausola, utilizzando l'opzione CATN con il numero di partizione del database appropriato, specialmente se il catalogo non si trova nella partizione del database #0. Altrimenti, Optim High Performance Unload viene visualizzato un messaggio di errore.