說(shuō)明:Windows 操作系統(tǒng)下的數(shù)據(jù)庫(kù)備份文件是嵌套在一系列文件夾之下的特殊結(jié)構(gòu)。上例中,D:\DB2_Train 是指?jìng)浞菽夸?,TESTDB.0 是指數(shù)據(jù)庫(kù)名稱為 TESTDB,DB2 是指實(shí)例名稱,NODE0000 是指節(jié)點(diǎn)名稱,CATN0000 是指編目名稱,20070801 是指?jìng)浞莅l(fā)生的年月日,形如YYYYMMDD,181241是指?jìng)浞莅l(fā)生的時(shí)間,精確到秒,也就是指 18 點(diǎn) 12 分 41 秒,形如HHMMSS,最后的 001 則是備份文件的一個(gè)序列號(hào)。
2、 Unix 操作系統(tǒng)下的數(shù)據(jù)庫(kù)備份文件結(jié)構(gòu):
四、 DB2 數(shù)據(jù)庫(kù)備份實(shí)驗(yàn)(附完整命令腳本清單) 4.1 DB2 數(shù)據(jù)庫(kù)實(shí)驗(yàn)準(zhǔn)備工作 (1)、Step1:創(chuàng)建測(cè)試數(shù)據(jù)庫(kù) TestDB 腳本清單 CREATE DATABASE TestDB ON 'D:' USING CODESET GBK TERRITORY CN WITH 'Pjj''s Test DB'; } (2)、Step2:創(chuàng)建數(shù)據(jù)庫(kù)管理表空間 Data_SP(注意路徑,如果沒(méi)有請(qǐng)創(chuàng)建) 腳本清單 CREATE REGULAR TABLESPACE Data_SP PAGESIZE 4 K MANAGED BY DATABASE USING ( FILE 'D:\DB2\Container\TestDB\UserData\UserData' 2560 ) BUFFERPOOL IBMDEFAULTBP; 說(shuō)明:上面的腳本創(chuàng)建了一個(gè)名為 Data_SP 的數(shù)據(jù)庫(kù)管理表空間,該表空間使用的緩沖池為 IBMDEFAULTBP,存儲(chǔ)路徑為 D:\DB2\Container\TestDB\UserData\,存儲(chǔ)文件名為 UserData,大小為 2560 * 4K = 10M,頁(yè)大小為 4K。 (3)、Step3:創(chuàng)建測(cè)試表 TestTable 并插入測(cè)試數(shù)據(jù) 腳本清單 CREATE TABLE TestTable ( ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ), Message VARCHAR(100), PRIMARY KEY(ID) )IN Data_SP; --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('測(cè)試表建立成功'); 說(shuō)明:建立測(cè)試表并插入數(shù)據(jù)是為了稍候驗(yàn)證數(shù)據(jù)庫(kù)恢復(fù)的時(shí)候用的。 (4)、Step3:創(chuàng)建測(cè)試表 TestTable 并插入測(cè)試數(shù)據(jù) 腳本清單 CREATE TABLE TestTable ( ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ), Message VARCHAR(100), PRIMARY KEY(ID) )IN Data_SP; --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('測(cè)試表建立成功'); 4.2 DB2 數(shù)據(jù)庫(kù)脫機(jī)備份與恢復(fù)實(shí)驗(yàn) 腳本清單 --Step1:完全備份數(shù)據(jù)庫(kù)(脫機(jī),備份時(shí)間戳記為 20071121152940) db2 backup db TestDB to D:\DB2_Train --Step2:模擬災(zāi)難,強(qiáng)制刪除數(shù)據(jù)庫(kù) db2 drop db TestDB --Step3:根據(jù)該數(shù)據(jù)庫(kù)完全備份還原數(shù)據(jù)庫(kù) db2 restore db TestDB from D:\DB2_Train taken at 20071121152940 4.3 DB2 數(shù)據(jù)庫(kù)增量備份與恢復(fù)實(shí)驗(yàn) 腳本清單 --數(shù)據(jù)庫(kù)增量備份以及還原實(shí)驗(yàn) --修改數(shù)據(jù)庫(kù)參數(shù) TrackMod ,使之支持?jǐn)?shù)據(jù)庫(kù)進(jìn)行增量備份 db2 update db cfg using TrackMod YES --更改參數(shù)后必須完全離線備份數(shù)據(jù)庫(kù)(脫機(jī),備份時(shí)間戳記為 20071121153818) db2 backup db TestDB to D:\DB2_Train --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('開(kāi)始增量數(shù)據(jù)庫(kù)備份測(cè)試'); --開(kāi)始增量備份(脫機(jī),備份時(shí)間戳記為 20071121154006) db2 backup db TestDB incremental to D:\DB2_Train --刪除數(shù)據(jù)庫(kù),模擬數(shù)據(jù)災(zāi)難 db2 drop db TestDB --首先還原至完全離線備份狀態(tài) db2 restore db TestDB from D:\DB2_Train taken at 20071121153818 --還原至增量離線備份狀態(tài) db2 restore db TestDB incremental automatic from D:\DB2_Train taken at 20071121154006 --注意:上述語(yǔ)句中,有一個(gè) automatic ,它表示無(wú)論有多少個(gè)增量備份,系統(tǒng)將全自動(dòng)檢索恢復(fù)數(shù)據(jù)庫(kù)的順序并自動(dòng)恢復(fù)數(shù)據(jù)庫(kù)。如果沒(méi)有 automatic ,則需要多次手動(dòng)恢復(fù)數(shù)據(jù)庫(kù),很麻煩而且容易出錯(cuò)。 --Step3:根據(jù)該數(shù)據(jù)庫(kù)完全備份還原數(shù)據(jù)庫(kù) db2 restore db TestDB from D:\DB2_Train taken at 20071121152940 --還原數(shù)據(jù)庫(kù)后查詢測(cè)試表數(shù)據(jù)檢驗(yàn)數(shù)據(jù)是否恢復(fù)成功 4.4 DB2 數(shù)據(jù)庫(kù)聯(lián)機(jī)機(jī)備份與恢復(fù)實(shí)驗(yàn) 說(shuō)明:聯(lián)機(jī)備份數(shù)據(jù)庫(kù)可以使數(shù)據(jù)庫(kù)在備份的同時(shí)仍然保持在可用狀態(tài)。要讓數(shù)據(jù)庫(kù)支持聯(lián)機(jī)備份,必須更改數(shù)據(jù)庫(kù)的日志歸檔方式。在脫機(jī)備份模式下,數(shù)據(jù)庫(kù)采用循環(huán)日志方式記錄數(shù)據(jù)庫(kù)日志,在聯(lián)機(jī)備份模式下,數(shù)據(jù)庫(kù)則采用歸檔日志的方式備份數(shù)據(jù)庫(kù)日志。另外,對(duì)于聯(lián)機(jī)備份的數(shù)據(jù)庫(kù)來(lái)說(shuō),活動(dòng)日志和歸檔日志就很重要了,一定要經(jīng)常備份、保存。 腳本清單 --數(shù)據(jù)庫(kù)聯(lián)機(jī)備份以及還原實(shí)驗(yàn) --連接至數(shù)據(jù)庫(kù)并插入測(cè)試數(shù)據(jù) db2 connect to TestDB --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('開(kāi)始聯(lián)機(jī)數(shù)據(jù)庫(kù)備份測(cè)試--完全備份'); --修改數(shù)據(jù)庫(kù)參數(shù),使之支持在線聯(lián)機(jī)備份 db2 update db cfg for TestDB using logretain on trackmod on --執(zhí)行增量、在線備份之前必須執(zhí)行離線全備份一次,否則數(shù)據(jù)庫(kù)將處于備份暫掛的不可用狀態(tài) --(聯(lián)機(jī)完全備份,時(shí)間戳記:20071121160548) db2 backup db TestDB --連接至數(shù)據(jù)庫(kù)并插入測(cè)試數(shù)據(jù) db2 connect to TestDB --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('開(kāi)始聯(lián)機(jī)數(shù)據(jù)庫(kù)備份測(cè)試--增量備份'); --執(zhí)行聯(lián)機(jī)備份,備份同時(shí)再打開(kāi)一個(gè)會(huì)話,模擬應(yīng)用在線(聯(lián)機(jī)增量備份,時(shí)間戳記:20071121152922) db2 backup db TestDB online incremental to D:\DB2_Train --模擬災(zāi)難,刪除數(shù)據(jù)庫(kù)! --重要,此前一定要將活動(dòng)日志文件備份至另一個(gè)路徑,保存好,本例中,活動(dòng)日志保存在 C:\db2admin 下。 db2 drop db TestDB --根據(jù)在線完全備份恢復(fù)數(shù)據(jù)庫(kù) db2 restore db TestDB from D:\DB2_Train taken at 20071121160548 --根據(jù)在線增量備份恢復(fù)數(shù)據(jù)庫(kù) db2 restore db TestDB incremental automatic from D:\DB2_Train taken at 20071121152922 --恢復(fù)后的數(shù)據(jù)庫(kù)處于前滾暫掛的不可用狀態(tài) db2 connect to TestDB --前滾數(shù)據(jù)庫(kù),并指定歸檔日志位置,重要! db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE OVERFLOW LOG PATH ("C:\db2admin") 五. 綜述 對(duì)于數(shù)據(jù)庫(kù)管理人員或者維護(hù)人員來(lái)說(shuō),怎么強(qiáng)調(diào)數(shù)據(jù)庫(kù)備份的重要性都不為過(guò)。 希望本文能拋磚引玉,能讓大家對(duì) IBM DB2 UDB 的數(shù)據(jù)庫(kù)備份與恢復(fù)有一些深入的認(rèn)識(shí)。也希望大家能在本機(jī)上按照本文的腳本認(rèn)真的做一次實(shí)驗(yàn),這樣,你的認(rèn)識(shí)會(huì)更加深刻。 數(shù)據(jù)庫(kù)崩潰和災(zāi)難并不可怕,可怕的是在發(fā)生數(shù)據(jù)庫(kù)崩潰和災(zāi)難的時(shí)候沒(méi)有數(shù)據(jù)庫(kù)備份。這句話與各位數(shù)據(jù)庫(kù)愛(ài)好者共勉。 [ 本帖最后由 suifengling 于 2008-7-3 14:29 編輯 ] |
四、 DB2 數(shù)據(jù)庫(kù)備份實(shí)驗(yàn)(附完整命令腳本清單) 4.1 DB2 數(shù)據(jù)庫(kù)實(shí)驗(yàn)準(zhǔn)備工作 (1)、Step1:創(chuàng)建測(cè)試數(shù)據(jù)庫(kù) TestDB 腳本清單 CREATE DATABASE TestDB ON 'D:' USING CODESET GBK TERRITORY CN WITH 'Pjj''s Test DB'; } (2)、Step2:創(chuàng)建數(shù)據(jù)庫(kù)管理表空間 Data_SP(注意路徑,如果沒(méi)有請(qǐng)創(chuàng)建) 腳本清單 CREATE REGULAR TABLESPACE Data_SP PAGESIZE 4 K MANAGED BY DATABASE USING ( FILE 'D:\DB2\Container\TestDB\UserData\UserData' 2560 ) BUFFERPOOL IBMDEFAULTBP; 說(shuō)明:上面的腳本創(chuàng)建了一個(gè)名為 Data_SP 的數(shù)據(jù)庫(kù)管理表空間,該表空間使用的緩沖池為 IBMDEFAULTBP,存儲(chǔ)路徑為 D:\DB2\Container\TestDB\UserData\,存儲(chǔ)文件名為 UserData,大小為 2560 * 4K = 10M,頁(yè)大小為 4K。 (3)、Step3:創(chuàng)建測(cè)試表 TestTable 并插入測(cè)試數(shù)據(jù) 腳本清單 CREATE TABLE TestTable ( ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ), Message VARCHAR(100), PRIMARY KEY(ID) )IN Data_SP; --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('測(cè)試表建立成功'); 說(shuō)明:建立測(cè)試表并插入數(shù)據(jù)是為了稍候驗(yàn)證數(shù)據(jù)庫(kù)恢復(fù)的時(shí)候用的。 (4)、Step3:創(chuàng)建測(cè)試表 TestTable 并插入測(cè)試數(shù)據(jù) 腳本清單 CREATE TABLE TestTable ( ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ), Message VARCHAR(100), PRIMARY KEY(ID) )IN Data_SP; --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('測(cè)試表建立成功'); 4.2 DB2 數(shù)據(jù)庫(kù)脫機(jī)備份與恢復(fù)實(shí)驗(yàn) 腳本清單 --Step1:完全備份數(shù)據(jù)庫(kù)(脫機(jī),備份時(shí)間戳記為 20071121152940) db2 backup db TestDB to D:\DB2_Train --Step2:模擬災(zāi)難,強(qiáng)制刪除數(shù)據(jù)庫(kù) db2 drop db TestDB --Step3:根據(jù)該數(shù)據(jù)庫(kù)完全備份還原數(shù)據(jù)庫(kù) db2 restore db TestDB from D:\DB2_Train taken at 20071121152940 4.3 DB2 數(shù)據(jù)庫(kù)增量備份與恢復(fù)實(shí)驗(yàn) 腳本清單 --數(shù)據(jù)庫(kù)增量備份以及還原實(shí)驗(yàn) --修改數(shù)據(jù)庫(kù)參數(shù) TrackMod ,使之支持?jǐn)?shù)據(jù)庫(kù)進(jìn)行增量備份 db2 update db cfg using TrackMod YES --更改參數(shù)后必須完全離線備份數(shù)據(jù)庫(kù)(脫機(jī),備份時(shí)間戳記為 20071121153818) db2 backup db TestDB to D:\DB2_Train --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('開(kāi)始增量數(shù)據(jù)庫(kù)備份測(cè)試'); --開(kāi)始增量備份(脫機(jī),備份時(shí)間戳記為 20071121154006) db2 backup db TestDB incremental to D:\DB2_Train --刪除數(shù)據(jù)庫(kù),模擬數(shù)據(jù)災(zāi)難 db2 drop db TestDB --首先還原至完全離線備份狀態(tài) db2 restore db TestDB from D:\DB2_Train taken at 20071121153818 --還原至增量離線備份狀態(tài) db2 restore db TestDB incremental automatic from D:\DB2_Train taken at 20071121154006 --注意:上述語(yǔ)句中,有一個(gè) automatic ,它表示無(wú)論有多少個(gè)增量備份,系統(tǒng)將全自動(dòng)檢索恢復(fù)數(shù)據(jù)庫(kù)的順序并自動(dòng)恢復(fù)數(shù)據(jù)庫(kù)。如果沒(méi)有 automatic ,則需要多次手動(dòng)恢復(fù)數(shù)據(jù)庫(kù),很麻煩而且容易出錯(cuò)。 --Step3:根據(jù)該數(shù)據(jù)庫(kù)完全備份還原數(shù)據(jù)庫(kù) db2 restore db TestDB from D:\DB2_Train taken at 20071121152940 --還原數(shù)據(jù)庫(kù)后查詢測(cè)試表數(shù)據(jù)檢驗(yàn)數(shù)據(jù)是否恢復(fù)成功 4.4 DB2 數(shù)據(jù)庫(kù)聯(lián)機(jī)機(jī)備份與恢復(fù)實(shí)驗(yàn) 說(shuō)明:聯(lián)機(jī)備份數(shù)據(jù)庫(kù)可以使數(shù)據(jù)庫(kù)在備份的同時(shí)仍然保持在可用狀態(tài)。要讓數(shù)據(jù)庫(kù)支持聯(lián)機(jī)備份,必須更改數(shù)據(jù)庫(kù)的日志歸檔方式。在脫機(jī)備份模式下,數(shù)據(jù)庫(kù)采用循環(huán)日志方式記錄數(shù)據(jù)庫(kù)日志,在聯(lián)機(jī)備份模式下,數(shù)據(jù)庫(kù)則采用歸檔日志的方式備份數(shù)據(jù)庫(kù)日志。另外,對(duì)于聯(lián)機(jī)備份的數(shù)據(jù)庫(kù)來(lái)說(shuō),活動(dòng)日志和歸檔日志就很重要了,一定要經(jīng)常備份、保存。 腳本清單 --數(shù)據(jù)庫(kù)聯(lián)機(jī)備份以及還原實(shí)驗(yàn) --連接至數(shù)據(jù)庫(kù)并插入測(cè)試數(shù)據(jù) db2 connect to TestDB --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('開(kāi)始聯(lián)機(jī)數(shù)據(jù)庫(kù)備份測(cè)試--完全備份'); --修改數(shù)據(jù)庫(kù)參數(shù),使之支持在線聯(lián)機(jī)備份 db2 update db cfg for TestDB using logretain on trackmod on --執(zhí)行增量、在線備份之前必須執(zhí)行離線全備份一次,否則數(shù)據(jù)庫(kù)將處于備份暫掛的不可用狀態(tài) --(聯(lián)機(jī)完全備份,時(shí)間戳記:20071121160548) db2 backup db TestDB --連接至數(shù)據(jù)庫(kù)并插入測(cè)試數(shù)據(jù) db2 connect to TestDB --插入測(cè)試數(shù)據(jù) INSERT INTO TestTable(Message) VALUES('開(kāi)始聯(lián)機(jī)數(shù)據(jù)庫(kù)備份測(cè)試--增量備份'); --執(zhí)行聯(lián)機(jī)備份,備份同時(shí)再打開(kāi)一個(gè)會(huì)話,模擬應(yīng)用在線(聯(lián)機(jī)增量備份,時(shí)間戳記:20071121152922) db2 backup db TestDB online incremental to D:\DB2_Train --模擬災(zāi)難,刪除數(shù)據(jù)庫(kù)! --重要,此前一定要將活動(dòng)日志文件備份至另一個(gè)路徑,保存好,本例中,活動(dòng)日志保存在 C:\db2admin 下。 db2 drop db TestDB --根據(jù)在線完全備份恢復(fù)數(shù)據(jù)庫(kù) db2 restore db TestDB from D:\DB2_Train taken at 20071121160548 --根據(jù)在線增量備份恢復(fù)數(shù)據(jù)庫(kù) db2 restore db TestDB incremental automatic from D:\DB2_Train taken at 20071121152922 --恢復(fù)后的數(shù)據(jù)庫(kù)處于前滾暫掛的不可用狀態(tài) db2 connect to TestDB --前滾數(shù)據(jù)庫(kù),并指定歸檔日志位置,重要! db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE OVERFLOW LOG PATH ("C:\db2admin") 五. 綜述 對(duì)于數(shù)據(jù)庫(kù)管理人員或者維護(hù)人員來(lái)說(shuō),怎么強(qiáng)調(diào)數(shù)據(jù)庫(kù)備份的重要性都不為過(guò)。 希望本文能拋磚引玉,能讓大家對(duì) IBM DB2 UDB 的數(shù)據(jù)庫(kù)備份與恢復(fù)有一些深入的認(rèn)識(shí)。也希望大家能在本機(jī)上按照本文的腳本認(rèn)真的做一次實(shí)驗(yàn),這樣,你的認(rèn)識(shí)會(huì)更加深刻。 數(shù)據(jù)庫(kù)崩潰和災(zāi)難并不可怕,可怕的是在發(fā)生數(shù)據(jù)庫(kù)崩潰和災(zāi)難的時(shí)候沒(méi)有數(shù)據(jù)庫(kù)備份。這句話與各位數(shù)據(jù)庫(kù)愛(ài)好者共勉。 [ 本帖最后由 suifengling 于 2008-7-3 14:29 編輯 ] |
聯(lián)系客服