Jquery中文網 www.lfcgx.club
Jquery中文網 >  數據庫  >  DB2  >  正文 DB2實驗教程:數據庫恢復

DB2實驗教程:數據庫恢復

發布時間:2014-07-20   編輯:www.lfcgx.club
DB2實驗教程:數據庫恢復

實驗任務:
A.為數據庫和表空間創建備份鏡像;
B. 從備份鏡像恢復數據庫;
C. 對數據庫或表空間進行完全的前滾恢復;
D.在異常狀態下重新激活數據庫。

一. 決定DB2目前的日志配置參數
1.本實驗開始之前應先在命令中心中執行腳本recovrst,將數據庫的配置參數設置成本實驗所需的值。
2.在命令中心中輸入并執行connect to musicdb,激活MUSICDB數據庫。
3.控制中心中右鍵單擊MUSICDB數據庫,在彈出菜單中選擇“配置參數”,再在“數據庫配置—MUSICDB”窗口中查看“日志”下的LOGFILSIZ的值,該參數的值被設置為6,遠小于 Windows平臺下它的默認值250。
4.查看主日志文件的數目,DB2將于什么時候分配這些主日志文件?
在“數據庫配置—MUSICDB”窗口中的“日志”下可查看到LOGPRIMARY參數值為3,當我們發出ACTIVE DATABASE命令或者第一個應用程序連接到數據庫時,DB2將會分配這三個主日志文件,且其中每個日志文件的大小為LOGFILSIZ+2個4KB頁,因此所有主日志文件將占據3*(6+2)*4KB,即96KB空間。
5.查看輔助日志文件的數目,DB2將于何時分配這些輔助日志文件?
輔助日志文件會在事務未提交但主日志文件寫滿的時候根據需要一次分配一個(直到數據庫配置參數LOGSECOND規定的數目),本實驗中LOGSECOND為默認值2,因此系統最多允許兩個輔助日志文件。輔助日志文件的大小同樣由參數LOGFILSIZ指定。
6.查看當前系統所使用的日志類型(循環日志還是歸檔日志),哪些參數可以提供日志類型的相關信息。
LOGRETAIN和USEREXIT可被用來設置系統采用何種日志類型,本實驗中這兩個參數均被設為默認值否,因此系統采用循環日志方式。如果LOGRETAIN被設為Recovery或者USEREXIT被設為Yes,那么系統將采用歸檔日志方式。
7.考慮循環日志能夠支持崩潰恢復、版本恢復、前滾恢復中的哪些類型?
循環日志只能支持崩潰恢復和版本恢復,但還不能支持前滾恢復!
8.考慮日志文件保存在哪里?
配置參數中的LOGPATH指定日志文件的保存路徑,因此本實驗的日志文件保存在X:inst1NODE0000SQL00001SQLOGIR下。
9.數據庫的工作單元可能被意外地中斷,假如部分工作單元的所有變更完成和提交之前發生了電源故障,那么系統就需要執行崩潰恢復再次回到一致狀態。命令restart database可以實現這個功能。如果AUTORESTART被設置成開(默認方式),那么崩潰發生后,應用程序首次連接到數據庫時將會自動啟動崩潰恢復機制。本實驗AUTORESTART參數被設置為開。
10.Windows命令提示符下,進入目錄X:inst1NODE0000SQL00001。
11.輸入命令:dir /w,查看該路徑下有哪些文件和目錄。
12.輸入命令cd SQLOGDIR和dir /w可以查看到該目錄下有三個日志文件,這與參數設置相符。
13.選擇命令中心的“交互式”標簽頁,再選擇“命令中心—>選項”菜單,在“命令中心選項”窗口中選擇“執行”標簽頁,確保“自動落實SQL語句”未被選中。點擊“確定”按鈕。
執行connect to musicdb
執行update stock set qty=qty+1
14.如果上步執行后系統顯示錯誤則跳到下一步,如果沒有顯示錯誤信息,則繼續執行:
update stock set qty=qty-1,這時系統會返回SQL0964C。
15.為查看詳細的錯誤信息,輸入并執行 ? SQL0964。回答為什么更新操作會失敗。
16.選擇命令中心的“交互式”標簽頁,再選擇“命令中心—>選項”菜單,在“命令中心選項”窗口中選擇“執行”標簽頁,選中“自動落實SQL語句”,點擊“確定”按鈕。
17.本實驗中日志文件故意被設置得很小,所以上面的更新操作未能成功完成,在命令中心中輸入并執行如下命令:
rollback
18.進入日志保存目錄,查看該目錄下的文件有幾個:
cd X:inst1NODE0000SQL00001SQLOGIR
dir /w
可查看到該目錄下現在多了兩個文件,當采用循環日志且主日志文件已滿時,DB2就會分配這兩個多出來的文件作為輔助日志文件。
輸入cd ,進入根目錄下。

