達夢數(shù)據(jù)庫DM8備份與還原_第1頁
達夢數(shù)據(jù)庫DM8備份與還原_第2頁
達夢數(shù)據(jù)庫DM8備份與還原_第3頁
達夢數(shù)據(jù)庫DM8備份與還原_第4頁
達夢數(shù)據(jù)庫DM8備份與還原_第5頁
已閱讀5頁,還剩230頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

達夢技術(shù)叢書

DM8備份與還原

DM8備份與還原

前百

概述

本文檔主要介紹備份還原的基本概念、技術(shù)原理,如何使用DM的命令行工具Dlsql和

DMRMAN(DMRECOVERMANAGER)、客戶端工具MANAGER(管理工具)和CONSOLE(控

制臺工具)進行備份還原,它們所提供的功能、以及詳細(xì)的參數(shù)介紹。

讀者對象

本文檔主要適用于DM數(shù)據(jù)庫的:

?開發(fā)工程師

?測試工程師

?技術(shù)支持工程師

?數(shù)據(jù)庫管理員

通用約定

在本文檔中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下:

表0.1標(biāo)志含義

標(biāo)志說明

表示可能導(dǎo)致系統(tǒng)損壞、數(shù)據(jù)丟失或不可預(yù)知的結(jié)果。

警告:

k表示可能導(dǎo)致性能降低、服務(wù)不可用。

—注意:

鼎百:

可以幫助您解決某個問題或節(jié)省您的時間。

表示正文的附加信息,是對正文的強調(diào)和補充。

II

備份與還原

在本文檔中可能出現(xiàn)下列格式,它們所代表的含義如下:

表0.2格式含義

格式說明

宋體表示正文。

Couriernew表示代碼或者屏幕顯示內(nèi)容。

