溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ORACLE數(shù)據(jù)庫備份與恢復(fù)的原理

發(fā)布時(shí)間:2021-08-30 16:31:19 來源:億速云 閱讀:142 作者:chen 欄目:云計(jì)算

本篇內(nèi)容主要講解“ORACLE數(shù)據(jù)庫備份與恢復(fù)的原理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“ORACLE數(shù)據(jù)庫備份與恢復(fù)的原理”吧!

一、ORACLE數(shù)據(jù)庫備份與恢復(fù)方法

1,用戶管理的ORACLE數(shù)據(jù)庫備份與恢復(fù)

用戶管理的ORACLE數(shù)據(jù)庫備份與恢復(fù)是指使用SQL 語句命令結(jié)合OS命令備份和恢復(fù)DB的方法(也被稱為OS 備份與恢復(fù))。

DB 文件 ────copy或cp────→ 備份文件

用戶管理的備份是指執(zhí)行OS (Copy)命令備份數(shù)據(jù)庫物理文件的方法。

用戶管理的恢復(fù)是指當(dāng)DB出現(xiàn)介質(zhì)失敗時(shí),將備份文件轉(zhuǎn)儲(chǔ)到DB,然后執(zhí)行SQL 命令(recover tablespace)恢復(fù)DB的方法。

Users表空間備份文件────copy或cp────→轉(zhuǎn)儲(chǔ)后的Users表空間 ─────recover───→恢復(fù)后的Users 表空間

2,RMAN 管理的ORACLE數(shù)據(jù)庫備份與恢復(fù)

RMAN(Recovery Manager,恢復(fù)管理器)管理的ORACLE數(shù)據(jù)庫備份與恢復(fù)是指使用RMAN 命令備份和恢復(fù)DB的方法。因?yàn)檫@種備份與恢復(fù)方法需要借助目標(biāo)DB的服務(wù)器進(jìn)程,所以也被稱為服務(wù)器管理的ORACLE數(shù)據(jù)庫備份與恢復(fù)。

RMAN 備份是指執(zhí)行RMAN 備份命令備份DB 物理文件的方法。

01.DBF 02.DBF 03.DBF 04.DBF ─────backup命令────→Demo_1.BAK

RMAN 恢復(fù)是指當(dāng)DB 出現(xiàn)介質(zhì)失敗時(shí),使用RMAN 命令轉(zhuǎn)儲(chǔ)并恢復(fù)DB 的方法。

Users 表空間最新備份文件─────restore────→轉(zhuǎn)儲(chǔ)后的Users 表空間 ─────recover────→恢復(fù)后的Users 表空間

3,邏輯ORACLE數(shù)據(jù)庫備份與恢復(fù)

邏輯備份是指利用Oracle 工具程序EXPDP 或EXP 將DB 部分或全部的結(jié)構(gòu)及其數(shù)據(jù)導(dǎo)出,并存儲(chǔ)到OS 文件中的過程,該過程也稱為導(dǎo)出(DB 必須處于OPEN 狀態(tài))。

DEPT EMP ─────EXPORT────→OS 文件

邏輯恢復(fù)是指當(dāng)DB 對象被意外刪除或截?cái)嘀螅褂肙racle 工具程序IMPDP 或 IMP 將邏輯備份文件中的對象結(jié)構(gòu)及其數(shù)據(jù)導(dǎo)入到DB 中的過程,該過程也稱為導(dǎo)入。

DEPT EMP ←────IMPORT─────OS 文件

從Oracle Database 10g 開始,提供了數(shù)據(jù)泵導(dǎo)出導(dǎo)入工具EXPDP 和 IMPDP。EXPDP 和IMPDP 的速度要優(yōu)于EXP 和IMP。

EXP 和 IMP 是客戶端工具程序,它們既可以在客戶端使用,也可以在服務(wù)端使用。

EXPDP 和 IMPDP 是服務(wù)端的工具程序,它們只能在Oracle 服務(wù)器端使用,不能在Oracle 客戶端使用。

IMP 只能使用 EXP 導(dǎo)出文件,而不能使用 EXPDP 導(dǎo)出文件;IMPDP 只能使用 EXPDP 導(dǎo)出文件,而不能使用 EXP 導(dǎo)出文件。

二、ORACLE數(shù)據(jù)庫備份與恢復(fù)制定恢復(fù)策略