二. 循環日志條件下的數據庫恢復
1. 在Windows命令提示符下輸入md restore 在X驅動器下建立一個目錄用來保存數據庫備份。
2. 試圖對MUSICDB數據庫進行聯機備份。
在控制中心中右鍵單擊MUSICDB數據庫,在彈出菜單中選擇“備份”。
在“備份向導”窗口中,選擇“映象”標簽頁,選擇“介質類型”為文件系統,點擊“添加”按鈕,路徑一欄輸入x:restore
點擊向導的“選項”標簽頁,這時注意“可用性”下的“聯機”選項為灰色不可選,只能進行脫機備份。
3. 對MUSICDB數據庫進行脫機備份,
在上步的“備份向導”窗口中“選項”標簽頁中選擇可用性為“脫機”,不要選中“在啟動脫機操作之前停頓數據庫”選項;
點擊備份向導的“調度”標簽頁,選擇“立即運行而不保存歷史任務”,然后點擊“完成”按鈕。
4. 系統返回SQL01035表明備份失敗,根據提示消息可知目前正有另一個程序在連接并使用要脫機備份的數據庫,點擊“DB2 消息”窗口的“關閉”按鈕。
5. 為了確保所要備份的數據庫的完整性,脫機備份要求獨占該數據庫。因為剛才我們通過命令中心連接到數據庫且該連接一直保持到現在,所以脫機備份不能成功。在命令中心中輸入如下命令強制所有用戶或應用程序切斷與該數據庫的連接:
force application all
terminate
6. 按照第三步重新脫機備份數據庫MUSICDB,這次備份成功。
7. 記錄這次備份的時間截。
在控制中心中選擇“工具—>日志”菜單,在“日志”窗口中選擇“數據庫歷史”標簽頁,點擊“數據庫”一欄右邊的“…”省略號按鈕,選擇相應的系統名、實例名、數據庫名,然后點擊“確定”按鈕;
按“開始日期”排序MUSICDB所有事件列表,那么本次備份應在列表最上端,記錄下該備份的開始日期及時間;
關閉“日志”窗口,然后回到控制中心來。
8. 如果要使用restore命令而不是控制中心來恢復數據庫,且備份目錄下存在數據庫的多個備份鏡象,那么,為了指定用哪一份(何時產生的)備份文件,備份的時間截信息就是必須的。
如果使用磁盤備份數據庫,那么備份鏡象的文件名就包含著時間截信息,如果使用磁帶或者Tivoli Storage Manager管理的設備作為備份的存儲介質,那么備份鏡像的頭部也包含著相關的時間信息。
9. 另外一種查看備份相關信息的方法是使用list backup命令,回顧上節實驗我們使用load工具之前也備份了數據庫MUSICD。命令中心中輸入如下命令:
terminate ;
list backup all for musicdb ;
10.查看上步命令的輸出列表,注意所有的時間截及表空間信息。
11.在list backup命令中可以不使用ALL 關鍵字,可以指定一個特定的時間截或對象名來限制輸出結果,例如要查看某時間以后對MUSICDB進行的所有備份,可以輸入:
12.list backup since yyyymmddhh for MUSICDB
13.數據庫管理器所維護的有關備份的歷史信息如果從不刪除會變得非常多,通過prune history命令可以整理那些備份的相關信息。命令行處理器或命令中心中輸入命令查看的prune的在線幫助信息:? Prune
14.在Windows命令提示符下輸入如下命令,可以發現備份的目錄結構及文件名與備份的數據庫名、實例名、時間截之間的對應關系:
x:
cd restore
dir
cd MUSICDB.0
dir
cd inst1
dir
cd NODE0000
dir
cd CATN0000
dir
cd yyyymmdd
dir
可見備份文件名的格式都為“hhmmss.001”。
15.本實驗中數據庫MUSICDB備份后其中數據還未經過任何改動,現在的數據與備份中的數據完全相同。首先執行下面SQL語句選擇出編號為77的藝術家的名字和他的專輯名:
select name, title from artists a, albums b where a.artno =77 and a.artno= b.artno;
16.將編號為77的藝術家的名字改為“Melanie and the Mechanics”,并且將編號為261的專輯名改為“Unmaterial Girl”:
update artists set name='Melanie and the Mechanics' where artno=77;
update albums set title ='Unmaterial Girl' where itemno=261;
17.執行下列連接查詢查看上步的修改結果:
select name, title from artists a, albums b where a.artno =77 and a.artno= b.artno;
可見這次的輸出與前面的查詢結果不同。
18.假如現在MUSICDB所在的磁盤出現故障,我們將使用剛剛創建的備份鏡像對MUSICDB進行恢復。輸入“?restore”命令獲得恢復命令的幫助信息。
19.恢復前為確保當前沒有用戶或應用程序連接到MUSICDB數據庫,命令中心中輸入并執行如下命令:
force application all;
terminate;
20.從X:restore目錄下讀取備份文件對MUSICDB進行恢復。
在控制中心中右鍵單擊MUSICDB數據庫,在彈出菜單中選擇“復原”;
選擇“復原數據向導”窗口的“介紹”頁面,選擇“復原到現有數據庫”;
選擇向導的“復原對象”頁面,選擇“復原整個數據庫”;
選擇向導的“可用的映象”頁面,選擇剛剛備份的映象,然后點擊“>”按鈕;
選擇向導的“調度”頁面,選擇“立即運行而不保存歷史任務”;
選擇向導的“總結”頁面,點擊“顯示命令”按鈕查看全部restore命令;
點擊向導的“完成”按鈕,等待一段時間后系統彈出“DB2 消息”窗口顯示命令成功完成,點擊“確定”按鈕關閉該消息窗口。
21.重新連接到數據庫,輸入并執行下列連接查詢語句:
connect to MUSICDB;
select name, title from artists a, albums b where a.artno =77 and a.artno= b.artno;
可見這次查詢的輸出結果反映的是更新前的原數據,所以恢復操作成功完成。
22.上面的恢復操作雖然復原了更新前的數據,但是因為DB2使用了循環日志方式,無法前滾,所以無法救回備份后對數據庫所作的更新。