表示命令行中的關(guān)鍵字(命令中保持不變、必須照輸?shù)牟糠郑┗蛘哒闹袕娬{(diào)的內(nèi)容。

粗體

標(biāo)題、警告、注意、小竅門、說明等內(nèi)容均采用粗體。

<>語法符號中,表示一個語法對象。

語法符號中,表示定義符,用來定義一個語法對象。定義符左邊為語法對象,右邊為相

::=

應(yīng)的語法描述。

1語法符號中,表示或者符,限定的語法選項在實際語句中只能出現(xiàn)一個。

語法符號中,大括號內(nèi)的語法選項在實際的語句中可以出現(xiàn)0...N次(N為大于0的自然

{)

數(shù)),但是大括號本身不能出現(xiàn)在語句中。

語法符號中,中括號內(nèi)的語法選項在實際的語句中可以出現(xiàn)0...1次,但是中括號本身

[]

不能出現(xiàn)在語句中。

關(guān)鍵字在DM_SQL語言中具有特殊意義,在SQL語法描述中,關(guān)鍵字以大寫形式出現(xiàn)。

關(guān)鍵字

但在實際書寫SQL語句時,關(guān)鍵字既可以大寫也可以小寫。

III

備份與還原

目錄

1備份還原簡介1

1.1概述1

1.2基本概念2

1.2.1表空間與數(shù)據(jù)文件2

1.2.2重做日志4

1.2.3歸檔日志5

1.2.4檢查點5

1.2.5備份集7

1.2.6備份8

1.2.7還原與恢復(fù)11

1.3介質(zhì)管理層13

1.4版本說明13

1.4.1版本區(qū)別13

1.4.2版本相關(guān)參數(shù)設(shè)置14

2備份還原原理15

2.1歸檔說明15

2.1.1本地歸檔15

2.1.2遠程歸檔16

2.1.3歸檔切換16

2.1.4歸檔修復(fù)17

2.2備份17

2.2.1數(shù)據(jù)備份18

2.2.2日志備份20

2.2.3壓縮與加密20

2.2.4并行備份21

2.3還原與恢復(fù)22

2.3.1數(shù)據(jù)還原22

2.3.2數(shù)據(jù)恢復(fù)26

2.3.3解壓縮與解密30

2.3.4并行還原30

2.4歸檔日志備份與還原30

2.4.1歸檔日志備份31

2.4.2歸檔日志還原31

3備份還原實戰(zhàn)33

3.1準(zhǔn)備工作33

IV

備份與還原

3.1.1支持與限制33

3.1.2歸檔配置35

3.2使用聯(lián)機執(zhí)行SQL語句進行備份還原39

3.2.1概述39

3.2.2數(shù)據(jù)備份40

3.2.3數(shù)據(jù)備份高級主題65

3.2.4管理備份67

3.2.5數(shù)據(jù)還原84

3.2.6數(shù)據(jù)還原高級主題95

3.3使用脫機工具DMRMAN進行備份還原99

3.3.1DMRMAN概述100

3.3.2啟動和配置DMRMAN101

3.3.3數(shù)據(jù)備份107

3.3.4管理備份119

3.3.5數(shù)據(jù)庫還原和恢復(fù)138

3.3.6歸檔還原161

3.3.7歸檔修復(fù)164

3.3.8表空間還原165

3.3.9查看操作日志168

3.4使用圖形化客戶端工具進行備份還原179

3.4.1使用MANAGER工具進行聯(lián)機備份還原179

3.4.2使用CONSOLE工具進行脫機備份還原190

4備份還原實戰(zhàn)VI.0208

4.1準(zhǔn)備工作208

4.2使用聯(lián)機執(zhí)行SQL語句進行備份還原208

4.2.1數(shù)據(jù)備份208

4.2.2數(shù)據(jù)還原210

4.2.3設(shè)置備份屬性211

4.3使用脫機工具進行備份還原214

4.3.1備份數(shù)據(jù)214

4.3.2還原數(shù)據(jù)215

4.4使用圖形化工具進行備份還原223

4.4.1使用MANAGER工具進行聯(lián)機備份還原224

4.4.2使用CONSOLE工具進行脫機備份還原228

V

備份與還原

1備份還原簡介

數(shù)據(jù)庫備份是DBA日常最重要的工作內(nèi)容。備份不是目的,還原與恢復(fù)才是備份的目

的。DBA不僅要保證備份成功,還要保證一旦數(shù)據(jù)庫發(fā)生故障時備份可還原可恢復(fù)。

本章主要介紹DM備份與還原的概述和基本概念,為理解歸檔配置、備份還原的原理與

工具使用奠定基礎(chǔ),內(nèi)容主要包括:

?概述

?基本概念

1.1概述

DM數(shù)據(jù)庫中的數(shù)據(jù)存儲在數(shù)據(jù)庫的物理數(shù)據(jù)文件中,數(shù)據(jù)文件按照頁、簇和段的方式

進行管理,數(shù)據(jù)頁是最小的數(shù)據(jù)存儲單元。任何一個對DM數(shù)據(jù)庫的操作,歸根結(jié)底都是對

某個數(shù)據(jù)文件頁的讀寫操作。

因此,DM備份的本質(zhì)就是從數(shù)據(jù)庫文件中拷貝有效的數(shù)據(jù)頁保存到備份集中,這里的

有效數(shù)據(jù)頁包括數(shù)據(jù)文件的描述頁和被分配使用的數(shù)據(jù)頁。而在備份的過程中,如果數(shù)據(jù)庫系

統(tǒng)還在繼續(xù)運行,這期間的數(shù)據(jù)庫操作并不是都會立即體現(xiàn)到數(shù)據(jù)文件中,而是首先以日志的形

式寫到歸檔日志中,因此,為了保證用戶可以通過備份集將數(shù)據(jù)恢復(fù)到備份結(jié)束時間點的狀態(tài),

就需要將備份過程中產(chǎn)生的歸檔日志也保存到備份集中。

還原與恢復(fù)是備份的反過程。還原是將備份集中的有效數(shù)據(jù)頁重新寫入目標(biāo)數(shù)據(jù)文件的過程。

恢復(fù)則是指通過重做歸檔日志,將數(shù)據(jù)庫狀態(tài)恢復(fù)到備份結(jié)束時的狀態(tài);也可以恢復(fù)到指定時間

點和指定LSN。恢復(fù)結(jié)束以后,數(shù)據(jù)庫中可能存在處于未提交狀態(tài)的活動事務(wù),這些活動事

務(wù)在恢復(fù)結(jié)束后的第一次數(shù)據(jù)庫系統(tǒng)啟動時,會由DM數(shù)據(jù)庫服務(wù)器自動進行回滾。

備份、還原與恢復(fù)的關(guān)系如圖1.1所示。

1

備份與還原

1.2基本概念

本節(jié)介紹與DM備份與還原相關(guān)的一些基本概念,了解這些基本概念是閱讀后續(xù)章節(jié)的

基礎(chǔ)。

1.2.1表空間與數(shù)據(jù)文件

DM數(shù)據(jù)庫的表空間是一個邏輯概念,其目的主要是為了方便數(shù)據(jù)庫的管理,數(shù)據(jù)庫的

所有對象在邏輯上都存放在某個表空間中,而物理上都存儲在所屬表空間的數(shù)據(jù)文件中。一個

表空間由一個或多個數(shù)據(jù)文件組成。

數(shù)據(jù)文件是數(shù)據(jù)庫中最重要的文件類型,是真實數(shù)據(jù)存儲的地方。DM中數(shù)據(jù)文件的擴

展名為.dbf,分為系統(tǒng)默認(rèn)生成的數(shù)據(jù)文件和用戶自己創(chuàng)建的數(shù)據(jù)文件兩類。

在創(chuàng)建DM數(shù)據(jù)庫時,系統(tǒng)會自動創(chuàng)建5個表空間:SYSTEM表空間、ROLL表空間、

MAIN表空間、TEMP表空間和HMAIN表空間。DM自動為這幾個自動創(chuàng)建的表空間分別生

成默認(rèn)的數(shù)據(jù)文件:SYSTEM.DBF^ROLL.DBF、MAIN.DBF和TEMP.DBF,HMAIN表空

間沒有默認(rèn)的數(shù)據(jù)文件。

用戶也可以創(chuàng)建自己的表空間,由用戶創(chuàng)建的表空間統(tǒng)稱為用戶自定義表空間,在創(chuàng)建自

定義表空間時需要為表空間指定數(shù)據(jù)文件。用戶可通過為已存在的表空間增加數(shù)據(jù)文件或

2

備份與還原

創(chuàng)建一個新的表空間來創(chuàng)建數(shù)據(jù)文件。

因此,DM中的表空間有以下幾類:

SYSTEM表空間

存放了DM數(shù)據(jù)庫全局字典信息和全局系統(tǒng)數(shù)據(jù),是DM數(shù)據(jù)庫能夠正常運行的必要前

提,默認(rèn)對應(yīng)數(shù)據(jù)文件SYSTEM.DBF?CREATETABLE等DDL操作會修改SYSTEM表空

間數(shù)據(jù)。

ROLL表空間

存放DM數(shù)據(jù)庫運行過程中產(chǎn)生的所有回滾記錄。DM中幾乎所有的數(shù)據(jù)庫修改操作都

會生成回滾記錄,并保存在ROLL表空間的數(shù)據(jù)文件中。ROLL表空間是數(shù)據(jù)庫全局對象,

不論修改哪一個表空間,生成的回滾記錄都是寫入ROLL表空間,該表空間由系統(tǒng)自動維護,

默認(rèn)數(shù)據(jù)文件為ROLL.DBF。

TEMP表空間

存放臨時表數(shù)據(jù)以及數(shù)據(jù)庫運行過程中產(chǎn)生的臨時數(shù)據(jù)。在數(shù)據(jù)庫運行過程中,SORT、

HASHJOIN等操作都可能會生成臨時結(jié)果集,它們作為臨時數(shù)據(jù)存放在TEMP表空間中。

TEMP表空間是數(shù)據(jù)庫全局對象,由系統(tǒng)自動維護。若數(shù)據(jù)庫重啟,保存在TEMP表空間中

的所有數(shù)據(jù)都會丟失。TEMP表空間的默認(rèn)數(shù)據(jù)文件為TEMP.DBF。

MAIN表空間

在創(chuàng)建用戶時,如果沒有指定默認(rèn)表空間,系統(tǒng)自動指定MAIN表空間為用戶默認(rèn)的表空

間。

HMAIN表空間

DM的HUGE表空間,用來存放HUGE表數(shù)據(jù)文件。HMAIN表空間和HUGE表相關(guān)知識

可參考《DM8系統(tǒng)管理員手冊》。

DM的物理備份還原不支持:

1.TEMP表空間。

-一*一

2.HUGE表空間,即數(shù)據(jù)庫備份和還原不包括HMAIN和用戶創(chuàng)建的HUGE

表空間;也不支持對HMAIN和用戶創(chuàng)建的HUGE表空間進行表空間備份

和還原。DM提供了HUGE表備份還原系統(tǒng)函數(shù)支持HUGE表的聯(lián)機備份

還原,可參考《DM8_SQL語言使用手冊》。

用戶自定義表空間

3

備份與還原

即用戶通過創(chuàng)建表空間相關(guān)操作生成的表空間。

圖1.2顯示了一個完整的DM數(shù)據(jù)庫的表空間和數(shù)據(jù)文件分布情況,其中TSDA為用戶

自定義表空間。

圖1.2一個完整DM數(shù)據(jù)庫的表空間和數(shù)據(jù)文件分布

1.2.2重做日志

重做日志,又叫REDO日志,忠實記錄了所有物理頁的修改,基本信息包括操作類型、

表空間號、文件號、頁號、頁內(nèi)偏移、實際數(shù)據(jù)等。數(shù)據(jù)庫中INSERT、DELETE,UPDATE等

DML操作以及CREATETABLE等DDL操作最終都會轉(zhuǎn)化為對某些數(shù)據(jù)文件、某些數(shù)據(jù)頁的

修改。因此,在系統(tǒng)故障重啟時,通過重做REDO日志,可以將數(shù)據(jù)庫恢復(fù)到故障時的

4

備份與還原

狀態(tài)。

DM數(shù)據(jù)庫默認(rèn)包含兩個擴展名為log的日志文件,用來保存REDO日志,稱為聯(lián)機重

做日志文件。這兩個文件循環(huán)使用。任何數(shù)據(jù)頁從內(nèi)存緩沖區(qū)寫入磁盤之前,必須保證其對應(yīng)

的REDO日志已經(jīng)寫入到聯(lián)機日志文件。

1.2.3歸檔日志

DM數(shù)據(jù)庫可以在歸檔和非歸檔兩種模式下運行,歸檔模式的具體配置參考3.1小節(jié)。

DM支持多種歸檔方式,本文中若無特殊說明,均指本地歸檔。當(dāng)數(shù)據(jù)庫處于歸檔模式下且配

置了本地歸檔時,REDO日志先寫入聯(lián)機日志文件,然后再異步寫入歸檔日志文件。歸檔日志

文件以配置的歸檔名稱和文件創(chuàng)建時間命名,擴展名也是logo

系統(tǒng)在歸檔模式下運行會更安全,當(dāng)出現(xiàn)介質(zhì)故障,如磁盤損壞導(dǎo)致數(shù)據(jù)文件丟失、異常

時,利用歸檔日志,系統(tǒng)可以恢復(fù)至故障發(fā)生的前一刻。因此,建議將歸檔目錄與數(shù)據(jù)文件配

置、保存到不同的物理磁盤上。

除了表備份還原,其他的聯(lián)機備份與還原必須運行在歸檔模式下。

1.2.4檢查點

DM數(shù)據(jù)庫運行過程中,用戶的所有操作都在內(nèi)存中進行。每修改一條記錄都必須先把

記錄所在的數(shù)據(jù)頁加載到BUFFER緩沖區(qū)中,然后進行修改。事務(wù)運行時,會把生成的REDO

日志保留在日志緩沖區(qū)RLOG_BUF中,每條日志記錄對應(yīng)一個LSN,當(dāng)事務(wù)提交或日志緩

沖區(qū)滿或執(zhí)行檢查點時會進行日志刷盤。

檢查點(checkpoint)是一個數(shù)據(jù)庫事件,它的功能是按照數(shù)據(jù)頁的修改順序,依次

將BUFFER緩沖區(qū)中的臟頁寫入磁盤,并在這個過程中動態(tài)調(diào)整CKPT_LSN值,釋放日志

空間。

DM的檢查點分為兩種:完全檢查點和部分檢查點:

/完全檢查點:會將內(nèi)存緩沖區(qū)中的所有臟頁寫入磁盤,并調(diào)整CKPT_LSN,在數(shù)

據(jù)庫正常關(guān)閉時會產(chǎn)生一個完全檢查點。

/部分檢查點:根據(jù)dm.ini配置文件中的參數(shù)CKPT_FLUSH_RATE和

CKPT_FLUSH_PAGES,確定每次檢查點刷臟頁的數(shù)量。執(zhí)行部分檢查點的過程中,DDL/DML操

作都可以正常執(zhí)行,DM系統(tǒng)中絕大多數(shù)情況下觸發(fā)的都是部分檢查點。

5

備份與還原

下面介紹DM中幾個LSN值的意義,這些LSN值的定義與備份還原范圍的確定有很大

關(guān)系,能讓讀者更好地理解DM備份還原。

?LSN

LSN(LogSequenceNumber)是由系統(tǒng)自動維護的Bigint類型數(shù)值,具有自動

遞增、全局唯一特性,每一個LSN值代表著DM系統(tǒng)內(nèi)部產(chǎn)生的一個物理事務(wù)。物理事務(wù)

(PhysicalTransaction,簡稱ptx)是數(shù)據(jù)庫內(nèi)部一系列修改物理數(shù)據(jù)頁操作的集合,

與數(shù)據(jù)庫管理系統(tǒng)中事務(wù)(Transaction)概念相對應(yīng),具有原子性、有序性、無法撤銷等

特性。

?CUR_LSN

系統(tǒng)當(dāng)前LSN,代表已經(jīng)分配的最大LSN值。物理事務(wù)提交時,系統(tǒng)會為其分配一個

唯一的LSN值(CUR_LSN+1),同時修改CUR_LSN值為CUR_LSN+1?

?FILE_LSN

文件LSN,已經(jīng)寫入聯(lián)機重做日志文件的最大LSN值。每次將RLOG_BUF寫入聯(lián)機重

做日志文件后,都會修改F]:LE_LSN值。

