複製鏈接
請複製以下鏈接發送給好友

轉儲數據庫

鎖定
轉儲數據庫(Dump database)指出現災難性錯誤(例如恢復日誌毀壞)通過數據庫管理員DBA將整個數據庫複製到磁帶或另一個磁盤上保存起來的過程。
中文名
轉儲數據庫
外文名
Dump database
應用領域
數據庫
涉及學科
計算機等
操作對象
數據
目    的
將數據庫內的數據備份

轉儲數據庫什麼是轉儲

指DBA將整個數據庫複製到磁帶或另一個磁盤上保存起來的過程
這些備用的數據文本稱為後備副本或後援副本。

轉儲數據庫轉儲方法

轉儲數據庫靜態轉儲

當系統中無運行事務時進行轉儲,轉儲開始時數據庫處於一致狀態,轉儲期間不允許對數據庫的任何存取、修改活動。 [1] 
優點:實現簡單。
缺點:降低了數據庫的可用性——>轉儲必須等用户事務結束;新的事務必須等轉儲結束。

轉儲數據庫動態轉儲

轉儲操作與用户事務併發進行,轉儲期間允許對數據庫進行存取或修改。
優點:不用等待正在進行的用户事務結束;不會影響新事務的運行
缺點:不能保證副本中的數據正確有效
利用動態轉儲得到的副本進行故障恢復
1、需要把動態轉儲期間各事務對數據庫的修改活動登記下來,建立日誌文件
2、後備副本加上日誌文件才能把數據庫恢復到某一時刻的正確狀態。

轉儲數據庫海量和增量轉儲

海量轉儲:每次轉儲全部數據庫
增量轉儲:只轉儲上次轉儲後更新過的數據
二者比較:
從恢復角度看,使用海量轉儲得到的後備副本進行恢復往往更方便
但如果數據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用有效。

轉儲數據庫轉儲策略

1、定期進行數據轉儲,製作後備副本。但是轉儲又是十分耗費時間和資源的,不能頻繁進行。
2、DBA應該根據數據庫使用情況確定適當的轉儲週期和方法
例如:每天晚上或每週進行一次動態增量轉儲;每月進行一次靜態海量轉儲。

轉儲數據庫DSMSERV DUMPDB命令

如果出現災難性錯誤(例如恢復日誌毀壞),可使用此命令作為轉儲、重新初始化和重新裝入服務器數據庫的第一個步驟,而不能使用 DSMSERV RESTORE DB 命令。DSMSERV DUMPDB 處理期間不允許其它服務器活動。
DSMSERV DUMPDB 處理完成以後,執行下列步驟:
  1. 發出 DSMSERV LOADFORMAT 命令可重新初始化數據庫和恢復日誌。
  2. 發出 DSMSERV LOADDB 命令可重新裝入數據庫。
  3. 如有必要,發出 DSMSERV AUDITDB 命令可定位和更正任何數據庫的不一致性。
注意:
DSMSERV LOADDB 命令的輸出結束處的消息指示是否必須審計數據庫。如果停止服務器時服務器無反應,則不需要 DSMSERV AUDITDB 命令。
注意:DSMSERV DUMPDB 命令只支持使用手工庫(在 DEFINE LIBRARY 命令中 LIBTYPE=MANUAL)。
必須具有一個包括對此設備類的定義的設備配置文件和任何需要的庫和驅動器。您還必須通過使用服務器選項文件中的 DEVCONFIG 選項指定該設備配置文件的名稱。如果先前在服務器選項文件中包括了 DEVCONFIG 選項,然後啓動了服務器,則設備配置文件應是可用的。如果設備配置文件已經丟失或從未創建,請進行以下操作之一:
  • 如果可重新啓動服務器,則重新啓動服務器併發出 BACKUP DEVCONFIG 命令。
  • 如果無法重新啓動服務器,則用編輯器手工創建設備配置文件。關於如何手工創建設備配置文件的信息,請參閲管理員指南。
在轉儲數據庫之前,請考慮下列各項:
  • 在將數據庫轉儲到順序存取介質之前,請估計需要多少介質。如果無法啓動服務器,則使用現有數據庫卷的大小。如果可啓動服務器,則通過這些步驟估計其大小:
    1. 發出 QUERY DB 命令。
    2. 從 QUERY DB 命令的輸出,將已使用的頁面數乘以 4096 字節,確定數據庫所佔用的空間。
    3. 將步驟 2 的乘積除以單個介質的容量,可估計所需的介質數。
    4. 如果可能,且如果需要,使用 LABEL LIBVOL 命令對其它磁帶卷標號。
  • 轉儲時,使用臨時卷可確保有空間可用於存儲數據庫。不管使用專用卷還是臨時卷,都在轉儲期間記錄每個已安裝卷的標籤名稱和序列。DSMSERV DUMPDB 命令使用的卷記錄在順序卷歷史記錄信息中。
  • 如果沒有足夠的預先標號的專用或臨時卷用於轉儲數據庫,則您將需要安裝並啓動第二個服務器並使用它為磁帶卷標號(使用 LABEL LIBVOL 命令)。
  • 轉儲進程中不訪問服務器恢復日誌。因此,轉儲時未寫到數據庫的數據庫條目是不記錄的。在災難性故障後的恢復期間,可能無法恢復最新的數據庫更新。 [2] 
注意:
當裝入或恢復數據庫時,將更改服務器到服務器通信驗證令牌。驗證令牌是數據庫的一種屬性,它並不存儲在數據庫本身。令牌的一部分是數據庫的安裝日期與時間。對於那些已對服務器到服務器通信定義的服務器,必須發出帶有 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 的以前標號的磁帶:
  1. 停止服務器。
  2. 請確保已在服務器選項文件中指定了 DEVCONFIG 選項。設備配置文件必須包含設備類、庫和轉儲操作所需的驅動器定義。
  3. 發出 DSMSERV DUMPDB 命令。
命令
dsmserv dumpdb devclass=tapeclassvolumenames=db0001,db0002,db0003
任務 2
使用名為 ADSM.VOLLIST 的文件中列出的磁帶轉儲數據庫。
命令
dsmserv dumpdb devclass=tapeclass volnames=file:adsm.vollist
參考資料