三. 歸檔日志條件下的數據庫恢復
1. 在Windows命令提示符下輸入如下命令創建數據庫的備份目錄(X:RESTORE):
MD RESTORE
2. 更改數據庫配置文件以采用歸檔日志方式。
在命令中心中輸入并執行下列命令:
update db cfg for musicdb using logretain recovery
四. 重新設置實驗環境
完成下列任務以確保剩余實驗的環境設置正確:
1. 在命令中心中導入并執行X:cf23clrec腳本。
2. 檢查數據庫配置文件,確保目前數據庫采用循環日志方式。
命令中心中輸入并執行下列語句:
connect to musicdb
get db cfg for musicdb
可見輸出結果中“恢復狀態的日志保留”為NO。

您可能感興趣的文章:
收集了一些常用的DB2命令(附例子)
DB2基礎知識(3)DB2數據庫的備份和恢復
DB2實驗教程:數據庫恢復
DB2實驗教程:DB2實驗環境設置
DB2基礎知識(2)DB2數據庫的安裝
db2常用命令大全-基礎篇
DB2基礎知識(1)了解DB2
在使用DB2 RDBMS時的幾個重要命令
如何獲取DB2 V9.5版本中的DPF許可證
DB2常用知識

[關閉]
矮木头走势图
广东11选5走势图 腾讯欢乐麻将为什么进不去 牛彩网3d预测 世界杯比分预测软件 30选5今天开奖号 北京麻将怎么下载 15选5浙走势图 qq分分彩 190aa踢球者即时指数 幸运11选5精准规律 骆驼股份股票 彩客网篮球比分直播 15选5走势图20 足球彩票比分频道 广西赌多大算赌钱 快乐双彩开奖结果查