?FLUSH_LSN

FLUSH_LSN是已經(jīng)發(fā)起日志刷盤請求,但還沒有真正寫入聯(lián)機,Redo日志文件的最

大LSN值。

?CKPT_LSN

檢查點LSN,所有LSN<=CKPT_LSN的物理事務(wù)修改的數(shù)據(jù)頁,都已經(jīng)從BUFFER

緩沖區(qū)寫入磁盤。因此,數(shù)據(jù)庫故障重啟時,CKPT_LSN之前的REDO日志不需要重做,只

需要從CKPT_LSN+1開始重做REDO日志,就可以將系統(tǒng)恢復(fù)到故障前狀態(tài)。并且,在聯(lián)

機重做日志文件中,LSN值<=CKPT_LSN的REDO日志都可以被覆蓋。

根據(jù)以上介紹的幾個LSN值,我們?yōu)榇_定備份范圍特別定義了兩個LSN:

?START_LSN

為了保證備份的完整性和有效性,必須包含的歸檔日志起始LSN值。START_LSN=備

份開始時CKPT_LSN+1?

?END_LSN

為了保證備份的完整性和有效性,必須包含歸檔日志結(jié)束LSN值。END_LSN=備份

結(jié)束時FILE_LSNo

如果START_LSN等于END_LSN+1,則表明備份過程中,沒有任何數(shù)據(jù)被修改。

6

備份與還原

在做增量備份時,要求其START_LSN必須大于等于基準(zhǔn)備份的END_LSN值,這個要

求可以簡化還原過程,避免還原基準(zhǔn)備份后必須先進行恢復(fù)再還原增量備份。

下圖說明了聯(lián)機日志文件、日志緩沖區(qū)RLOG_BUF以及相關(guān)各LSN之間的關(guān)系。

CKPTLSN

圖1.3聯(lián)機日志文件與日志緩沖區(qū)

在聯(lián)機日志文件中,可以覆蓋寫入REDO日志的文件長度為可用日志空間;不能被覆蓋

的REDO日志,系統(tǒng)故障重啟需要重做的REDO日志為有效日志,有效日志的LSN取值范

圍是(CKPT_LSN,FILE_LSN]。

數(shù)據(jù)庫運行過程中產(chǎn)生的待寫入日志首先寫入日志緩沖區(qū)RLOG_BUF,當(dāng)日志刷盤時

一起寫入聯(lián)機日志文件中。

1.2.5備份集

備份集用來存放備份過程中產(chǎn)生的備份數(shù)據(jù)及備份信息。一個備份集對應(yīng)了一次完整的

備份。一般情況下,一個備份集就是一個目錄,備份集包含一個或多個備份片文件,以及一個

備份元數(shù)據(jù)文件。

1.2.5.1備份片

