国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
彭大師淺談IBM DB2的數(shù)據(jù)庫(kù)備份與恢復(fù)
----彭建軍

摘要:本文探討了基于 IBM DB2 的各種數(shù)據(jù)庫(kù)備份與恢復(fù)策略,并附有完整的實(shí)驗(yàn)步驟。本文試圖通過(guò)具體的實(shí)驗(yàn)使讀者領(lǐng)會(huì)各種數(shù)據(jù)庫(kù)備份方式的優(yōu)劣和異同,并掌握 IBM DB2 的數(shù)據(jù)庫(kù)備份與恢復(fù)技術(shù)。

    若無(wú)特殊說(shuō)明,以下數(shù)據(jù)庫(kù)備份與恢復(fù)的試驗(yàn)環(huán)境均為 Windows XP + IBM DB2 V9 企業(yè)版,同樣的語(yǔ)句也在 AIX 5.2 + IBM DB2 V8.2 上驗(yàn)證通過(guò)。

一、 數(shù)據(jù)庫(kù)備份的重要性

    在信息日趨發(fā)達(dá)的時(shí)代,數(shù)據(jù)顯得尤其重要。如何保障數(shù)據(jù)的完整性和安全性呢?如何避免數(shù)據(jù)災(zāi)難事故的發(fā)生呢?數(shù)據(jù)庫(kù)備份作為數(shù)據(jù)安全和完整最有利保障手段的重要性就不言而喻了。

    數(shù)據(jù)庫(kù)備份的重要性主要體現(xiàn)在:

1、提高系統(tǒng)的高可用性和災(zāi)難可恢復(fù)性;(在數(shù)據(jù)庫(kù)系統(tǒng)崩潰的時(shí)候,沒(méi)有數(shù)據(jù)庫(kù)備份怎么辦!?)

2、使用數(shù)據(jù)庫(kù)備份還原數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)系統(tǒng)崩潰時(shí)提供數(shù)據(jù)恢復(fù)最小代價(jià)的最優(yōu)方案;(總不能讓客戶重新填報(bào)數(shù)據(jù)吧?。浚?

3、沒(méi)有數(shù)據(jù)就沒(méi)有一切,數(shù)據(jù)庫(kù)備份就是一種防范災(zāi)難于未然的強(qiáng)力手段;(沒(méi)有了數(shù)據(jù),應(yīng)用再花哨也是鏡中花水中月)

4、對(duì)于DBA來(lái)說(shuō),最首要也是最重要的任務(wù)就是數(shù)據(jù)庫(kù)備份。

二、 DB2 數(shù)據(jù)庫(kù)備份的方式與分類

1、按照數(shù)據(jù)庫(kù)備份對(duì)數(shù)據(jù)庫(kù)的使用影響來(lái)劃分
A、聯(lián)機(jī)備份(也稱熱備份或在線備份)
B、脫機(jī)備份(也稱冷備份或離線備份)

    說(shuō)明:聯(lián)機(jī)備份和脫機(jī)備份最大的不同在于:聯(lián)機(jī)備份數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)仍然可以供用戶使用,而脫機(jī)備份數(shù)據(jù)庫(kù)則不行。脫機(jī)備份數(shù)據(jù)庫(kù)時(shí),必須斷開(kāi)所有與數(shù)據(jù)庫(kù)有連接的應(yīng)用后才能進(jìn)行。

2、按照數(shù)據(jù)庫(kù)的數(shù)據(jù)備份范圍來(lái)劃分
A、完全備份
B、增量備份

    說(shuō)明:完全備份數(shù)據(jù)庫(kù)是指?jìng)浞輸?shù)據(jù)庫(kù)中的所有數(shù)據(jù),而增量備份只是備份數(shù)據(jù)庫(kù)中的部分?jǐn)?shù)據(jù)。至于增量備份到底備份哪些數(shù)據(jù),稍候會(huì)提到。
3、增量備份的兩種實(shí)現(xiàn)方式
A、增量備份(也稱累計(jì)備份)
B、delta備份
  
    說(shuō)明:這兩種備份方式的嚴(yán)格定義如下,
    增量備份是自最近成功的完全備份以來(lái)所有更改的數(shù)據(jù)的備份。
    delta 備份則是上一次成功的完全、增量或 delta 備份以后所做更改的數(shù)據(jù)的備份。

    這里請(qǐng)讀者們仔細(xì)的看上面兩個(gè)增量備份方式的定義,注意這兩種備份方式的細(xì)微差別。這里我們舉一個(gè)例子來(lái)說(shuō)明。

    假設(shè)有一個(gè)數(shù)據(jù)庫(kù),它每天都有部分?jǐn)?shù)據(jù)在發(fā)生變化。我們星期一晚上對(duì)該數(shù)據(jù)庫(kù)做了一次完全備份,星期二晚上對(duì)該數(shù)據(jù)庫(kù)做了一次增量備份A(注:這里的增量備份是指累計(jì)備份,下同),星期三晚上又做了一次增量備份B,星期四則做了一次delta 備份。

    那么,我們可以得出以下結(jié)論:
•星期一的數(shù)據(jù)庫(kù)備份包含了所有的數(shù)據(jù)。
•星期二沒(méi)有變動(dòng)過(guò)的數(shù)據(jù)沒(méi)有發(fā)生備份,在星期二變動(dòng)過(guò)的數(shù)據(jù)會(huì)備份,并且備份到增量備份A中。
•星期三的備份中含有自星期一完全備份以來(lái)發(fā)生過(guò)變動(dòng)的所有數(shù)據(jù),包含了星期二和星期三發(fā)生過(guò)變動(dòng)的數(shù)據(jù)。顯然,增量備份A 被 增量備份 B 包含。
•星期四做的是delta備份,注意,它會(huì)也只會(huì)備份自星期三備份之后變動(dòng)過(guò)的數(shù)據(jù)。


三、 DB2 備份文件的結(jié)構(gòu)介紹
在不同的操作系統(tǒng)下,DB2 的備份文件的結(jié)構(gòu)是不同的,這里概要地介紹一下。

1、 Windows 操作系統(tǒng)下的數(shù)據(jù)庫(kù)備份文件結(jié)構(gòu): 

   
說(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):

 


    說(shuō)明:Unix 操作系統(tǒng)下的數(shù)據(jù)庫(kù)備份文件就是一個(gè)文件。上例中,HTDC 是指數(shù)據(jù)庫(kù)名稱,db2inst1 是指實(shí)例名稱,NODE0000 是指節(jié)點(diǎn)名稱,CATN0000 是指編目名稱,20070310002357 是指?jìng)浞莅l(fā)生的具體時(shí)間,形如YYYYMMDDHHMMSS,同樣地,它的時(shí)間精確到秒,也就是指 2007年3月10日0點(diǎn)23分57秒發(fā)生備份,最后的 001 則是備份文件的一個(gè)序列號(hào)。
 
四、 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 編輯 ]
四、 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 編輯 ]

1
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
備份系統(tǒng)日常運(yùn)維及故障處理需解決的三大類問(wèn)題 | 進(jìn)階技巧
sql server備份方案
DB2 在線備份恢復(fù)
管理 DB2 UDB for iSeries 的模式和日志
Oracle RMAN快速入門指南--(4)
RMAN
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服