作為DBA,最重要的管理職責(zé)就是ORACLE數(shù)據(jù)庫備份與恢復(fù)。

當(dāng)制定恢復(fù)策略時(shí),DBA 應(yīng)該考慮用戶錯(cuò)誤、介質(zhì)失敗以及數(shù)據(jù)塊損壞的處理方法。

1,制定用戶錯(cuò)誤的恢復(fù)策略

當(dāng)制定ORACLE數(shù)據(jù)庫備份與恢復(fù)策略時(shí),應(yīng)該考慮如何處理用戶或應(yīng)用的不可預(yù)見錯(cuò)誤操作,例如刪除表、誤載斷表、批量更新數(shù)據(jù)的錯(cuò)誤操作等。

處理用戶錯(cuò)誤有以下方法:

如果已經(jīng)使用邏輯備份導(dǎo)出了誤操作表的數(shù)據(jù),那么某些情況下可以導(dǎo)入數(shù)據(jù)到誤操作表。該技術(shù)的前提是規(guī)律性地導(dǎo)出了表的數(shù)據(jù),并且在導(dǎo)出之間的數(shù)據(jù)變化不是特別重要。

你可以執(zhí)行基于時(shí)間點(diǎn)的不完全恢復(fù),將表空間或者DB 恢復(fù)到失敗點(diǎn)的狀態(tài),這種ORACLE數(shù)據(jù)庫備份與恢復(fù)方法可以避免表的數(shù)據(jù)丟失。當(dāng)使用基于時(shí)間點(diǎn)的不完全恢復(fù)時(shí),要求在失敗點(diǎn)之前必須存在備份,并且在備份點(diǎn)與失敗點(diǎn)之點(diǎn)的所有歸檔日志和重做日志必須全部存在。

使用FLASHBACK 快速恢復(fù)表數(shù)據(jù)。當(dāng)使用FLASHBACK TABLE 恢復(fù)被刪除的表時(shí),要確定在數(shù)據(jù)庫回收站中仍然存在被刪除表;當(dāng)使用FLASHBACK TABLE 恢復(fù)DML 誤操作所影響的表數(shù)據(jù)時(shí),必須確保激活了表的ROW MOVEMENT特征。

2,制定介質(zhì)失敗的恢復(fù)策略

在數(shù)據(jù)庫運(yùn)行期間,當(dāng)其他外因阻止Oracle 讀寫DB 文件時(shí),會(huì)發(fā)生介質(zhì)失敗。

典型的介質(zhì)失敗包括物理失敗(例如磁頭損壞)、覆蓋或者破壞了DB 文件。

在DB 正常運(yùn)行期間,介質(zhì)失敗要遠(yuǎn)遠(yuǎn)少于用戶錯(cuò)誤或者應(yīng)用錯(cuò)誤,但ORACLE數(shù)據(jù)庫備份與恢復(fù)策略應(yīng)該為介質(zhì)失敗做好準(zhǔn)備。介質(zhì)失敗類型確定了需要使用的恢復(fù) 技術(shù),例如恢復(fù)DB 文件的策略不同于恢復(fù)控制文件的策略,SYSTEM 表空間的恢復(fù)策略不同于數(shù)據(jù)表空間的恢復(fù)策略。

3,制定數(shù)據(jù)塊損壞的恢復(fù)策略

如果一個(gè)或多個(gè)數(shù)據(jù)文件只有少量數(shù)據(jù)塊損壞,那么可以執(zhí)行數(shù)據(jù)塊介質(zhì)恢復(fù),而避免執(zhí)行完全數(shù)據(jù)文件恢復(fù)。使用PL/SQL 系統(tǒng)包 DBMS_REPAIR 可以處理損壞數(shù)據(jù)壞,別外RMAN 的BLOCKRECOVER 命令可以用于恢復(fù)損壞數(shù)據(jù)塊。

三、制定ORACLE數(shù)據(jù)庫備份與恢復(fù)策略

數(shù)據(jù)恢復(fù)策略是ORACLE數(shù)據(jù)庫備份與恢復(fù)的基礎(chǔ)。當(dāng)制定備份策略時(shí),除了要為各種恢復(fù)策略提供必要的備份類型之外,DBA 還需要考慮到業(yè)務(wù)、操作、技術(shù)、軟件以及硬件等各方面的要求。在制定備份和恢復(fù)計(jì)劃時(shí),一定要牢記“有備無患”。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略1,多元化重做日志