備份片用來存儲備份數(shù)據(jù)的文件。備份時,目標(biāo)數(shù)據(jù)文件內(nèi)容或歸檔日志內(nèi)容經(jīng)過處理后,

都會存放到各自的備份片文件中。備份片文件后綴為.bak,用來存放備份數(shù)據(jù),備份集中存

放數(shù)據(jù)頁的文件稱為數(shù)據(jù)備份片,存放REDO日志的備份片稱為日志備份片。

7

備份與還原

備份片的大小可以在備份時通過MAXPIECESIZE指定,一個備份集中可能生成多個備

份片。

1.2.5.2元數(shù)據(jù)

元數(shù)據(jù)文件用來存放備份信息,元數(shù)據(jù)文件的后綴為.meta。通過元數(shù)據(jù)文件,可以了

解整個備份集信息。元數(shù)據(jù)文件中包含的備份信息包括:

/備份集本身相關(guān)的信息,如是否聯(lián)機備份,備份的范圍,備份的加密信息,以及備份

的壓縮信息等;

/備份源庫的建庫參數(shù)信息,如DSC的節(jié)點數(shù),是否大小寫敏感,PAGE_CHECK屬

性等;

/數(shù)據(jù)文件信息,如備份了哪些數(shù)據(jù)文件,文件大小,以及文件相關(guān)的表空間信息等;

/備份片的信息,如包含哪些備份片文件、備份片大小等信息;

/備份庫的dm.ini參數(shù)信息和密鑰文件(dm_service.private或者

dm_external.config,若指定usbkey加密,則不備份)。

1.2.5.3備份集搜索目錄

備份集搜索目錄,用于搜集目標(biāo)備份集的文件路徑。備份集搜索目錄包括4類:

/數(shù)據(jù)庫的默認(rèn)備份目錄;

/WITHBACKUPDIR子句指定的目錄;

/還原時備份集所在的上級目錄;

/增量備份時基備份集所在的上級目錄。

注:如果使用第三方備份(介質(zhì)為TAPE類型),則只搜索WITHBACKUPDIR子句指

定的備份集目錄,具體搜集方式由第三方備份程序決定。

1.2.6備份

備份的目的是當(dāng)數(shù)據(jù)庫遇到損壞的情況下,可以執(zhí)行還原恢復(fù)操作,把數(shù)據(jù)庫復(fù)原到損壞

前的某個時間點。用于還原恢復(fù)數(shù)據(jù)庫的載體是備份集,生成備份集的過程便是備份了。

備份就是從源庫(備份庫)中讀取有效數(shù)據(jù)頁、歸檔日志等相關(guān)信息,經(jīng)過加密、壓縮

8

備份與還原

等處理后寫入備份片,并將相關(guān)備份信息寫入備份元數(shù)據(jù)文件的過程。

下面將根據(jù)數(shù)據(jù)組織形式、數(shù)據(jù)庫狀態(tài)、備份粒度、備份內(nèi)容、以及備份的一致性和完整

性等差異,對備份進行介紹。

1.2.6.1邏輯備份和物理備份

邏輯備份是指利用dexp導(dǎo)出工具,將指定對象(庫級、模式級、表級)的數(shù)據(jù)導(dǎo)出到

文件的備份方式。邏輯備份針對的是數(shù)據(jù)內(nèi)容,并不關(guān)心這些數(shù)據(jù)物理存儲在什么位置。

物理備份則直接掃描數(shù)據(jù)庫文件,找出那些已經(jīng)分配、使用的數(shù)據(jù)頁,拷貝并保存到備份

集中。物理備份過程中,不關(guān)心數(shù)據(jù)頁的具體內(nèi)容是什么,也不關(guān)心數(shù)據(jù)頁屬于哪一張表,只是簡

單的根據(jù)數(shù)據(jù)庫文件系統(tǒng)的描述,來挑選有效的數(shù)據(jù)頁。

這兩種備份方式,分別適應(yīng)不同的應(yīng)用場景,本書重點介紹物理備份,關(guān)于邏輯備份更詳

細(xì)的說明,可參考《DM8_dexp和dimp使用手冊》。

1.2.6.2聯(lián)機備份和脫機備份

數(shù)據(jù)庫處于運行狀態(tài)、并正常提供數(shù)據(jù)庫服務(wù)情況下進行的備份操作,我們稱為聯(lián)機備份。

數(shù)據(jù)庫處于關(guān)閉狀態(tài)時進行的備份操作,被稱為脫機備份。

從V2.0版本開始,使用DMRMAN工具進行脫機備份,并且支持對異常關(guān)閉的數(shù)據(jù)庫進

行脫機庫備份。備份異常關(guān)閉的數(shù)據(jù)庫,要求配置了本地歸檔,如果本地歸檔不完整,則需要

先修復(fù)本地歸檔,再進行備份。

聯(lián)機備份則使用客戶端工具連接到服務(wù)器實例后,通過執(zhí)行SQL語句進行;也可以通

過配置作業(yè),定時完成自動備份。聯(lián)機備份不影響數(shù)據(jù)庫正常提供服務(wù),是最常用的備份手段

之一。

聯(lián)機備份時,可能存在一些處于活動狀態(tài)的事務(wù)正在執(zhí)行,為確保備份數(shù)據(jù)的一致性,

需要將備份期間產(chǎn)生的REDO日志一起備份。因此,只能在配置本地歸檔、并開啟本地歸檔的

數(shù)據(jù)庫上執(zhí)行聯(lián)機備份。

