DB2 - Yedekleme ve Kurtarma
Bu bölüm, veritabanının yedekleme ve geri yükleme yöntemlerini açıklamaktadır.
Giriş
Yedekleme ve kurtarma yöntemleri, bilgilerimizi güvende tutmak için tasarlanmıştır. Yedekleme ve kurtarma yardımcı programlarını kullanan Komut Satırı Arabirimi (CLI) veya Grafik Kullanıcı Arabirimi'nde (GUI), DB2 UDB'deki veritabanlarının verilerini yedekleyebilir veya geri yükleyebilirsiniz.
Kerestecilik
Günlük dosyaları, uygulama hatalarından kurtarmak için kullanılan hata günlüklerinden oluşur. Günlükler, veritabanındaki değişikliklerin kaydını tutar. Aşağıda açıklandığı gibi iki tür günlük kaydı vardır:
Dairesel günlük kaydı
Yeni bir işlem günlüğü dosyası tahsis etmeye ihtiyaç duyulduğunda eski işlem günlüklerinin üzerine yazılması, böylece günlük dosyalarının sıralarının silinmesi ve yeniden kullanılması yöntemidir. Çevrimdışı modda yalnızca tam yedekleme almanıza izin verilir. yani, tam yedeklemeyi alabilmek için veritabanı çevrimdışı olmalıdır.
Arşiv günlük kaydı
Bu mod, ileri geri kurtarma adı verilen günlük dosyalarını kullanarak Çevrimiçi Yedekleme ve veritabanı kurtarmayı destekler. Yedekleme modu, logretain veya userexit ayarı ON olarak ayarlanarak döngüselden arşive değiştirilebilir. Arşiv günlüğü için, yedekleme ayar veritabanı, DB2 işlemi için yazılabilir bir dizin gerektirir.
Destek olmak
Kullanma Backupkomutuyla tüm veritabanının kopyasını alabilirsiniz. Bu yedek kopya, veritabanı sistem dosyalarını, veri dosyalarını, günlük dosyalarını, kontrol bilgilerini vb. İçerir.
Çevrimdışı ve çevrimiçi çalışırken yedekleme yapabilirsiniz.
Çevrimdışı yedekleme
Syntax: [Aktif uygulamaları / veritabanlarını listelemek için]
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:[Uygulamayı kullanarak uygulamayı zorlamak için. İşlenen kimlik]
db2 "force application (39)"
Output:
DB20000I The FORCE APPLICATION command completed
successfully.
DB21024I This command is asynchronous and may not
be effective immediately.
Syntax: [Veritabanı Bağlantısını sonlandırmak için]
db2 terminate
Syntax: [Veritabanını devre dışı bırakmak için]
db2 deactivate database one
Syntax: [Yedek dosyasını almak için]
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
Çevrimiçi yedekleme
Başlamak için, moddan değiştirmelisiniz. Circular logging -e Archive Logging.
Syntax: [Veritabanının döngüsel günlüğü veya arşiv günlüğü kullanıp kullanmadığını kontrol etmek için]
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) =
Yukarıdaki çıktıda, vurgulanan değerler kapalı modda [logarchmeth1 ve logarchmeth2] 'dir, bu da mevcut veritabanının "CIRCULLAR LOGGING" modunda olduğunu gösterir. 'ARCHIVE LOGGING' modu ile çalışmanız gerekiyorsa, yapılandırma dosyasında bulunan logarchmeth1 ve logarchmeth2 değişkenlerinde yolu değiştirmeniz veya eklemeniz gerekir.
Logarchmeth1'i gerekli arşiv dizini ile güncelleme
Syntax: [Dizin yapmak için]
mkdir backup
mkdir backup/ArchiveDest
Syntax: [Klasör için kullanıcı izinleri sağlamak için]
chown db2inst1:db2iadm1 backup/ArchiveDest
Syntax: [LOGARCHMETH1 yapılandırmasını güncellemek için]
db2 update database configuration for one using LOGARCHMETH1
'DISK:/home/db2inst1/backup/ArchiveDest'
Güvenlik için çevrimdışı yedeklemeyi alabilir, veritabanını etkinleştirebilir ve ona bağlanabilirsiniz.
Syntax: [Çevrimiçi yedekleme almak için]
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
Aşağıdaki komutu kullanarak Yedekleme dosyasını doğrulayın:
Syntax:
db2ckbkp <location/backup file>
Example:
db2ckbkp
/home/db2inst1/ONE.0.db2inst1.DBPART000.20140722112743.001
Yedekleme dosyalarının geçmişini listeleme
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:
Veritabanını yedekten geri yükleme
Veritabanını yedekleme dosyasından geri yüklemek için, verilen sözdizimini izlemeniz gerekir:
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.
Disk sürücüsü arızasından hemen önceki son değişiklikler dahil olmak üzere, günlük dizininde bulunan tüm günlükleri ileri alın.
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.