轉儲簡介
指DBA將整個資料庫複製到磁帶或另一個磁碟上保存起來的過程
這些備用的數據文本稱為後備副本或後援副本。
轉儲方法
靜態轉儲
當系統中無運行事務時進行轉儲,轉儲開始時資料庫處於一致狀態,轉儲期間不允許對資料庫的任何存取、修改活動。
優點:實現簡單。
缺點:降低了資料庫的可用性——>轉儲必須等用戶事務結束;新的事務必須等轉儲結束。
動態轉儲
轉儲操作與用戶事務並發進行,轉儲期間允許對資料庫進行存取或修改。
優點:不用等待正在進行的用戶事務結束;不會影響新事務的運行
缺點:不能保證副本中的數據正確有效
利用動態轉儲得到的副本進行故障恢復
1、需要把動態轉儲期間各事務對資料庫的修改活動登記下來,建立日誌檔案
2、後備副本加上日誌檔案才能把資料庫恢復到某一時刻的正確狀態。
海量和增量轉儲
海量轉儲:每次轉儲全部資料庫
增量轉儲:只轉儲上次轉儲後更新過的數據
二者比較:
從恢復角度看,使用海量轉儲得到的後備副本進行恢復往往更方便
但如果資料庫很大,事務處理又十分頻繁,則增量轉儲方式更實用有效。
轉儲策略
1、定期進行數據轉儲,製作後備副本。但是轉儲又是十分耗費時間和資源的,不能頻繁進行。
2、DBA應該根據資料庫使用情況確定適當的轉儲周期和方法
例如:每天晚上或每周進行一次動態增量轉儲;每月進行一次靜態海量轉儲。
相關命令
如果出現災難性錯誤(例如恢復日誌毀壞),可使用此命令作為轉儲、重新初始化和重新裝入伺服器資料庫的第一個步驟,而不能使用 DSMSERV RESTORE DB 命令。DSMSERV DUMPDB 處理期間不允許其它伺服器活動。
DSMSERV DUMPDB 處理完成以後,執行下列步驟:
發出 DSMSERV LOADFORMAT 命令可重新初始化資料庫和恢復日誌。
發出 DSMSERV LOADDB 命令可重新裝入資料庫。
如有必要,發出 DSMSERV AUDITDB 命令可定位和更正任何資料庫的不一致性。
注意:
DSMSERV LOADDB 命令的輸出結束處的訊息指示是否必須審計資料庫。如果停止伺服器時伺服器無反應,則不需要 DSMSERV AUDITDB 命令。
注意:DSMSERV DUMPDB 命令只支持使用手工庫(在 DEFINE LIBRARY 命令中 LIBTYPE=MANUAL)。
必須具有一個包括對此設備類的定義的設備配置檔案和任何需要的庫和驅動器。您還必須通過使用伺服器選項檔案中的 DEVCONFIG 選項指定該設備配置檔案的名稱。如果先前在伺服器選項檔案中包括了 DEVCONFIG 選項,然後啟動了伺服器,則設備配置檔案應是可用的。如果設備配置檔案已經丟失或從未創建,請進行以下操作之一:
在轉儲資料庫之前,請考慮下列各項:
在將資料庫轉儲到順序存取介質之前,請估計需要多少介質。如果無法啟動伺服器,則使用現有資料庫卷的大小。如果可啟動伺服器,則通過這些步驟估計其大小:
發出 QUERY DB 命令。
從 QUERY DB 命令的輸出,將已使用的頁面數乘以 4096 位元組,確定資料庫所占用的空間。
將步驟 2 的乘積除以單個介質的容量,可估計所需的介質數。
如果可能,且如果需要,使用 LABEL LIBVOL 命令對其它磁帶卷標號。
轉儲時,使用臨時卷可確保有空間可用於存儲資料庫。不管使用專用卷還是臨時卷,都在轉儲期間記錄每個已安裝卷的標籤名稱和序列。DSMSERV DUMPDB 命令使用的卷不記錄在順序卷歷史記錄信息中。
如果沒有足夠的預先標號的專用或臨時卷用於轉儲資料庫,則您將需要安裝並啟動第二個伺服器並使用它為磁帶卷標號(使用 LABEL LIBVOL 命令)。
轉儲進程中不訪問伺服器恢復日誌。因此,轉儲時未寫到資料庫的資料庫條目是不記錄的。在災難性故障後的恢復期間,可能無法恢復最新的資料庫更新。
注意:
當裝入或恢複數據庫時,將更改伺服器到伺服器通信驗證令牌。驗證令牌是資料庫的一種屬性,它並不存儲在資料庫本身。令牌的一部分是資料庫的安裝日期與時間。對於那些已對伺服器到伺服器通信定義的伺服器,必須發出帶有 FORCESYNC=YES 的 UPDATE SERVER 命令。
參數
DEVclass指定與資料庫轉儲將被寫入的卷關聯的設備類名稱。
Scratch指定臨時卷是否可用於轉儲資料庫。 預設值是 YES。
Yes可使用臨時卷。如果在 VOLUMENAMES 參數上包括了一系列卷,則僅在已指定的卷上的空間不足以轉儲資料庫的情況下才使用臨時卷。如果與指定的設備類關聯的設備類型為 FILE,則將基於某個時間戳記生成臨時卷的檔案名稱。
No不能使用臨時卷。必須在 VOLUMENAMES 參數上包括一系列卷,才能包含所有的資料庫數據。
VOLumenames指定要用於轉儲資料庫的卷。此參數是可選的,但如果 SCRATCH=NO,則必須指定此參數。如果不指定此參數而指定或假定了 SCRATCH=YES,則使用臨時卷。
Tivoli Storage Manager 並不將 DSMSERV DUMPDB 命令對卷的使用記錄在卷歷史記錄檔案中。因此,必須記錄已使用的卷名,並在將來的 DSMSERV LOADDB 命令中以絕對相同的次序指定它們。可能的值有:
volume_name要用於轉儲資料庫的一個或多個卷的名稱。可指定多個卷名,以逗號分隔各卷名,其間無空格。將按這些卷列出的次序使用它們。
FILE:file_name包含一系列要用於轉儲資料庫的卷的檔案名稱稱。在檔案中,每個卷名都分別在一行輸入。以使用這些卷的次序列出這些卷。
示例
任務 1
將資料庫轉儲到名為 DB0001、DB0002 和 DB0003 的以前標號的磁帶:
停止伺服器。
請確保已在伺服器選項檔案中指定了 DEVCONFIG 選項。設備配置檔案必須包含設備類、庫和轉儲操作所需的驅動器定義。
發出 DSMSERV DUMPDB 命令。
命令
dsmserv dumpdb devclass=tapeclassvolumenames=db0001,db0002,db0003
任務 2
使用名為 ADSM.VOLLIST 的檔案中列出的磁帶轉儲資料庫。
命令
dsmserv dumpdb devclass=tapeclass volnames=file:adsm.vollist