(只有已經(jīng)關(guān)閉的數(shù)據(jù)庫才允許執(zhí)行脫機備份。正在運行的數(shù)據(jù)庫,無法執(zhí)行

°注意:脫機備份,系統(tǒng)會報錯。

9

備份與還原

1.2.6.3數(shù)據(jù)備份和歸檔日志備份

按照備份內(nèi)容不同,可以分為數(shù)據(jù)備份和歸檔日志備份。數(shù)據(jù)備份主要針對數(shù)據(jù)文件內(nèi)容,

包括庫備份、表空間備份和表備份。

庫備份,顧名思義就是對整個數(shù)據(jù)庫執(zhí)行的備份,又稱為庫級備份。庫備份會拷貝數(shù)據(jù)庫中

所有數(shù)據(jù)文件的有效數(shù)據(jù)頁,如果是聯(lián)機備份,則還會拷貝備份過程中產(chǎn)生的歸檔日志,寫入到

備份集中。

表空間備份是針對特定表空間執(zhí)行的備份,又稱為表空間級備份。表空間備份只能在聯(lián)機

狀態(tài)下執(zhí)行。

表備份則拷貝指定表的所有數(shù)據(jù)頁到備份集中,并會記錄各個數(shù)據(jù)頁之間的邏輯關(guān)系用以

恢復(fù)。表備份只能在聯(lián)機狀態(tài)下執(zhí)行,一次表備份操作只能備份一張用戶表,并且不支持增量

表備份。

歸檔日志備份,是專門針對歸檔日志文件進行操作,不涉及任何數(shù)據(jù)文件內(nèi)容。歸檔日志

備份掃描歸檔目錄收集歸檔日志文件,并將歸檔日志寫入到備份集中。既可以在數(shù)據(jù)庫運行狀

態(tài)下,執(zhí)行聯(lián)機歸檔日志備份;也可以在數(shù)據(jù)庫關(guān)閉狀態(tài)下執(zhí)行脫機歸檔日志備份。

1.2.6.4一致性備份和非一致性備份

按照備份集中的數(shù)據(jù)是否滿足一致性,可以將備份劃分為一致性備份和非一致性備份。

一致性備份的備份集包含了完整的數(shù)據(jù)文件內(nèi)容和歸檔日志信息;利用一個單獨的備份

集可以將數(shù)據(jù)庫恢復(fù)到備份時狀態(tài)。不指定WITHOUTLOG選項的聯(lián)機備份生成的備份集

就是一致性備份。脫機數(shù)據(jù)庫備份會強制將檢查點之后的有效REDO日志拷貝到備份集中,

因此,脫機備份一定是一致性備份。數(shù)據(jù)庫正常關(guān)閉時,會生成完全檢查點,脫機備份生成的備

份集中,不包含任何REDO日志。

非一致性備份的備份集只包含數(shù)據(jù)文件相關(guān)內(nèi)容,沒有歸檔日志信息,利用非一致性備份

還原的數(shù)據(jù)庫,無法直接啟動,必須借助歸檔日志來恢復(fù)。表空間備份、指定WITHOUTLOG選項

的聯(lián)機備份生成的備份集都是非一致性備份集。

10

備份與還原

1.2.6.5完全備份和增量備份

按照備份數(shù)據(jù)完整性,可將備份分為完全備份和增量備份。庫備份和表空間備份支持增量

備份,表備份不支持增量備份。

完全備份生成的備份集包含了指定庫(或者表空間)的全部有效數(shù)據(jù)頁。當(dāng)數(shù)據(jù)規(guī)模比

較大的情況下,生成的完全備份集通常會比較大,而且備份時間也會比較長。

增量備份是在某個特定備份集基礎(chǔ)上,收集數(shù)據(jù)庫新修改的數(shù)據(jù)頁進行備份,可以有效減

少備份集的空間占用、提高備份速度。這個特定的、已經(jīng)存在的備份集稱為增量備份的基備份,

根據(jù)對基備份的要求不同,DM的增量備份分為以下兩種:

1.差異增量備份

差異增量備份的基備份既可以是一個完全備份集,也可以是一個增量備份集。

利用增量備份進行還原操作時,要求其基備份必須是完整的;如果差異增量備份的基備份

本身也是一個增量備份,那么同樣要求其基備份是完整的:任何一個增量備份,最終都是以一

個完全備份作為其基備份。因此,完全備份是增量備份的基礎(chǔ)。

2.累積增量備份

累積增量備份的基備份只能是完全備份集,而不能是增量備份集。

增量備份時,并不關(guān)心其基備份集是脫機備份生成的,還是聯(lián)機備份生成的,脫機增量備份

的基備份集可以是聯(lián)機備份生成的,聯(lián)機增量備份的基備份集也可以是脫機備份生成的。

1.2.7還原與恢復(fù)

還原是備份的逆過程,就是從備份集中讀取數(shù)據(jù)頁,并將數(shù)據(jù)頁寫入到目標(biāo)數(shù)據(jù)庫對應(yīng)數(shù)

據(jù)文件相應(yīng)位置的過程。

由于聯(lián)機備份時,系統(tǒng)中可能存在一些處于活動狀態(tài)的事務(wù)正在執(zhí)行,并不能保證備份集

中的所有數(shù)據(jù)頁是處于一致性狀態(tài);而脫機備份時,數(shù)據(jù)頁不一定是正常關(guān)閉的,也不能保證

備份集中所有數(shù)據(jù)頁是處于一致性狀態(tài)。因此,還原結(jié)束后目標(biāo)庫有可能處于非一致性狀態(tài),

不能馬上提供數(shù)據(jù)庫服務(wù);必須要進行數(shù)據(jù)庫恢復(fù)操作后,才能正常啟動。

與備份類似,下面將從數(shù)據(jù)組織形式、數(shù)據(jù)庫狀態(tài)、還原粒度、還原內(nèi)容等方面介紹還原

的相關(guān)內(nèi)容。

11

備份與還原

1.2.7.1邏輯還原和物理還原

邏輯還原是邏輯備份的逆過程,邏輯還原就是使用dimp工具,把dexp導(dǎo)出的備份數(shù)

據(jù)重新導(dǎo)入到目標(biāo)數(shù)據(jù)庫.

物理還原是物理備份的逆過程,物理還原一般通過DMRMAN工具(或者SQL語句),把

備份集中的數(shù)據(jù)內(nèi)容(數(shù)據(jù)文件、數(shù)據(jù)頁、歸檔文件)重新拷貝、寫入目標(biāo)文件。

關(guān)于邏輯還原更詳細(xì)的說明,可參考《DM8_dexp和dimp使用手冊》。本文檔主要介

紹物理備份、還原相關(guān)內(nèi)容。

1.2.7.2聯(lián)機還原和脫機還原

聯(lián)機還原指數(shù)據(jù)庫處于運行狀態(tài)時,通過SQL語句執(zhí)行還原操作。表空間還原和表還

原可以在聯(lián)機狀態(tài)下執(zhí)行,并且表空間還原要求目標(biāo)表空間不是ONLINE狀態(tài)。

脫機還原指數(shù)據(jù)庫處于關(guān)閉狀態(tài)時執(zhí)行的還原操作,脫機還原通過DMRMAN工具進行。

庫備份、表空間備份和歸檔備份,可以執(zhí)行脫機還原。脫機還原操作的目標(biāo)庫必須處于關(guān)閉狀

態(tài)。

1.2.7.3數(shù)據(jù)還原和歸檔日志還原

根據(jù)備份集類型,數(shù)據(jù)還原可以分為庫還原、表空間還原和表還原。庫還原的目標(biāo)庫必須

處于關(guān)閉狀態(tài);表空間還原既可以脫機執(zhí)行也可以聯(lián)機執(zhí)行;表還原操作只能聯(lián)機執(zhí)行。

表空間還原的數(shù)據(jù)來源既可以是表空間備份集,也可以是庫備份集。還原的目標(biāo)表空間不

能是TEMP表空間,只能是MAIN、SYSTEM,ROLL表空間,或者用戶定義的表空間。

表還原從表備份集讀取數(shù)據(jù),重新恢復(fù)目標(biāo)表數(shù)據(jù),還會在目標(biāo)表上重建索引、約束。

歸檔日志還原則將歸檔日志備份集中的歸檔日志內(nèi)容,重新生成到指定目錄中。

1.2.7.4完全還原和增量還原

完全還原是指直接利用完全備份集進行數(shù)據(jù)還原操作。增量還原指通過增量備份集進行

數(shù)據(jù)還原操作。但是考慮到增量備份集的基礎(chǔ)一定是一個完全備份集,因此增量還原過程中隱含

了一個完全還原操作。如果增量備份集的基備份集被刪除了,那么單獨使用這個增量備

12

備份與還原

份集是無法進行還原操作的。

1.3介質(zhì)管理層

DM通過介質(zhì)管理層MML,將備份、還原和恢復(fù)過程中備份片文件和元數(shù)據(jù)文件的讀取

寫入動作進行抽象、隔離,備份還原過程中MML層會調(diào)用一組SBT接口來訪問備份存儲介

質(zhì)。SBT接口是DM定義的一組API函數(shù),允許第三方廠商定制、管理備份存儲介質(zhì);DM

系統(tǒng)自帶的備份還原功能也遵循了SBT規(guī)范。

如果備份、還原時指定DEVICETYPE為TAPE,且使用第三方提供的

dmsbtex.dll(dmsbtex.so)來完成備份文件的存取功能。DEVICETYPE指定TAPE

時還提供了PARMS關(guān)鍵字,用于傳遞第三方可識別的自定義字符串。使用第三方提供的動

態(tài)庫時,用戶層應(yīng)用不受影響。默認(rèn)DEVICETYPE為DISK,使用達夢自帶SBT磁盤存儲。

1.4版本說明

隨著需求的不斷增加、技術(shù)的不斷成熟,DM備份與還原前后發(fā)布了兩個版本:VI.0

和V2.0。因為不同版本策略不同,所以備份文件在各版本間不能混用。本書主要介紹V2.0的

原理、實現(xiàn)以及使用,需要使用VI.0的用戶請參考本書第四章。

1.4.1版本區(qū)別

■VI.0

備份還原VI.0指DM早期的備份還原,不是基于備份集組織的備份。VI.0版本使用

dmbackup工具執(zhí)行脫機備份,使用dmrestore工具執(zhí)行脫機還原。

■V2.0

引入備份片、元數(shù)據(jù)文件、備份集等概念,提供第三方備份(TAPE類型)接口,支持

DSC備份。使用DMRMAN工具進行脫機備份還原。

V2.0的備份還原實現(xiàn)策略有兩種:dmap輔助進程方式和無輔助進程方式。用戶可通

過DM.INI參數(shù)bak_use_ap來園$(dmrman使用參數(shù)use_ap),bak_use_ap取值1>

2。默認(rèn)為1°

1:DMAP輔助進程方式,可支持第三方備份(指定DEVICETYPE為TAPE)。DMAP

13

備份與還原

插件執(zhí)行,改造了備份還原任務(wù)子系統(tǒng),允許指定并行度,大幅提升了備份還原的效率,特別

是加密、壓縮的處理效率。如果選擇使用DMAP輔助進程,執(zhí)行備份還原之前就必須啟動

DMAP服務(wù)。安裝DM數(shù)據(jù)庫以后,DMAP服務(wù)會自動啟動。如果需要手動啟動,有兩種途徑,

一是啟動DM服務(wù)查看器中的DmAPServiceo二是通過手動啟動DMAP執(zhí)行碼實現(xiàn),DMAP

執(zhí)行碼位于DM安裝目錄的bin子目錄下。除此之外,LINUX下,還可以調(diào)用bin目錄下

的DmAPService腳本。

2:無輔助進程方式,不依賴DMAP,由主進程dmserver自身執(zhí)行備份還原,但不支

持第三方備份(指定DEVICETYPE為TAPE)。

DMAP的使用說明,請參考《DM8SQL語言使用手冊》。

,DMSERVER和DMRMAN使用DMAP,都是通過管道通訊實現(xiàn)。其中DMRMAN

IJ明,

,產(chǎn)生的管道命名規(guī)則為:DM_P1PE_DMRMAN-PID_SEQ,其由PID為DMRMAN

實例進程ID,SEQ為同一實例上管道的序號(從1開始)。在WIN環(huán)境中,

垃圾管道文件會被自動清理掉。在非WIN環(huán)境中,如果系統(tǒng)沒有正常退出,

就會遺留垃圾文件,需要用戶手動刪除。刪除垃圾管道文件時,需要根據(jù)PID

值來判斷,文件名中的ID不是當(dāng)前正在運行的DMRMAN的進程ID的即為垃

圾文件,都可以刪除。

1.4.2版本相關(guān)參數(shù)設(shè)置

用戶可通過設(shè)置DM的INI別BAK_POL工CY選擇O'策略。BAK_POLICY可取值0、

1或2,默認(rèn)為0,具體介紹如下:

/0:表示同時支持V1.0和V2.0版本

這里的同時支持表示用戶如果使用VI.0的語法或者工具,則DM服務(wù)器按照VI.0的

策略執(zhí)行;若用戶使用V2.0的語法或者工具,則DM服務(wù)器按照V2.0執(zhí)行。但是VI.0

與V2.0不能混用,若使用VI.0生成的備份不能使用V2.0進行還原,也不能在VI.0的

基備份上使用V2.0進行增量備份,反之亦然,這些操作都會報錯。

/1:表示只支持vl.O版本

/2:表示只支持v2.0版本

14

備份與還原

2備份還原原理

本章介紹DMV2.0版本備份與還原的實現(xiàn)原理,讀者通過閱讀本章內(nèi)容,可以了解DM

V2.0備份、還原與恢復(fù)的實現(xiàn)原理。

2.1歸檔說明

備份與恢復(fù)過程都依賴歸檔H志,歸檔日志是保證數(shù)據(jù)一致性和完整性的重要保障。配有

歸檔日志的數(shù)據(jù)庫系統(tǒng)在出現(xiàn)故障時丟失數(shù)據(jù)的可能性更小,這是因為一旦出現(xiàn)介質(zhì)故障如磁

盤損壞時,利用歸檔日志,系統(tǒng)可被恢復(fù)至故障發(fā)生的前一刻,也可以還原到指定的時間點。

2.1.1本地歸檔

Redo日志本地歸檔(LOCAL),就是將Redo日志寫入到本地歸檔日志文件的過程。

配置本地歸檔情況下,Redo日志刷盤線程將Redo日志寫入聯(lián)機Redo日志文件后,對應(yīng)

的RLOG_BUF由專門的歸檔線程負(fù)責(zé)寫入本地歸檔日志文件中。

與聯(lián)機Redo日志文件可以被覆蓋重用不同,本地歸檔日志文件不能被覆蓋,寫入其中

的Redo日志信息會一直保留,直到用戶主動刪除;如果配置了歸檔日志空間上限,系統(tǒng)會

自動刪除最早生成的歸檔Redo日志文件,騰出空間。

DM提供了按指定的時間或指定的LSN刪除歸檔日志的系統(tǒng)函數(shù)

(SF_ARCHIVELOG_DELETE_BEFORE_TIME和

SF_ARCHIVELOG_DELETE_BEFORE_LSN),但用戶需要謹(jǐn)慎使用。例如,在守護系統(tǒng)中,

如果備庫故障了,主庫繼續(xù)服務(wù),主庫的日志在繼續(xù)增長。此時如果刪除尚未同步到備庫的主庫

歸檔日志,那么等待備庫重啟之后,會由于備庫收到的日志缺失導(dǎo)致主備庫無法正常同步數(shù)據(jù)。

本地歸檔文件在配置的歸檔目錄下生成并保存,文件命名規(guī)則為:日志歸檔名一年月日

時分秒毫秒.log,如:ARCHIVE_LOCAL1_20181014153933458.log?如果磁盤空間不

足,且沒有配置歸檔日志空間上限(或者配置的上限超過實際空間),系統(tǒng)將自動掛起,直

到用戶主動釋放出足夠的空間后繼續(xù)運行。

15

備份與還原

為了最大限度地保護數(shù)據(jù),當(dāng)磁盤空間不足導(dǎo)致歸檔寫入失敗時,系統(tǒng)會掛

起等待,直到用戶釋放出足夠的磁盤空間。

---注意,

'當(dāng)磁盤損壞導(dǎo)致歸檔日志寫入失敗時,系統(tǒng)會強制HALT。

2.1.2遠程歸檔

所謂遠程歸檔(REMOTEARCHIVE),顧名思義就是將寫入本地歸檔的REDO日志信息,

發(fā)送到遠程節(jié)點,并寫入遠程節(jié)點的指定歸檔目錄中。DMDSC集群中各個節(jié)點在配置本地

歸檔之外,再相互配置一個遠程歸檔,就可以在任意一個節(jié)點的本地磁盤中,找到DMDSC

集群所有節(jié)點產(chǎn)生的、完整的歸檔日志文件。遠程歸檔的觸發(fā)時機是,在REDO日志寫入本

地歸檔日志文件的同時,將REDO日志通過MAL系統(tǒng)發(fā)送給指定的數(shù)據(jù)庫實例。

遠程歸檔與本地歸檔的主要區(qū)別是REDO日志寫入的位置不同,本地歸檔將REDO日志

寫入數(shù)據(jù)庫實例所在節(jié)點的磁盤,而遠程歸檔則將REDO日志寫入到其他數(shù)據(jù)庫實例所在節(jié)

點的指定歸檔目錄。遠程歸檔日志文件的命名規(guī)范和本地歸檔日志文件保持一致,都是以歸檔

名+歸檔文件的創(chuàng)建時間進行組合命名。

遠程歸檔與本地歸檔的另外一個區(qū)別就是歸檔失敗的處理策略不同:本地歸檔寫入失敗

(比如磁盤空間不足),系統(tǒng)將會掛起;而遠程歸檔失敗則會直接將遠程歸檔失效,不再發(fā)

送REDO日志到指定數(shù)據(jù)庫實例。當(dāng)節(jié)點間網(wǎng)絡(luò)恢復(fù)、或者遠程節(jié)點重啟成功后,系統(tǒng)會自動

檢測并恢復(fù)遠程歸檔,繼續(xù)發(fā)送新寫入的REDO日志,但不會主動補齊故障期間的REDO

日志。因此,在出現(xiàn)節(jié)點故障等情況下,遠程歸檔的內(nèi)容有可能是不完整的,而本地歸檔的內(nèi)

容肯定是完整的;如果備份還原恰好需要用到這段丟失的遠程歸檔日志,那么可以從源端的本

地歸檔拷貝、補齊這部分內(nèi)容。

?遠程歸檔必須雙向配置,單向配置時目標(biāo)實例上不會接收歸檔日志,歸檔狀

,?注意:態(tài)將會變成無效狀態(tài)。

2.1.3歸檔切換

由于本地歸檔和遠程歸檔是異步寫入歸檔日志文件的,REDO日志在寫入聯(lián)機日志文件后,

再由專門的歸檔線程負(fù)責(zé)將這些REDO日志寫入本地歸檔日志文件。通過歸檔切換功能,

16

備份與還原

可以將這些已經(jīng)寫入聯(lián)機日志文件,但還沒有寫入歸檔日志文件的REDO日志,寫入到歸檔

日志文件中。通過執(zhí)行以下SQL命令,可以完成歸檔切換功能。三條語句功能一樣,選擇

一條執(zhí)行即可。

alterdatabasearchivelogcurrent;

altersystemarchivelogcurrent;

altersystemswitchlogfile;

2.1.4歸檔修復(fù)

DM數(shù)據(jù)庫服務(wù)器正常退出時,會將所有REDO日志寫入本地歸檔日志文件中;但是數(shù)

據(jù)庫服務(wù)器異常關(guān)閉時,可能存在部分REDO日志未寫入本地歸檔日志文件中。歸檔修復(fù)會

掃描聯(lián)機日志文件,將那些已經(jīng)寫入聯(lián)機日志文件、但還沒有寫入到歸檔日志文件的REDO

日志,重新寫入到歸檔日志文件。

如果數(shù)據(jù)庫異常關(guān)閉后,并且沒有進行歸檔修復(fù),則歸檔日志文件中的內(nèi)容比實際可恢復(fù)

的數(shù)據(jù)少一部分,將無法利用歸檔日志文件將數(shù)據(jù)恢復(fù)到最新狀態(tài)。利用歸檔修復(fù)功能,將

歸檔日志文件內(nèi)容重新補齊后,利用本地歸檔日志恢復(fù)時,就可以將數(shù)據(jù)庫恢復(fù)到故障時刻的

最新狀態(tài)。

歸檔修復(fù)的流程包括:

1.收集本地歸檔日志文件;

2.截斷最后一個本地歸檔日志文件,并創(chuàng)建一個新的歸檔日志文件;

3.掃描聯(lián)機日志文件,將CKPT_LSN之后的REDO日志拷貝、寫入新創(chuàng)建的歸檔日

志文件。

2.2備份

任何一個對DM數(shù)據(jù)庫的操作,歸根結(jié)底都是對某個數(shù)據(jù)文件頁的讀寫操作。物理備份

就是把這些數(shù)據(jù)文件中的有效數(shù)據(jù)頁備份起來,在出現(xiàn)故障時,用于恢復(fù)數(shù)據(jù)。DM的物理

備份一般包括數(shù)據(jù)備份和日志備份兩部分,數(shù)據(jù)備份是拷貝數(shù)據(jù)頁內(nèi)容,日志備份則是拷貝備

份過程中產(chǎn)生的REDO日志。

17

備份與還原

增量備份結(jié)束

完全備份結(jié)束

CKPT_LSNSTART_LSNEND_LSN

圖2.1備份內(nèi)容

DM的聯(lián)機庫備份和表空間備份要求必須配置并開啟本地歸檔,即在dm.ini中將

ARCH_INI置為1,在dmarch.ini中配置本地歸檔。

2.2.1數(shù)據(jù)備份

數(shù)據(jù)備份過程中,根據(jù)DM數(shù)據(jù)文件系統(tǒng)的描述信息,準(zhǔn)確判斷每一個數(shù)據(jù)頁是否被分

配、使用,將未使用的數(shù)據(jù)頁剔除,僅保留有效數(shù)據(jù)頁進行備份,這個過程我們稱為智能抽取。

與直接文件拷貝方式相比,DM物理備份丟棄了那些沒有使用的數(shù)據(jù)頁,因此可以節(jié)省對存

儲空間的要求,并有效減少工0數(shù)量,提升備份、還原的效率.

對處于RES_OFFLINE和CORRUPT狀態(tài)的表空間,則只記錄表空間相關(guān)信息和狀態(tài),

不會真正拷貝數(shù)據(jù)頁。數(shù)據(jù)備份過程中,會對數(shù)據(jù)進行簡單校驗,如果校驗失敗則會將相關(guān)信

息寫入到日志文件dm_BAKRES_xxx.log中,但不會終止當(dāng)前備份操作。

使用dminit建庫時,通過設(shè)置,INI參數(shù)page_check,指定頁校驗?zāi)J疆?dāng)