多元化重做日志的目的是為了防止日志成員的損壞,從而提高DB 的安全運(yùn)行時(shí)間(Mean-Time-Between-Failures,簡寫為MTBF)。當(dāng)多元化重做日志時(shí),應(yīng)該將同一個(gè)日志組的不同日志成員分布 到不同磁盤上,以防止磁盤損壞。假定某個(gè)日志組只包含一個(gè)日志成員,并且其唯一的日志成員出現(xiàn)介質(zhì)失敗,那么當(dāng)切換到該日志組時(shí)DB 將會(huì)停止運(yùn)行,此時(shí)就必須進(jìn)行介質(zhì)恢復(fù)。如是一個(gè)日志組包含多個(gè)日志成員,并且某個(gè)日志成員出現(xiàn)介質(zhì)失敗,那么此時(shí)DB 仍然可以正常運(yùn)行,DBA 只需要?jiǎng)h除損壞的日志成員即可。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略2,多元化控制文件

多元化控制文件的目的是為了防止控制文件的損壞,從而降低控制文件的恢復(fù)時(shí)間(Mean-Time-To-Recover,簡寫為MTTR)。當(dāng)多 元化控制文件時(shí),應(yīng)該將不同的控制文件分布到不同的磁盤上,以防止磁盤損壞。如果數(shù)據(jù)庫只包含一個(gè)控制文件,并且唯一控制文件出現(xiàn)介質(zhì)失敗,那么DB將無 法裝載,此時(shí)必須重新建立控制文件或者恢復(fù)控制文件。如果DB 包含多個(gè)控制文件,并且某個(gè)控制文件出現(xiàn)介質(zhì)失敗,那么DBA 只需要修改初始化參數(shù)control_files,而不需要重新建立或者恢復(fù)控制文件。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略3,確定日志操作模式

重做日志記載了Oracle Database 的所有事務(wù)變化,Oracle 數(shù)據(jù)庫具有NOARCHIVELOG 和 ARCHIVELOG 兩種日志操作模式。當(dāng)DB 處于ARCHIVELOG 模式時(shí),只有在歸檔后重做日志才能被覆蓋,并且所有事務(wù)變化被保留到歸檔日志;當(dāng)DB 處于NOARCHIVELOG 模式時(shí),重做日志可以直接被覆蓋,并且過去的事務(wù)變化全部丟失。

(1)NOARCHIVELOG 模式的特點(diǎn)

不能執(zhí)行聯(lián)機(jī)備份。如果要進(jìn)行備份,則必須關(guān)閉DB。

不能使用歸檔日志的任何恢復(fù)技術(shù)(完全恢復(fù)、FLASHBACK DATABASE、DBPITR、TSPITR)。

當(dāng)某個(gè)數(shù)據(jù)文件出現(xiàn)介質(zhì)失敗時(shí),有兩種處理方法:第一種方法是刪除該數(shù)據(jù)文件所包含的所有對象,然后刪除該數(shù)據(jù)文件,數(shù)據(jù)訓(xùn)的其余部分仍然 可以正常工作,但損壞數(shù)據(jù)文件的數(shù)據(jù)全部丟失;第二種方法是轉(zhuǎn)儲(chǔ)最近的完全備份,但ORACLE數(shù)據(jù)庫備份與恢復(fù)以來的數(shù)據(jù)變化全部丟失。

(2)ARCHIVELOG 模式的特點(diǎn)

需要為歸檔日志分配專門的空間,并且需要管理已生成的歸檔日志。

在DB 打開時(shí)可以執(zhí)行聯(lián)機(jī)備份,不影響數(shù)據(jù)庫的業(yè)務(wù)操作。

可以使用多種恢復(fù)技術(shù)(完全恢復(fù)、FLASHBACK DATABASE、DBPITR、TSPITR)。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略4,選擇備份保留策略

備份保留策略用于設(shè)置為滿足恢復(fù)和其他需求保留備份文件的規(guī)則,備份保留策略可以基于冗余度(redundancy)或恢復(fù)窗口(recovery window)定義,不能滿足保留策略的備份文件被稱為舊文件(obsolete),并且這些陳舊備份可以被刪除。備份保留策略必須使用RMAN來實(shí)現(xiàn)。

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略5,保留舊備份

