我用DB2的這幾年(二)
2024-09-06 23:58:01
供稿:網(wǎng)友
題外話
上次寫的東西發(fā)表以后有人提意見說我寫的太羅索,那我在這里把前次的東西簡(jiǎn)明扼要的提議下,就是我裝db2數(shù)據(jù)庫之后私自修改了db2admin用戶的密碼,造成db2服務(wù)無法正常啟動(dòng);因此建議大家以后修改db2admin用戶密碼的時(shí)候要慎重;不過還是有辦法解決的,至于怎么做請(qǐng)你找我上次的文章把,我還是少說為妙~~
備份和恢復(fù)數(shù)據(jù)庫
有一天,別人扔給我一個(gè)ibm的本子,說是要演示一個(gè)系統(tǒng);需要恢復(fù)一個(gè)demo數(shù)據(jù)庫。我當(dāng)時(shí)說我不會(huì)恢復(fù)數(shù)據(jù)庫阿,他說沒有關(guān)系,里面有恢復(fù)數(shù)據(jù)庫的步驟說明。我打開一看,果然寫得很詳細(xì),首先打開db2控制中心(你說這不是廢話嗎),后面還有更變態(tài)的話,如果你不知道怎么打開控制中心的話,在開始菜單中找到ibmdb2項(xiàng)進(jìn)入之后找到db2控制中心然后單擊(ft!把我當(dāng)阿甘了!我也不至于弱到這個(gè)地步吧!看完這句話我嚴(yán)重郁悶了幾分鐘~~)。。。。。。
幾分鐘之后,他拍了拍我,問我好了沒有;我說還沒有,馬上就好。接著往下看,好像有料;是講怎么根據(jù)備份文件恢復(fù)數(shù)據(jù)庫的,這個(gè)master在文檔中是這么描述的:在數(shù)據(jù)庫上選擇創(chuàng)建數(shù)據(jù)庫里面的根據(jù)備份創(chuàng)建數(shù)據(jù)庫,然后在彈出的頁面中設(shè)置新建數(shù)據(jù)庫的屬性數(shù)據(jù)庫名阿別名阿什么的;下一步在備份映像頁中設(shè)置數(shù)據(jù)庫備份的信息,他在這里特別提到的是需要選擇人工輸入備份映像信息的選項(xiàng),然后數(shù)據(jù)庫名稱就是備份文件的最高一級(jí)目錄名就是帶sample.0的那個(gè)目錄的sample,同時(shí)需要指定備份文件的時(shí)間戳,具體方式是看最后一級(jí)目錄名稱和最終的文件名稱例如20031204/180623.001,那么它的時(shí)間戳就是2003-12-04 18:06:23。如此這般設(shè)置就可以ok啦。
不過,在做數(shù)據(jù)庫恢復(fù)的時(shí)候還要關(guān)注一下另外幾個(gè)頁面的內(nèi)容:重定向表空間和前滾;這些曾經(jīng)一度讓我十分頭疼。
首先是表空間的重定向,在以往的數(shù)據(jù)庫恢復(fù)中我一般都是按照備份數(shù)據(jù)庫的缺省表空間容器路徑恢復(fù)的,有那么幾次就是死活都恢復(fù)不成功,察看恢復(fù)作業(yè)中有文件系統(tǒng)已滿、驅(qū)動(dòng)器不允許進(jìn)行些操作等錯(cuò)誤信息(恢復(fù)作業(yè)會(huì)在db2日志中心生成一條作業(yè)信息,可以通過系統(tǒng)提示的作業(yè)id去查找錯(cuò)誤信息)。經(jīng)查找原因一個(gè)是容器路徑所指定的驅(qū)動(dòng)器沒有足夠的空間另外一個(gè)原因就是容器路徑指向光驅(qū)或者其他網(wǎng)絡(luò)驅(qū)動(dòng)器。尤其是在機(jī)器上存在多個(gè)數(shù)據(jù)庫的時(shí)候要特別注意重定向表空間,否則新恢復(fù)的數(shù)據(jù)庫按照指定表空間恢復(fù)是不會(huì)提示是否有另外的數(shù)據(jù)庫使用了相同的數(shù)據(jù)庫表空間的容器。我曾經(jīng)有一次比較慘痛的教訓(xùn),就是花了一個(gè)星期做的演示數(shù)據(jù)就這么費(fèi)了。
而如果不取消恢復(fù)數(shù)據(jù)庫的處于前滾暫掛狀態(tài)的選項(xiàng),在恢復(fù)成功后使用數(shù)據(jù)庫會(huì)報(bào)錯(cuò)“數(shù)據(jù)庫處于前滾暫掛”從而連不上數(shù)據(jù)庫。后來發(fā)現(xiàn)有一個(gè)辦法好象能夠解決就是恢復(fù)成功數(shù)據(jù)庫后在數(shù)據(jù)庫上右鍵選擇“停止前滾”的操作吧。
以上所說的都是對(duì)于脫機(jī)數(shù)據(jù)庫備份文件的恢復(fù),關(guān)于聯(lián)機(jī)備份的恢復(fù)會(huì)在后面的內(nèi)容中說明。
至于備份數(shù)據(jù)庫比較簡(jiǎn)單,backup db dbname to backpath 然后等待幾分鐘就好啦。我就不羅嗦了。
待續(xù)~~
2004-02-18(剛看完中國隊(duì)比賽)