k——1說明:指定值不為0時,在執(zhí)行備份過程中會對數(shù)據(jù)頁執(zhí)行校驗操作,校驗結(jié)果會記

錄在備份集中,并在備份結(jié)束后給出警告信息,警告碼為609,告知用戶此備份集

中存在被破壞的數(shù)據(jù)頁。該警告只是提示作用,并不影響備份集的有效性。在還

原庫上,備份集中備份的被破壞數(shù)據(jù)頁在經(jīng)過還原和恢復(fù)操作后,可以正常使用。

dminit建庫時,通過設(shè)置參數(shù)page_check,指定頁校驗?zāi)J?,?dāng)指定值不為0時,

在執(zhí)行備份過程中會對數(shù)據(jù)頁執(zhí)行校驗操作,校驗結(jié)果會記錄在備份集中,并在備份結(jié)束后

18

備份與還原

給出警告信息,警告碼為609,告知用戶此備份集中存在被破壞的數(shù)據(jù)頁。該警告只是提示

作用,并不影響備份集的有效性,備份集中備份的被破壞數(shù)據(jù)頁在經(jīng)過備份后的還原和恢復(fù)操

作后,可以正常使用。

■完全備份

執(zhí)行完全備份,備份程序會掃描數(shù)據(jù)文件,拷貝所有被分配、使用的數(shù)據(jù)頁,寫入到備份

