您好,登錄后才能下訂單哦!
數(shù)據(jù)庫維護中,備份或恢復(fù)是重中之重的問題。盡管很多時候數(shù)據(jù)庫系統(tǒng)運行緩慢,
但對數(shù)據(jù)庫數(shù)據(jù)的丟失而言,顯然后者損失的代價是不言而喻的,DBA首要的工作就
是盡一切可能地做好數(shù)據(jù)的備份工作。
1.1、物理備份與邏輯備份
01、物理備份是所有物理文件的一個副本,比如數(shù)據(jù)文件,控制文件,歸檔日志等。該副本能被存儲在本地磁盤或磁帶等等。
物理備份是備份或恢復(fù)的基礎(chǔ)
包括冷備份(非歸檔模式)或熱備份(歸檔模式)
02、邏輯備份
將表、存儲過程等數(shù)據(jù)使用Oracle的export等工具導(dǎo)出到二進制文件,后續(xù)根據(jù)需要再使用import工具導(dǎo)入數(shù)據(jù)庫。
邏輯備份則是對物理備份的方式的一種補充,多用于數(shù)據(jù)遷移。
1.2、備份恢復(fù)工具
01、用戶托管的備份與恢復(fù),是一種手動備份恢復(fù)的方式。使用操作系統(tǒng)命令和SQL*plus來完成相關(guān)的備份與恢復(fù)。
02、使用RMAN來備份恢復(fù),支持命令行及GUI接口,支持第三方磁帶庫備份,功能比較強大。
支持備份數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、控制文件、歸檔日志等
可以保存頻繁使用備份恢復(fù)腳本
支持增量備份,跳過未使用的塊,以及控制備份速度
在備份期間偵測損壞的數(shù)據(jù)
通過自動并發(fā)、限制I/O等提高備份性能
03、使用exp/imp、expdp/impdp之類的邏輯導(dǎo)出與導(dǎo)入工具。 支持全庫、用戶、表、帶條件級別的導(dǎo)出與導(dǎo)入可以導(dǎo)到結(jié)構(gòu),也只可以只導(dǎo)出數(shù)據(jù)是跨平臺遷移的最佳工具
1.3、常見的備份類型
聯(lián)機數(shù)據(jù)庫備份 -->使用archivelog模式,SCN不一致
脫機數(shù)據(jù)庫備份 -->使用noarchivelog模式,SCN保持一致
整個數(shù)據(jù)庫-->可以在不同的時間段來備份,減輕I/O壓力,從而構(gòu)建整個數(shù)據(jù)庫
表空間-->在archivelog模式下,當(dāng)處于noarchivelog模式下,則該表空間必須為只讀或脫機
數(shù)據(jù)文件 -->同表空間備份
控制文件 -->可以使用SQL語句或RMAN來備份
歸檔日志
參數(shù)文件
1.4、備份的分類
(1) 備份策略:
a.整體:備份屬于數(shù)據(jù)庫的控制文件和所有數(shù)據(jù)文件
b.部分:備份數(shù)據(jù)庫的一部分
(2) 備份類型:
a.完全:非增量RMAN備份
b.增量:只備份以前某次備份以來更改的信息
(3) 備份模式:
a.脫機:一致性備份,也稱為冷備份
b.聯(lián)機:非一致性備份,也稱為熱備份
1.5、恢復(fù)的分類
何時需要使用備份進行恢復(fù):
發(fā)生以下類型的錯誤時,通常需要使用備份執(zhí)行恢復(fù):
(1) 介質(zhì)故障:因數(shù)據(jù)庫文件的物理問題而導(dǎo)致無法讀寫該文件
(2) 用戶錯誤:數(shù)據(jù)庫中的數(shù)據(jù)被誤更改或誤刪除
數(shù)據(jù)恢復(fù)概覽:
崩潰恢復(fù):發(fā)生實例錯誤后自動恢復(fù)
介質(zhì)恢復(fù):恢復(fù)當(dāng)前數(shù)據(jù)文件、控制文件
Oracle數(shù)據(jù)庫體系結(jié)構(gòu):崩潰恢復(fù)
(1) 使用聯(lián)機重做日志文件前滾數(shù)據(jù)庫
(2) 回退未提交的更改Oracle數(shù)據(jù)庫體系結(jié)構(gòu):在介質(zhì)故障后恢復(fù)(1) 使用備份還原數(shù)據(jù)文件
(2) 使用歸檔和聯(lián)機重做日志文件前滾數(shù)據(jù)庫
完全恢復(fù):將數(shù)據(jù)庫恢復(fù)到最近的時間點
不完全恢復(fù)(時間點恢復(fù)):將數(shù)據(jù)庫恢復(fù)到在特定時間或待定系統(tǒng)scn時的狀態(tài)
完全恢復(fù)
使用數(shù)據(jù)庫,表空間或數(shù)據(jù)文件的備份進行還原,再使用歸檔,重做日志或增量備份將數(shù)據(jù)更新到當(dāng)前時間點
用戶可以實現(xiàn)基于對數(shù)據(jù)庫、表空間、數(shù)據(jù)文件執(zhí)行完全恢復(fù)
可以分為在非歸檔模式下和歸檔模式下的完全恢復(fù),完全恢復(fù)主要是針對歸檔模式下的,在非歸檔模式下很難做到完全恢復(fù),除非是在做恢復(fù)時,聯(lián)機重做日志還沒有被重寫。
不完全恢復(fù)
與完全恢復(fù)是同樣的步驟,只不過不完全恢復(fù)僅僅是將數(shù)據(jù)恢復(fù)到某一個特定的時間點或特定的SCN,而不是當(dāng)前時間點。
下列情況通常需要進行不完全恢復(fù):
介質(zhì)故障(media failure)導(dǎo)致部分或全部聯(lián)機重做日志(online redo log)損壞
用戶操作失誤(user error)導(dǎo)致數(shù)據(jù)丟失,例如,用戶由于疏忽而移除了表,提交了無效的數(shù)據(jù)到表
由于歸檔重做日志(archived redo log)丟失而無法進行完全恢復(fù)(complete recovery)
當(dāng)前控制文件(control file)丟失,必須使用備份的控制文件打開(open)數(shù)據(jù)庫
關(guān)于非歸檔的恢復(fù)說明
1.在非歸檔模式下,在丟失數(shù)據(jù)文件后唯一的選擇是執(zhí)行完整的數(shù)據(jù)庫還原,而不能進行恢復(fù);
2.還原完整的數(shù)據(jù)庫是還原所用的數(shù)據(jù)文件和控制文件;
3.還原前提是要備份,因為是非歸檔模式所以只能進行冷備份,主要備份所有的數(shù)據(jù)文件和控制文件。對于聯(lián)機重做日志文件,在正常關(guān)閉數(shù)據(jù)庫的情況下,可以不備份它,但是在不正常關(guān)閉數(shù)據(jù)庫的情況下要進行備份,建議備份下來,這樣就可以不用重建了。
非歸檔模式下的恢復(fù)。
1.如果放數(shù)據(jù)文件的磁盤沒有損壞,只是某種原因?qū)е履承?shù)據(jù)文件的丟失,那么只要把備份的數(shù)據(jù)庫(所有數(shù)據(jù)文件和控制文件),復(fù)制到原來的地方即可。
2.如果是磁盤損壞,則不能放到原來的位置了,必須放到新的磁盤下。這樣就要修改參數(shù)文件和控制文件的信息, 才能正常打開數(shù)據(jù)庫。
3.現(xiàn)在模擬第二種情況(即磁盤損壞),首先對數(shù)據(jù)庫進行冷備份,新建個目錄/oracle/ubackup,在/oracle/oradata/itpux下的所有文件(數(shù)據(jù)文件,控制文件和聯(lián)機重做日志文件)復(fù)制到ubackup目錄下。
不完全介質(zhì)恢復(fù)的幾種類型:
基于時間的恢復(fù)(Time-based recovery) 將數(shù)據(jù)恢復(fù)到指定的時間點。
用戶控制的恢復(fù)(Cancel-based recovery) 當(dāng)用戶提交CANCEL后停止恢復(fù)(此選項在使用RMAN時無效)。
基于SCN 的恢復(fù)(Change-based recovery) 將數(shù)據(jù)恢復(fù)到指定的SCN按重做日志序號恢復(fù)(Log sequence recovery)將數(shù)據(jù)恢復(fù)到指定的重做日志序號(僅使用RMAN時有效)。
表空間按時間點恢復(fù)(tablespace point-in-time recoveryTSPITR) 可以將一個或多個表空間恢復(fù)到與數(shù)據(jù)庫中其他表空間不同的時間點,但是SYSTEM表空間,UNDO表空間,或任何包含回滾段(rollback segment)的表空間無法使用TSPITR功能與其它表空間有依賴性的表空間應(yīng)當(dāng)同時恢復(fù)被依賴的表空間,如兩張表存在依賴性且位于不同的表空間。
恢復(fù)的相關(guān)視圖
v$reover_file --查詢需要恢復(fù)的文件,該視圖信息來自控制文件,如控制文件來自備份或重建過則信息會不準。
v$archived_log--查詢所有歸檔日志列表。
v$recovery_log--查詢所有需要用于恢復(fù)的日志。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。