




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
達夢技術叢書
DM8備份與還原
DM8備份與還原
前百
概述
本文檔主要介紹備份還原的基本概念、技術原理,如何使用DM的命令行工具Dlsql和
DMRMAN(DMRECOVERMANAGER)、客戶端工具MANAGER(管理工具)和CONSOLE(控
制臺工具)進行備份還原,它們所提供的功能、以及詳細的參數介紹。
讀者對象
本文檔主要適用于DM數據庫的:
?開發工程師
?測試工程師
?技術支持工程師
?數據庫管理員
通用約定
在本文檔中可能出現下列標志,它們所代表的含義如下:
表0.1標志含義
標志說明
表示可能導致系統損壞、數據丟失或不可預知的結果。
警告:
k表示可能導致性能降低、服務不可用。
—注意:
鼎百:
可以幫助您解決某個問題或節省您的時間。
表示正文的附加信息,是對正文的強調和補充。
II
備份與還原
在本文檔中可能出現下列格式,它們所代表的含義如下:
表0.2格式含義
格式說明
宋體表示正文。
Couriernew表示代碼或者屏幕顯示內容。
表示命令行中的關鍵字(命令中保持不變、必須照輸的部分)或者正文中強調的內容。
粗體
標題、警告、注意、小竅門、說明等內容均采用粗體。
<>語法符號中,表示一個語法對象。
語法符號中,表示定義符,用來定義一個語法對象。定義符左邊為語法對象,右邊為相
::=
應的語法描述。
1語法符號中,表示或者符,限定的語法選項在實際語句中只能出現一個。
語法符號中,大括號內的語法選項在實際的語句中可以出現0...N次(N為大于0的自然
{)
數),但是大括號本身不能出現在語句中。
語法符號中,中括號內的語法選項在實際的語句中可以出現0...1次,但是中括號本身
[]
不能出現在語句中。
關鍵字在DM_SQL語言中具有特殊意義,在SQL語法描述中,關鍵字以大寫形式出現。
關鍵字
但在實際書寫SQL語句時,關鍵字既可以大寫也可以小寫。
III
備份與還原
目錄
1備份還原簡介1
1.1概述1
1.2基本概念2
1.2.1表空間與數據文件2
1.2.2重做日志4
1.2.3歸檔日志5
1.2.4檢查點5
1.2.5備份集7
1.2.6備份8
1.2.7還原與恢復11
1.3介質管理層13
1.4版本說明13
1.4.1版本區別13
1.4.2版本相關參數設置14
2備份還原原理15
2.1歸檔說明15
2.1.1本地歸檔15
2.1.2遠程歸檔16
2.1.3歸檔切換16
2.1.4歸檔修復17
2.2備份17
2.2.1數據備份18
2.2.2日志備份20
2.2.3壓縮與加密20
2.2.4并行備份21
2.3還原與恢復22
2.3.1數據還原22
2.3.2數據恢復26
2.3.3解壓縮與解密30
2.3.4并行還原30
2.4歸檔日志備份與還原30
2.4.1歸檔日志備份31
2.4.2歸檔日志還原31
3備份還原實戰33
3.1準備工作33
IV
備份與還原
3.1.1支持與限制33
3.1.2歸檔配置35
3.2使用聯機執行SQL語句進行備份還原39
3.2.1概述39
3.2.2數據備份40
3.2.3數據備份高級主題65
3.2.4管理備份67
3.2.5數據還原84
3.2.6數據還原高級主題95
3.3使用脫機工具DMRMAN進行備份還原99
3.3.1DMRMAN概述100
3.3.2啟動和配置DMRMAN101
3.3.3數據備份107
3.3.4管理備份119
3.3.5數據庫還原和恢復138
3.3.6歸檔還原161
3.3.7歸檔修復164
3.3.8表空間還原165
3.3.9查看操作日志168
3.4使用圖形化客戶端工具進行備份還原179
3.4.1使用MANAGER工具進行聯機備份還原179
3.4.2使用CONSOLE工具進行脫機備份還原190
4備份還原實戰VI.0208
4.1準備工作208
4.2使用聯機執行SQL語句進行備份還原208
4.2.1數據備份208
4.2.2數據還原210
4.2.3設置備份屬性211
4.3使用脫機工具進行備份還原214
4.3.1備份數據214
4.3.2還原數據215
4.4使用圖形化工具進行備份還原223
4.4.1使用MANAGER工具進行聯機備份還原224
4.4.2使用CONSOLE工具進行脫機備份還原228
V
備份與還原
1備份還原簡介
數據庫備份是DBA日常最重要的工作內容。備份不是目的,還原與恢復才是備份的目
的。DBA不僅要保證備份成功,還要保證一旦數據庫發生故障時備份可還原可恢復。
本章主要介紹DM備份與還原的概述和基本概念,為理解歸檔配置、備份還原的原理與
工具使用奠定基礎,內容主要包括:
?概述
?基本概念
1.1概述
DM數據庫中的數據存儲在數據庫的物理數據文件中,數據文件按照頁、簇和段的方式
進行管理,數據頁是最小的數據存儲單元。任何一個對DM數據庫的操作,歸根結底都是對
某個數據文件頁的讀寫操作。
因此,DM備份的本質就是從數據庫文件中拷貝有效的數據頁保存到備份集中,這里的
有效數據頁包括數據文件的描述頁和被分配使用的數據頁。而在備份的過程中,如果數據庫系
統還在繼續運行,這期間的數據庫操作并不是都會立即體現到數據文件中,而是首先以日志的形
式寫到歸檔日志中,因此,為了保證用戶可以通過備份集將數據恢復到備份結束時間點的狀態,
就需要將備份過程中產生的歸檔日志也保存到備份集中。
還原與恢復是備份的反過程。還原是將備份集中的有效數據頁重新寫入目標數據文件的過程。
恢復則是指通過重做歸檔日志,將數據庫狀態恢復到備份結束時的狀態;也可以恢復到指定時間
點和指定LSN。恢復結束以后,數據庫中可能存在處于未提交狀態的活動事務,這些活動事
務在恢復結束后的第一次數據庫系統啟動時,會由DM數據庫服務器自動進行回滾。
備份、還原與恢復的關系如圖1.1所示。
1
備份與還原
1.2基本概念
本節介紹與DM備份與還原相關的一些基本概念,了解這些基本概念是閱讀后續章節的
基礎。
1.2.1表空間與數據文件
DM數據庫的表空間是一個邏輯概念,其目的主要是為了方便數據庫的管理,數據庫的
所有對象在邏輯上都存放在某個表空間中,而物理上都存儲在所屬表空間的數據文件中。一個
表空間由一個或多個數據文件組成。
數據文件是數據庫中最重要的文件類型,是真實數據存儲的地方。DM中數據文件的擴
展名為.dbf,分為系統默認生成的數據文件和用戶自己創建的數據文件兩類。
在創建DM數據庫時,系統會自動創建5個表空間:SYSTEM表空間、ROLL表空間、
MAIN表空間、TEMP表空間和HMAIN表空間。DM自動為這幾個自動創建的表空間分別生
成默認的數據文件:SYSTEM.DBF^ROLL.DBF、MAIN.DBF和TEMP.DBF,HMAIN表空
間沒有默認的數據文件。
用戶也可以創建自己的表空間,由用戶創建的表空間統稱為用戶自定義表空間,在創建自
定義表空間時需要為表空間指定數據文件。用戶可通過為已存在的表空間增加數據文件或
2
備份與還原
創建一個新的表空間來創建數據文件。
因此,DM中的表空間有以下幾類:
SYSTEM表空間
存放了DM數據庫全局字典信息和全局系統數據,是DM數據庫能夠正常運行的必要前
提,默認對應數據文件SYSTEM.DBF?CREATETABLE等DDL操作會修改SYSTEM表空
間數據。
ROLL表空間
存放DM數據庫運行過程中產生的所有回滾記錄。DM中幾乎所有的數據庫修改操作都
會生成回滾記錄,并保存在ROLL表空間的數據文件中。ROLL表空間是數據庫全局對象,
不論修改哪一個表空間,生成的回滾記錄都是寫入ROLL表空間,該表空間由系統自動維護,
默認數據文件為ROLL.DBF。
TEMP表空間
存放臨時表數據以及數據庫運行過程中產生的臨時數據。在數據庫運行過程中,SORT、
HASHJOIN等操作都可能會生成臨時結果集,它們作為臨時數據存放在TEMP表空間中。
TEMP表空間是數據庫全局對象,由系統自動維護。若數據庫重啟,保存在TEMP表空間中
的所有數據都會丟失。TEMP表空間的默認數據文件為TEMP.DBF。
MAIN表空間
在創建用戶時,如果沒有指定默認表空間,系統自動指定MAIN表空間為用戶默認的表空
間。
HMAIN表空間
DM的HUGE表空間,用來存放HUGE表數據文件。HMAIN表空間和HUGE表相關知識
可參考《DM8系統管理員手冊》。
DM的物理備份還原不支持:
1.TEMP表空間。
-一*一
2.HUGE表空間,即數據庫備份和還原不包括HMAIN和用戶創建的HUGE
表空間;也不支持對HMAIN和用戶創建的HUGE表空間進行表空間備份
和還原。DM提供了HUGE表備份還原系統函數支持HUGE表的聯機備份
還原,可參考《DM8_SQL語言使用手冊》。
用戶自定義表空間
3
備份與還原
即用戶通過創建表空間相關操作生成的表空間。
圖1.2顯示了一個完整的DM數據庫的表空間和數據文件分布情況,其中TSDA為用戶
自定義表空間。
圖1.2一個完整DM數據庫的表空間和數據文件分布
1.2.2重做日志
重做日志,又叫REDO日志,忠實記錄了所有物理頁的修改,基本信息包括操作類型、
表空間號、文件號、頁號、頁內偏移、實際數據等。數據庫中INSERT、DELETE,UPDATE等
DML操作以及CREATETABLE等DDL操作最終都會轉化為對某些數據文件、某些數據頁的
修改。因此,在系統故障重啟時,通過重做REDO日志,可以將數據庫恢復到故障時的
4
備份與還原
狀態。
DM數據庫默認包含兩個擴展名為log的日志文件,用來保存REDO日志,稱為聯機重
做日志文件。這兩個文件循環使用。任何數據頁從內存緩沖區寫入磁盤之前,必須保證其對應
的REDO日志已經寫入到聯機日志文件。
1.2.3歸檔日志
DM數據庫可以在歸檔和非歸檔兩種模式下運行,歸檔模式的具體配置參考3.1小節。
DM支持多種歸檔方式,本文中若無特殊說明,均指本地歸檔。當數據庫處于歸檔模式下且配
置了本地歸檔時,REDO日志先寫入聯機日志文件,然后再異步寫入歸檔日志文件。歸檔日志
文件以配置的歸檔名稱和文件創建時間命名,擴展名也是logo
系統在歸檔模式下運行會更安全,當出現介質故障,如磁盤損壞導致數據文件丟失、異常
時,利用歸檔日志,系統可以恢復至故障發生的前一刻。因此,建議將歸檔目錄與數據文件配
置、保存到不同的物理磁盤上。
除了表備份還原,其他的聯機備份與還原必須運行在歸檔模式下。
1.2.4檢查點
DM數據庫運行過程中,用戶的所有操作都在內存中進行。每修改一條記錄都必須先把
記錄所在的數據頁加載到BUFFER緩沖區中,然后進行修改。事務運行時,會把生成的REDO
日志保留在日志緩沖區RLOG_BUF中,每條日志記錄對應一個LSN,當事務提交或日志緩
沖區滿或執行檢查點時會進行日志刷盤。
檢查點(checkpoint)是一個數據庫事件,它的功能是按照數據頁的修改順序,依次
將BUFFER緩沖區中的臟頁寫入磁盤,并在這個過程中動態調整CKPT_LSN值,釋放日志
空間。
DM的檢查點分為兩種:完全檢查點和部分檢查點:
/完全檢查點:會將內存緩沖區中的所有臟頁寫入磁盤,并調整CKPT_LSN,在數
據庫正常關閉時會產生一個完全檢查點。
/部分檢查點:根據dm.ini配置文件中的參數CKPT_FLUSH_RATE和
CKPT_FLUSH_PAGES,確定每次檢查點刷臟頁的數量。執行部分檢查點的過程中,DDL/DML操
作都可以正常執行,DM系統中絕大多數情況下觸發的都是部分檢查點。
5
備份與還原
下面介紹DM中幾個LSN值的意義,這些LSN值的定義與備份還原范圍的確定有很大
關系,能讓讀者更好地理解DM備份還原。
?LSN
LSN(LogSequenceNumber)是由系統自動維護的Bigint類型數值,具有自動
遞增、全局唯一特性,每一個LSN值代表著DM系統內部產生的一個物理事務。物理事務
(PhysicalTransaction,簡稱ptx)是數據庫內部一系列修改物理數據頁操作的集合,
與數據庫管理系統中事務(Transaction)概念相對應,具有原子性、有序性、無法撤銷等
特性。
?CUR_LSN
系統當前LSN,代表已經分配的最大LSN值。物理事務提交時,系統會為其分配一個
唯一的LSN值(CUR_LSN+1),同時修改CUR_LSN值為CUR_LSN+1?
?FILE_LSN
文件LSN,已經寫入聯機重做日志文件的最大LSN值。每次將RLOG_BUF寫入聯機重
做日志文件后,都會修改F]:LE_LSN值。
?FLUSH_LSN
FLUSH_LSN是已經發起日志刷盤請求,但還沒有真正寫入聯機,Redo日志文件的最
大LSN值。
?CKPT_LSN
檢查點LSN,所有LSN<=CKPT_LSN的物理事務修改的數據頁,都已經從BUFFER
緩沖區寫入磁盤。因此,數據庫故障重啟時,CKPT_LSN之前的REDO日志不需要重做,只
需要從CKPT_LSN+1開始重做REDO日志,就可以將系統恢復到故障前狀態。并且,在聯
機重做日志文件中,LSN值<=CKPT_LSN的REDO日志都可以被覆蓋。
根據以上介紹的幾個LSN值,我們為確定備份范圍特別定義了兩個LSN:
?START_LSN
為了保證備份的完整性和有效性,必須包含的歸檔日志起始LSN值。START_LSN=備
份開始時CKPT_LSN+1?
?END_LSN
為了保證備份的完整性和有效性,必須包含歸檔日志結束LSN值。END_LSN=備份
結束時FILE_LSNo
如果START_LSN等于END_LSN+1,則表明備份過程中,沒有任何數據被修改。
6
備份與還原
在做增量備份時,要求其START_LSN必須大于等于基準備份的END_LSN值,這個要
求可以簡化還原過程,避免還原基準備份后必須先進行恢復再還原增量備份。
下圖說明了聯機日志文件、日志緩沖區RLOG_BUF以及相關各LSN之間的關系。
CKPTLSN
圖1.3聯機日志文件與日志緩沖區
在聯機日志文件中,可以覆蓋寫入REDO日志的文件長度為可用日志空間;不能被覆蓋
的REDO日志,系統故障重啟需要重做的REDO日志為有效日志,有效日志的LSN取值范
圍是(CKPT_LSN,FILE_LSN]。
數據庫運行過程中產生的待寫入日志首先寫入日志緩沖區RLOG_BUF,當日志刷盤時
一起寫入聯機日志文件中。
1.2.5備份集
備份集用來存放備份過程中產生的備份數據及備份信息。一個備份集對應了一次完整的
備份。一般情況下,一個備份集就是一個目錄,備份集包含一個或多個備份片文件,以及一個
備份元數據文件。
1.2.5.1備份片
備份片用來存儲備份數據的文件。備份時,目標數據文件內容或歸檔日志內容經過處理后,
都會存放到各自的備份片文件中。備份片文件后綴為.bak,用來存放備份數據,備份集中存
放數據頁的文件稱為數據備份片,存放REDO日志的備份片稱為日志備份片。
7
備份與還原
備份片的大小可以在備份時通過MAXPIECESIZE指定,一個備份集中可能生成多個備
份片。
1.2.5.2元數據
元數據文件用來存放備份信息,元數據文件的后綴為.meta。通過元數據文件,可以了
解整個備份集信息。元數據文件中包含的備份信息包括:
/備份集本身相關的信息,如是否聯機備份,備份的范圍,備份的加密信息,以及備份
的壓縮信息等;
/備份源庫的建庫參數信息,如DSC的節點數,是否大小寫敏感,PAGE_CHECK屬
性等;
/數據文件信息,如備份了哪些數據文件,文件大小,以及文件相關的表空間信息等;
/備份片的信息,如包含哪些備份片文件、備份片大小等信息;
/備份庫的dm.ini參數信息和密鑰文件(dm_service.private或者
dm_external.config,若指定usbkey加密,則不備份)。
1.2.5.3備份集搜索目錄
備份集搜索目錄,用于搜集目標備份集的文件路徑。備份集搜索目錄包括4類:
/數據庫的默認備份目錄;
/WITHBACKUPDIR子句指定的目錄;
/還原時備份集所在的上級目錄;
/增量備份時基備份集所在的上級目錄。
注:如果使用第三方備份(介質為TAPE類型),則只搜索WITHBACKUPDIR子句指
定的備份集目錄,具體搜集方式由第三方備份程序決定。
1.2.6備份
備份的目的是當數據庫遇到損壞的情況下,可以執行還原恢復操作,把數據庫復原到損壞
前的某個時間點。用于還原恢復數據庫的載體是備份集,生成備份集的過程便是備份了。
備份就是從源庫(備份庫)中讀取有效數據頁、歸檔日志等相關信息,經過加密、壓縮
8
備份與還原
等處理后寫入備份片,并將相關備份信息寫入備份元數據文件的過程。
下面將根據數據組織形式、數據庫狀態、備份粒度、備份內容、以及備份的一致性和完整
性等差異,對備份進行介紹。
1.2.6.1邏輯備份和物理備份
邏輯備份是指利用dexp導出工具,將指定對象(庫級、模式級、表級)的數據導出到
文件的備份方式。邏輯備份針對的是數據內容,并不關心這些數據物理存儲在什么位置。
物理備份則直接掃描數據庫文件,找出那些已經分配、使用的數據頁,拷貝并保存到備份
集中。物理備份過程中,不關心數據頁的具體內容是什么,也不關心數據頁屬于哪一張表,只是簡
單的根據數據庫文件系統的描述,來挑選有效的數據頁。
這兩種備份方式,分別適應不同的應用場景,本書重點介紹物理備份,關于邏輯備份更詳
細的說明,可參考《DM8_dexp和dimp使用手冊》。
1.2.6.2聯機備份和脫機備份
數據庫處于運行狀態、并正常提供數據庫服務情況下進行的備份操作,我們稱為聯機備份。
數據庫處于關閉狀態時進行的備份操作,被稱為脫機備份。
從V2.0版本開始,使用DMRMAN工具進行脫機備份,并且支持對異常關閉的數據庫進
行脫機庫備份。備份異常關閉的數據庫,要求配置了本地歸檔,如果本地歸檔不完整,則需要
先修復本地歸檔,再進行備份。
聯機備份則使用客戶端工具連接到服務器實例后,通過執行SQL語句進行;也可以通
過配置作業,定時完成自動備份。聯機備份不影響數據庫正常提供服務,是最常用的備份手段
之一。
聯機備份時,可能存在一些處于活動狀態的事務正在執行,為確保備份數據的一致性,
需要將備份期間產生的REDO日志一起備份。因此,只能在配置本地歸檔、并開啟本地歸檔的
數據庫上執行聯機備份。
(只有已經關閉的數據庫才允許執行脫機備份。正在運行的數據庫,無法執行
°注意:脫機備份,系統會報錯。
9
備份與還原
1.2.6.3數據備份和歸檔日志備份
按照備份內容不同,可以分為數據備份和歸檔日志備份。數據備份主要針對數據文件內容,
包括庫備份、表空間備份和表備份。
庫備份,顧名思義就是對整個數據庫執行的備份,又稱為庫級備份。庫備份會拷貝數據庫中
所有數據文件的有效數據頁,如果是聯機備份,則還會拷貝備份過程中產生的歸檔日志,寫入到
備份集中。
表空間備份是針對特定表空間執行的備份,又稱為表空間級備份。表空間備份只能在聯機
狀態下執行。
表備份則拷貝指定表的所有數據頁到備份集中,并會記錄各個數據頁之間的邏輯關系用以
恢復。表備份只能在聯機狀態下執行,一次表備份操作只能備份一張用戶表,并且不支持增量
表備份。
歸檔日志備份,是專門針對歸檔日志文件進行操作,不涉及任何數據文件內容。歸檔日志
備份掃描歸檔目錄收集歸檔日志文件,并將歸檔日志寫入到備份集中。既可以在數據庫運行狀
態下,執行聯機歸檔日志備份;也可以在數據庫關閉狀態下執行脫機歸檔日志備份。
1.2.6.4一致性備份和非一致性備份
按照備份集中的數據是否滿足一致性,可以將備份劃分為一致性備份和非一致性備份。
一致性備份的備份集包含了完整的數據文件內容和歸檔日志信息;利用一個單獨的備份
集可以將數據庫恢復到備份時狀態。不指定WITHOUTLOG選項的聯機備份生成的備份集
就是一致性備份。脫機數據庫備份會強制將檢查點之后的有效REDO日志拷貝到備份集中,
因此,脫機備份一定是一致性備份。數據庫正常關閉時,會生成完全檢查點,脫機備份生成的備
份集中,不包含任何REDO日志。
非一致性備份的備份集只包含數據文件相關內容,沒有歸檔日志信息,利用非一致性備份
還原的數據庫,無法直接啟動,必須借助歸檔日志來恢復。表空間備份、指定WITHOUTLOG選項
的聯機備份生成的備份集都是非一致性備份集。
10
備份與還原
1.2.6.5完全備份和增量備份
按照備份數據完整性,可將備份分為完全備份和增量備份。庫備份和表空間備份支持增量
備份,表備份不支持增量備份。
完全備份生成的備份集包含了指定庫(或者表空間)的全部有效數據頁。當數據規模比
較大的情況下,生成的完全備份集通常會比較大,而且備份時間也會比較長。
增量備份是在某個特定備份集基礎上,收集數據庫新修改的數據頁進行備份,可以有效減
少備份集的空間占用、提高備份速度。這個特定的、已經存在的備份集稱為增量備份的基備份,
根據對基備份的要求不同,DM的增量備份分為以下兩種:
1.差異增量備份
差異增量備份的基備份既可以是一個完全備份集,也可以是一個增量備份集。
利用增量備份進行還原操作時,要求其基備份必須是完整的;如果差異增量備份的基備份
本身也是一個增量備份,那么同樣要求其基備份是完整的:任何一個增量備份,最終都是以一
個完全備份作為其基備份。因此,完全備份是增量備份的基礎。
2.累積增量備份
累積增量備份的基備份只能是完全備份集,而不能是增量備份集。
增量備份時,并不關心其基備份集是脫機備份生成的,還是聯機備份生成的,脫機增量備份
的基備份集可以是聯機備份生成的,聯機增量備份的基備份集也可以是脫機備份生成的。
1.2.7還原與恢復
還原是備份的逆過程,就是從備份集中讀取數據頁,并將數據頁寫入到目標數據庫對應數
據文件相應位置的過程。
由于聯機備份時,系統中可能存在一些處于活動狀態的事務正在執行,并不能保證備份集
中的所有數據頁是處于一致性狀態;而脫機備份時,數據頁不一定是正常關閉的,也不能保證
備份集中所有數據頁是處于一致性狀態。因此,還原結束后目標庫有可能處于非一致性狀態,
不能馬上提供數據庫服務;必須要進行數據庫恢復操作后,才能正常啟動。
與備份類似,下面將從數據組織形式、數據庫狀態、還原粒度、還原內容等方面介紹還原
的相關內容。
11
備份與還原
1.2.7.1邏輯還原和物理還原
邏輯還原是邏輯備份的逆過程,邏輯還原就是使用dimp工具,把dexp導出的備份數
據重新導入到目標數據庫.
物理還原是物理備份的逆過程,物理還原一般通過DMRMAN工具(或者SQL語句),把
備份集中的數據內容(數據文件、數據頁、歸檔文件)重新拷貝、寫入目標文件。
關于邏輯還原更詳細的說明,可參考《DM8_dexp和dimp使用手冊》。本文檔主要介
紹物理備份、還原相關內容。
1.2.7.2聯機還原和脫機還原
聯機還原指數據庫處于運行狀態時,通過SQL語句執行還原操作。表空間還原和表還
原可以在聯機狀態下執行,并且表空間還原要求目標表空間不是ONLINE狀態。
脫機還原指數據庫處于關閉狀態時執行的還原操作,脫機還原通過DMRMAN工具進行。
庫備份、表空間備份和歸檔備份,可以執行脫機還原。脫機還原操作的目標庫必須處于關閉狀
態。
1.2.7.3數據還原和歸檔日志還原
根據備份集類型,數據還原可以分為庫還原、表空間還原和表還原。庫還原的目標庫必須
處于關閉狀態;表空間還原既可以脫機執行也可以聯機執行;表還原操作只能聯機執行。
表空間還原的數據來源既可以是表空間備份集,也可以是庫備份集。還原的目標表空間不
能是TEMP表空間,只能是MAIN、SYSTEM,ROLL表空間,或者用戶定義的表空間。
表還原從表備份集讀取數據,重新恢復目標表數據,還會在目標表上重建索引、約束。
歸檔日志還原則將歸檔日志備份集中的歸檔日志內容,重新生成到指定目錄中。
1.2.7.4完全還原和增量還原
完全還原是指直接利用完全備份集進行數據還原操作。增量還原指通過增量備份集進行
數據還原操作。但是考慮到增量備份集的基礎一定是一個完全備份集,因此增量還原過程中隱含
了一個完全還原操作。如果增量備份集的基備份集被刪除了,那么單獨使用這個增量備
12
備份與還原
份集是無法進行還原操作的。
1.3介質管理層
DM通過介質管理層MML,將備份、還原和恢復過程中備份片文件和元數據文件的讀取
寫入動作進行抽象、隔離,備份還原過程中MML層會調用一組SBT接口來訪問備份存儲介
質。SBT接口是DM定義的一組API函數,允許第三方廠商定制、管理備份存儲介質;DM
系統自帶的備份還原功能也遵循了SBT規范。
如果備份、還原時指定DEVICETYPE為TAPE,且使用第三方提供的
dmsbtex.dll(dmsbtex.so)來完成備份文件的存取功能。DEVICETYPE指定TAPE
時還提供了PARMS關鍵字,用于傳遞第三方可識別的自定義字符串。使用第三方提供的動
態庫時,用戶層應用不受影響。默認DEVICETYPE為DISK,使用達夢自帶SBT磁盤存儲。
1.4版本說明
隨著需求的不斷增加、技術的不斷成熟,DM備份與還原前后發布了兩個版本:VI.0
和V2.0。因為不同版本策略不同,所以備份文件在各版本間不能混用。本書主要介紹V2.0的
原理、實現以及使用,需要使用VI.0的用戶請參考本書第四章。
1.4.1版本區別
■VI.0
備份還原VI.0指DM早期的備份還原,不是基于備份集組織的備份。VI.0版本使用
dmbackup工具執行脫機備份,使用dmrestore工具執行脫機還原。
■V2.0
引入備份片、元數據文件、備份集等概念,提供第三方備份(TAPE類型)接口,支持
DSC備份。使用DMRMAN工具進行脫機備份還原。
V2.0的備份還原實現策略有兩種:dmap輔助進程方式和無輔助進程方式。用戶可通
過DM.INI參數bak_use_ap來園$(dmrman使用參數use_ap),bak_use_ap取值1>
2。默認為1°
1:DMAP輔助進程方式,可支持第三方備份(指定DEVICETYPE為TAPE)。DMAP
13
備份與還原
插件執行,改造了備份還原任務子系統,允許指定并行度,大幅提升了備份還原的效率,特別
是加密、壓縮的處理效率。如果選擇使用DMAP輔助進程,執行備份還原之前就必須啟動
DMAP服務。安裝DM數據庫以后,DMAP服務會自動啟動。如果需要手動啟動,有兩種途徑,
一是啟動DM服務查看器中的DmAPServiceo二是通過手動啟動DMAP執行碼實現,DMAP
執行碼位于DM安裝目錄的bin子目錄下。除此之外,LINUX下,還可以調用bin目錄下
的DmAPService腳本。
2:無輔助進程方式,不依賴DMAP,由主進程dmserver自身執行備份還原,但不支
持第三方備份(指定DEVICETYPE為TAPE)。
DMAP的使用說明,請參考《DM8SQL語言使用手冊》。
,DMSERVER和DMRMAN使用DMAP,都是通過管道通訊實現。其中DMRMAN
IJ明,
,產生的管道命名規則為:DM_P1PE_DMRMAN-PID_SEQ,其由PID為DMRMAN
實例進程ID,SEQ為同一實例上管道的序號(從1開始)。在WIN環境中,
垃圾管道文件會被自動清理掉。在非WIN環境中,如果系統沒有正常退出,
就會遺留垃圾文件,需要用戶手動刪除。刪除垃圾管道文件時,需要根據PID
值來判斷,文件名中的ID不是當前正在運行的DMRMAN的進程ID的即為垃
圾文件,都可以刪除。
1.4.2版本相關參數設置
用戶可通過設置DM的INI別BAK_POL工CY選擇O'策略。BAK_POLICY可取值0、
1或2,默認為0,具體介紹如下:
/0:表示同時支持V1.0和V2.0版本
這里的同時支持表示用戶如果使用VI.0的語法或者工具,則DM服務器按照VI.0的
策略執行;若用戶使用V2.0的語法或者工具,則DM服務器按照V2.0執行。但是VI.0
與V2.0不能混用,若使用VI.0生成的備份不能使用V2.0進行還原,也不能在VI.0的
基備份上使用V2.0進行增量備份,反之亦然,這些操作都會報錯。
/1:表示只支持vl.O版本
/2:表示只支持v2.0版本
14
備份與還原
2備份還原原理
本章介紹DMV2.0版本備份與還原的實現原理,讀者通過閱讀本章內容,可以了解DM
V2.0備份、還原與恢復的實現原理。
2.1歸檔說明
備份與恢復過程都依賴歸檔H志,歸檔日志是保證數據一致性和完整性的重要保障。配有
歸檔日志的數據庫系統在出現故障時丟失數據的可能性更小,這是因為一旦出現介質故障如磁
盤損壞時,利用歸檔日志,系統可被恢復至故障發生的前一刻,也可以還原到指定的時間點。
2.1.1本地歸檔
Redo日志本地歸檔(LOCAL),就是將Redo日志寫入到本地歸檔日志文件的過程。
配置本地歸檔情況下,Redo日志刷盤線程將Redo日志寫入聯機Redo日志文件后,對應
的RLOG_BUF由專門的歸檔線程負責寫入本地歸檔日志文件中。
與聯機Redo日志文件可以被覆蓋重用不同,本地歸檔日志文件不能被覆蓋,寫入其中
的Redo日志信息會一直保留,直到用戶主動刪除;如果配置了歸檔日志空間上限,系統會
自動刪除最早生成的歸檔Redo日志文件,騰出空間。
DM提供了按指定的時間或指定的LSN刪除歸檔日志的系統函數
(SF_ARCHIVELOG_DELETE_BEFORE_TIME和
SF_ARCHIVELOG_DELETE_BEFORE_LSN),但用戶需要謹慎使用。例如,在守護系統中,
如果備庫故障了,主庫繼續服務,主庫的日志在繼續增長。此時如果刪除尚未同步到備庫的主庫
歸檔日志,那么等待備庫重啟之后,會由于備庫收到的日志缺失導致主備庫無法正常同步數據。
本地歸檔文件在配置的歸檔目錄下生成并保存,文件命名規則為:日志歸檔名一年月日
時分秒毫秒.log,如:ARCHIVE_LOCAL1_20181014153933458.log?如果磁盤空間不
足,且沒有配置歸檔日志空間上限(或者配置的上限超過實際空間),系統將自動掛起,直
到用戶主動釋放出足夠的空間后繼續運行。
15
備份與還原
為了最大限度地保護數據,當磁盤空間不足導致歸檔寫入失敗時,系統會掛
起等待,直到用戶釋放出足夠的磁盤空間。
---注意,
'當磁盤損壞導致歸檔日志寫入失敗時,系統會強制HALT。
2.1.2遠程歸檔
所謂遠程歸檔(REMOTEARCHIVE),顧名思義就是將寫入本地歸檔的REDO日志信息,
發送到遠程節點,并寫入遠程節點的指定歸檔目錄中。DMDSC集群中各個節點在配置本地
歸檔之外,再相互配置一個遠程歸檔,就可以在任意一個節點的本地磁盤中,找到DMDSC
集群所有節點產生的、完整的歸檔日志文件。遠程歸檔的觸發時機是,在REDO日志寫入本
地歸檔日志文件的同時,將REDO日志通過MAL系統發送給指定的數據庫實例。
遠程歸檔與本地歸檔的主要區別是REDO日志寫入的位置不同,本地歸檔將REDO日志
寫入數據庫實例所在節點的磁盤,而遠程歸檔則將REDO日志寫入到其他數據庫實例所在節
點的指定歸檔目錄。遠程歸檔日志文件的命名規范和本地歸檔日志文件保持一致,都是以歸檔
名+歸檔文件的創建時間進行組合命名。
遠程歸檔與本地歸檔的另外一個區別就是歸檔失敗的處理策略不同:本地歸檔寫入失敗
(比如磁盤空間不足),系統將會掛起;而遠程歸檔失敗則會直接將遠程歸檔失效,不再發
送REDO日志到指定數據庫實例。當節點間網絡恢復、或者遠程節點重啟成功后,系統會自動
檢測并恢復遠程歸檔,繼續發送新寫入的REDO日志,但不會主動補齊故障期間的REDO
日志。因此,在出現節點故障等情況下,遠程歸檔的內容有可能是不完整的,而本地歸檔的內
容肯定是完整的;如果備份還原恰好需要用到這段丟失的遠程歸檔日志,那么可以從源端的本
地歸檔拷貝、補齊這部分內容。
?遠程歸檔必須雙向配置,單向配置時目標實例上不會接收歸檔日志,歸檔狀
,?注意:態將會變成無效狀態。
2.1.3歸檔切換
由于本地歸檔和遠程歸檔是異步寫入歸檔日志文件的,REDO日志在寫入聯機日志文件后,
再由專門的歸檔線程負責將這些REDO日志寫入本地歸檔日志文件。通過歸檔切換功能,
16
備份與還原
可以將這些已經寫入聯機日志文件,但還沒有寫入歸檔日志文件的REDO日志,寫入到歸檔
日志文件中。通過執行以下SQL命令,可以完成歸檔切換功能。三條語句功能一樣,選擇
一條執行即可。
alterdatabasearchivelogcurrent;
altersystemarchivelogcurrent;
altersystemswitchlogfile;
2.1.4歸檔修復
DM數據庫服務器正常退出時,會將所有REDO日志寫入本地歸檔日志文件中;但是數
據庫服務器異常關閉時,可能存在部分REDO日志未寫入本地歸檔日志文件中。歸檔修復會
掃描聯機日志文件,將那些已經寫入聯機日志文件、但還沒有寫入到歸檔日志文件的REDO
日志,重新寫入到歸檔日志文件。
如果數據庫異常關閉后,并且沒有進行歸檔修復,則歸檔日志文件中的內容比實際可恢復
的數據少一部分,將無法利用歸檔日志文件將數據恢復到最新狀態。利用歸檔修復功能,將
歸檔日志文件內容重新補齊后,利用本地歸檔日志恢復時,就可以將數據庫恢復到故障時刻的
最新狀態。
歸檔修復的流程包括:
1.收集本地歸檔日志文件;
2.截斷最后一個本地歸檔日志文件,并創建一個新的歸檔日志文件;
3.掃描聯機日志文件,將CKPT_LSN之后的REDO日志拷貝、寫入新創建的歸檔日
志文件。
2.2備份
任何一個對DM數據庫的操作,歸根結底都是對某個數據文件頁的讀寫操作。物理備份
就是把這些數據文件中的有效數據頁備份起來,在出現故障時,用于恢復數據。DM的物理
備份一般包括數據備份和日志備份兩部分,數據備份是拷貝數據頁內容,日志備份則是拷貝備
份過程中產生的REDO日志。
17
備份與還原
增量備份結束
完全備份結束
CKPT_LSNSTART_LSNEND_LSN
圖2.1備份內容
DM的聯機庫備份和表空間備份要求必須配置并開啟本地歸檔,即在dm.ini中將
ARCH_INI置為1,在dmarch.ini中配置本地歸檔。
2.2.1數據備份
數據備份過程中,根據DM數據文件系統的描述信息,準確判斷每一個數據頁是否被分
配、使用,將未使用的數據頁剔除,僅保留有效數據頁進行備份,這個過程我們稱為智能抽取。
與直接文件拷貝方式相比,DM物理備份丟棄了那些沒有使用的數據頁,因此可以節省對存
儲空間的要求,并有效減少工0數量,提升備份、還原的效率.
對處于RES_OFFLINE和CORRUPT狀態的表空間,則只記錄表空間相關信息和狀態,
不會真正拷貝數據頁。數據備份過程中,會對數據進行簡單校驗,如果校驗失敗則會將相關信
息寫入到日志文件dm_BAKRES_xxx.log中,但不會終止當前備份操作。
使用dminit建庫時,通過設置,INI參數page_check,指定頁校驗模式當
k——1說明:指定值不為0時,在執行備份過程中會對數據頁執行校驗操作,校驗結果會記
錄在備份集中,并在備份結束后給出警告信息,警告碼為609,告知用戶此備份集
中存在被破壞的數據頁。該警告只是提示作用,并不影響備份集的有效性。在還
原庫上,備份集中備份的被破壞數據頁在經過還原和恢復操作后,可以正常使用。
dminit建庫時,通過設置參數page_check,指定頁校驗模式,當指定值不為0時,
在執行備份過程中會對數據頁執行校驗操作,校驗結果會記錄在備份集中,并在備份結束后
18
備份與還原
給出警告信息,警告碼為609,告知用戶此備份集中存在被破壞的數據頁。該警告只是提示
作用,并不影響備份集的有效性,備份集中備份的被破壞數據頁在經過備份后的還原和恢復操
作后,可以正常使用。
■完全備份
執行完全備份,備份程序會掃描數據文件,拷貝所有被分配、使用的數據頁,寫入到備份
片文件中(如圖2.1中第二根橫軸所示)。庫備份會掃描整個數據庫的所有數據文件,表空
間備份則只掃描表空間內的數據文件。
參照圖1.2,若執行庫備份,則備份數據文件包括除TEMP表空間以外的其他表空間內
的所有數據文件;若執行表空間備份,以用戶表空間TSDA為例,那么只會掃描TSDA表空
間的數據文件,包括tsda.dbf、tsda_.dbf和tsda_b.dbf(,數據文件備份結束后,
START_LSN之前修改的所有數據頁都被備份下來。
■增量備份
執行增量備份,備份程序會掃描數據文件,拷貝所有基備份結束以后被修改的數據頁,
寫入到備份片文件中。
為了簡化增量備份的還原過程,避免還原過程中重做基備份集對應的歸檔日志,DM要
求執行增量備份時,<=基備份END_LSN的所有數據頁已經寫入磁盤。也就是說增量備份會
拷貝LSN>基備份START_LSN的數據頁寫入備份片文件中(如圖2.1中第三根橫軸所示),
LSN<=基備份START_LSN的數據頁不需要寫入到備份片文件中。
同樣庫增量備份會掃描整個數據庫的所有數據文件,表空間增量備份只掃描表空間內的數
據文件。
■表空間備份
表空間備份只拷貝指定表空間的數據頁,因此,相對于數據庫備份而言,表空間備份的速
度會更快,生成的備份集會更小。對一些包含關鍵數據的用戶表空間,我們可以使用表空間備
份功能,進一步保障數據安全。
表空間備份支持完全備份和增量備份,但只能在聯機狀態下執行。不支持temp表空間
備份還原。
■表備份
19
備份與還原
表備份主要包括數據備份和元信息備份兩部分。與庫備份和表空間備份不同,表備份不是
直接掃描數據文件,而是從BUFFER中加載數據頁,拷貝到備份片文件中。表備份的元信
息則包括建表語句、重建約束語句、重建索引語句,以及其他相關屬性信息。表備份不需要配
置歸檔就可以執行,并且不支持增量表備份。
2.2.2日志備份
所謂日志備份,就是將備份過程中產生的REDO日志拷貝到備份片文件中,用來在數據
庫還原結束后,將數據庫恢復到一致性狀態。如圖2.1所示,在執行備份過程中,用戶可
能修改數據庫中的數據,并產生對應的REDO日志。增量備份和完全備份的日志備份流程完
全相同。
在備份開始時,記錄一個START_LSN,在備份結束后記錄一個END_LSN,那么
[START_LSN,END_LSN]之間的REDO日志,就對應備份過程中用戶對數據的修改。其
中START_LSN=CKPT_LSN+1,作為日志備份的起點,END_LSN=數據備份結束時
的F1LE—LSN,作為日志備份的終點。
聯機庫備份默認開啟日志備份,將備份過程中產生的REDO日志單獨寫入備份片作為備
份集的一部分。也可以通過WITHOUTLOG子句取消這部分REDO日志的拷貝,這種情況下
生成的備份本身是不完整的,數據庫還原后,還要依賴備份庫的本地歸檔日志來進行恢復操作
后,才能將數據恢復到一致性狀態;否則,還原后的數據庫將無法正常啟動。
還原后目標庫中redo日志的數量,由目標庫本身redo日志的數量決定。跟源庫中
redo日志的數量無關。例如,源庫中有3個redo日志,目標庫中只有2個,將源庫還原
到目標庫后,目標庫仍然只有2個redo日志。
2.2.3壓縮與加密
DM支持對備份數據進行壓縮和加密處理,用戶在執行備份時,可以指定不同的壓縮級
別,以獲得不同的數據壓縮比。默認情況下,備份是不進行壓縮和加密處理的,詳細使用方法
參考3DM8備份與還原實戰中的相關介紹。
DM共支持9個級別(1~9級)的壓縮處理,級別越高壓縮比越高,但相應的壓縮速度
越慢、CPU開銷越大。
備份加密包括加密密碼、加密類型和加密算法三個要素。加密密碼通過使用
20
備份與還原
IDENTIFIED
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 系統架構設計師云技術應用試題及答案
- 激光技術的多樣化發展考題試題及答案
- 系統規劃與管理師備考必讀書籍試題及答案
- 激光技術在量子計算中的前景考題試題及答案
- 行政類崗位筆試題及答案
- 系統規劃與管理師考試核心知識講解試題及答案
- 小城直播測試題及答案
- 科室輸液反應試題及答案
- 育嬰師的職業道德標準與實踐考題試題及答案
- 激光技術工程師考試中常見題型解讀試題及答案
- 《新食品安全法培訓》課件
- 易錯點18 世界近現代史上的反殖民抗爭-備戰2023年中考歷史考試易錯題(原卷版)
- 微通道內納米流體傳熱流動特性
- 初中計算機基礎知識
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學年北師大版數學七年級下冊
- 上海市閔行區區管國企招聘筆試沖刺題2025
- 微陣列技術在腫瘤標志物研究-洞察分析
- 2024至2030年中國氣力輸送系統行業投資前景及策略咨詢研究報告
- 《認知主義》課件
- 中國高血壓防治指南(2024年修訂版)
- 華爾街英語課件
評論
0/150
提交評論