片文件中(如圖2.1中第二根橫軸所示)。庫備份會掃描整個數(shù)據(jù)庫的所有數(shù)據(jù)文件,表空

間備份則只掃描表空間內(nèi)的數(shù)據(jù)文件。

參照圖1.2,若執(zhí)行庫備份,則備份數(shù)據(jù)文件包括除TEMP表空間以外的其他表空間內(nèi)

的所有數(shù)據(jù)文件;若執(zhí)行表空間備份,以用戶表空間TSDA為例,那么只會掃描TSDA表空

間的數(shù)據(jù)文件,包括tsda.dbf、tsda_.dbf和tsda_b.dbf(,數(shù)據(jù)文件備份結(jié)束后,

START_LSN之前修改的所有數(shù)據(jù)頁都被備份下來。

■增量備份

執(zhí)行增量備份,備份程序會掃描數(shù)據(jù)文件,拷貝所有基備份結(jié)束以后被修改的數(shù)據(jù)頁,

寫入到備份片文件中。

為了簡化增量備份的還原過程,避免還原過程中重做基備份集對應(yīng)的歸檔日志,DM要

求執(zhí)行增量備份時,<=基備份END_LSN的所有數(shù)據(jù)頁已經(jīng)寫入磁盤。也就是說增量備份會

拷貝LSN>基備份START_LSN的數(shù)據(jù)頁寫入備份片文件中(如圖2.1中第三根橫軸所示),

LSN<=基備份START_LSN的數(shù)據(jù)頁不需要寫入到備份片文件中。

同樣庫增量備份會掃描整個數(shù)據(jù)庫的所有數(shù)據(jù)文件,表空間增量備份只掃描表空間內(nèi)的數(shù)

據(jù)文件。

■表空間備份

表空間備份只拷貝指定表空間的數(shù)據(jù)頁,因此,相對于數(shù)據(jù)庫備份而言,表空間備份的速

度會更快,生成的備份集會更小。對一些包含關(guān)鍵數(shù)據(jù)的用戶表空間,我們可以使用表空間備

份功能,進一步保障數(shù)據(jù)安全。

表空間備份支持完全備份和增量備份,但只能在聯(lián)機狀態(tài)下執(zhí)行。不支持temp表空間

備份還原。

■表備份

19

備份與還原

表備份主要包括數(shù)據(jù)備份和元信息備份兩部分。與庫備份和表空間備份不同,表備份不是

直接掃描數(shù)據(jù)文件,而是從BUFFER中加載數(shù)據(jù)頁,拷貝到備份片文件中。表備份的元信

息則包括建表語句、重建約束語句、重建索引語句,以及其他相關(guān)屬性信息。表備份不需要配

置歸檔就可以執(zhí)行,并且不支持增量表備份。

2.2.2日志備份

所謂日志備份,就是將備份過程中產(chǎn)生的REDO日志拷貝到備份片文件中,用來在數(shù)據(jù)

庫還原結(jié)束后,將數(shù)據(jù)庫恢復(fù)到一致性狀態(tài)。如圖2.1所示,在執(zhí)行備份過程中,用戶可

能修改數(shù)據(jù)庫中的數(shù)據(jù),并產(chǎn)生對應(yīng)的REDO日志。增量備份和完全備份的日志備份流程完

全相同。

在備份開始時,記錄一個START_LSN,在備份結(jié)束后記錄一個END_LSN,那么

[START_LSN,END_LSN]之間的REDO日志,就對應(yīng)備份過程中用戶對數(shù)據(jù)的修改。其

中START_LSN=CKPT_LSN+1,作為日志備份的起點,END_LSN=數(shù)據(jù)備份結(jié)束時

的F1LE—LSN,作為日志備份的終點。

聯(lián)機庫備份默認(rèn)開啟日志備份,將備份過程中產(chǎn)生的REDO日志單獨寫入備份片作為備

份集的一部分。也可以通過WITHOUTLOG子句取消這部分REDO日志的拷貝,這種情況下

生成的備份本身是不完整的,數(shù)據(jù)庫還原后,還要依賴備份庫的本地歸檔日志來進行恢復(fù)操作

后,才能將數(shù)據(jù)恢復(fù)到一致性狀態(tài);否則,還原后的數(shù)據(jù)庫將無法正常啟動。

還原后目標(biāo)庫中redo日志的數(shù)量,由目標(biāo)庫本身redo日志的數(shù)量決定。跟源庫中

redo日志的數(shù)量無關(guān)。例如,源庫中有3個redo日志,目標(biāo)庫中只有2個,將源庫還原

到目標(biāo)庫后,目標(biāo)庫仍然只有2個redo日志。

2.2.3壓縮與加密

DM支持對備份數(shù)據(jù)進行壓縮和加密處理,用戶在執(zhí)行備份時,可以指定不同的壓縮級

別,以獲得不同的數(shù)據(jù)壓縮比。默認(rèn)情況下,備份是不進行壓縮和加密處理的,詳細(xì)使用方法

參考3DM8備份與還原實戰(zhàn)中的相關(guān)介紹。

DM共支持9個級別(1~9級)的壓縮處理,級別越高壓縮比越高,但相應(yīng)的壓縮速度

越慢、CPU開銷越大。

備份加密包括加密密碼、加密類型和加密算法三個要素。加密密碼通過使用

20

備份與還原

IDENTIFIED

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論