保留早期數(shù)據(jù)文件和歸檔日志備份有以下幾種原因:

當(dāng)將數(shù)據(jù)庫恢復(fù)到最近備份之前的時(shí)間點(diǎn)時(shí),必須使用早期備份的數(shù)據(jù)文件和歸檔日志。

如果最近備份損壞,并且DB 也出現(xiàn)了介質(zhì)失敗,那么使用早期備份的數(shù)據(jù)文件和早期備份以來的所有歸檔日志可以完全恢復(fù)數(shù)據(jù)庫。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略6,確定備份周期

當(dāng)制定備份策略時(shí),備份周期也是很必要的,合理的備份周期可以降低介質(zhì)恢復(fù)時(shí)間(MTTR)。備份周期應(yīng)該根據(jù)數(shù)據(jù)庫變化頻率確定,數(shù)據(jù)庫變化越頻繁,備份周期應(yīng)該越短。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略7,在數(shù)據(jù)庫物理結(jié)構(gòu)發(fā)生改變后執(zhí)行備份

當(dāng)建立或刪除表空間、增加數(shù)據(jù)文件、改變數(shù)據(jù)文件名稱時(shí),數(shù)據(jù)庫物理結(jié)構(gòu)會(huì)發(fā)生改變。當(dāng)數(shù)據(jù)庫物理結(jié)構(gòu)發(fā)生改變時(shí),在ARCHIVELOG模式下應(yīng)該備份控制文件,在NOARCHIVELOG 模式下應(yīng)該進(jìn)行完全數(shù)據(jù)庫備份。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略8,備份頻繁使用的表空間

一個(gè)Oracle 數(shù)據(jù)庫往往包含許多表空間,但可能只在少量表空間上頻繁執(zhí)行DML 操作。如果表空間數(shù)據(jù)變化頻繁,則增加備份次數(shù),以降低恢復(fù)時(shí)間(MTTR)

;如果表空間數(shù)據(jù)變化比較慢,則減少備份次數(shù);只讀表空間因?yàn)槠鋽?shù)據(jù)不會(huì)發(fā)生變化,所以只需要備份一次。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略9,在NOLOGGING操作之后進(jìn)行備份

當(dāng)裝載數(shù)據(jù)、建表和建立索引時(shí),為了加快數(shù)據(jù)裝載速度,可以指定NOLOGGING 選項(xiàng)。當(dāng)指定NOLOGGING 選項(xiàng)時(shí),數(shù)據(jù)變化不會(huì)被記載到重做日志。為了確保在表空間損壞時(shí)可以恢復(fù)這些數(shù)據(jù),必須重新備份相應(yīng)表空間。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略10,使用EXP 和 EXPDP 導(dǎo)出數(shù)據(jù)

為了防止對象被意外刪除或截?cái)啵梢允褂肊XP 或EXPDP 執(zhí)行邏輯備份;而在對象被意外刪除或截?cái)嘀螅梢允褂肐MP 或 IMPDP 導(dǎo)入其結(jié)構(gòu)和數(shù)據(jù)。邏輯備份和恢復(fù)增加了數(shù)據(jù)庫備份和恢復(fù)的策略靈活性。但是,這種方法不能代替對數(shù)據(jù)庫文件的物理備份,也不能提供完全恢復(fù)。

ORACLE數(shù)據(jù)庫備份與恢復(fù)策略11,不要備份重做日志

與歸檔日志不同,重做日志不應(yīng)該備份,備份重做日志“有弊無益”。在ARCHIVELOG 模式下,當(dāng)重做日志填滿時(shí),其內(nèi)容會(huì)自動(dòng)被轉(zhuǎn)儲(chǔ)到歸檔日志中;在NOARCHIVELOG 模式下,只為只能在關(guān)閉后進(jìn)行完全備份,所有數(shù)據(jù)文件和控制文件備份處于完全一致的狀態(tài),所以在轉(zhuǎn)儲(chǔ)備份時(shí)也不需要使用重做日志。ORACLE數(shù)據(jù)庫備份 與恢復(fù)防止重做日志損壞最有效的方法是多元化重做日志,并且將同一個(gè)日志組的不同日志成員分布到不同磁盤。

到此,相信大家對“ORACLE數(shù)據(jù)庫備份與恢復(fù)的原理”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI