一、備份與恢復概述
1、需要備份的原因
現實工作中有很多情況都可能造成資料丟失,造成資料丟失的主要因素如下。 n
介質故障:磁碟損壞、磁頭碰撞,瞬時強磁場干擾 n
使用者的錯誤操作 n
伺服器的徹底崩潰 n
計算機病毒 n
不可預料的因素:自然災害、電源故障、盜竊
上面是一些可能的故障原因,根據原因可以將oracle中的故障分為以下4種型別。
1)語句故障 2)戶程序故障 3
)例項故障 4
)介質故障
二、備份與恢復的定義及分類
1、備份的分類
1)從物理與邏輯角度分類
從物理與邏輯角度分,備份可以分為物理備份和邏輯備份。
① 物理備份:
對資料庫作業系統的物理檔案(如資料檔案、控制檔案和日誌檔案)的備份。物理備份又可以分為離線備份(冷備份)和聯機備份(熱備份),前者是在關閉資料庫的時候進行的,後者對正以歸檔日誌方式執行的資料庫進行備份。可以使用oracle的恢復管理器(rman)或作業系統命令進行資料庫的物理備份。
② 邏輯備份:對資料庫邏輯元件(如表和儲存過程等資料庫物件)的備份。邏輯備份的手段很多,如傳統的exp、資料幫浦expdp、資料庫閃回技術及第三方工具,都可以進行資料庫的邏輯備份。
2)從資料庫的備份策略角度分類
① 完全備份:
每次對資料進行完整的備份。當發生資料丟失的災難情況時,完全備份無須依賴其他資訊,即可實現100%資料恢復,其恢復時間最短且操作最方便。
② 增量備份:
只有那些在上次完全備份或者增量備份後被修改的檔案才會備份。優點是備份資料量小,需要的時間短,缺點是恢復的時候需要依賴之前的備份記錄,出問題的風險較大。
③ 差異備份:
備份那些自從上次完全備份之後被修改過的檔案。從差異備份中恢復資料庫時間較短,因此只需要兩份資料(最後一次完全備份和最後一次差異備份),缺點是每次備份需要的時間較長。
2、恢復的定義及分類
恢復就是發生故障後,利用已備份的資料或控制檔案,重新建立乙個完整的資料庫。恢復分為以下兩種型別。
1)例項恢復:當oracle例項出現失敗後,oracle自動進行的恢復。
2)介質恢復:當存放資料庫的介質出現故障時所做的恢復。介質恢復又分為完全恢復和不完全恢復。
完全恢復:將資料庫恢復到資料庫失敗時的狀態。這種恢復是通過裝載資料庫備份,並用全部的重做日誌做到的。
不完全恢復:將資料庫恢復到資料庫失敗前的某一時刻的狀態。這種恢復是通過裝載資料庫備份並應用部分的重做日誌做到的。進行不完全恢復後,必須在啟動資料庫時用resetlogs選型重設聯機重做日誌。
三、使用rman(
recovery manager)工具
用於備份和恢復資料庫檔案、歸檔日誌和控制檔案。
也可以用來執行完全或不完全的資料庫恢復。rman有3種不同的使用者介面:命令列方式,gui方式(整合在oem中的備份管理器)、api方式(用於整合到第三方的備份軟體中)。它具有如下優點:
2)支援多級增量備份
3)支援並行備份、恢復
4)減少所需要的備份量
5)備份、恢復使用簡單
1.rman元件
四。rman例項
1、建立恢復目錄(恢復目錄資料庫)
1)、建立恢復目錄資料庫
#mkdir -p /opt/oracle/oradata/rmandb1
#chown -r oracle /opt/oracle/oradata/rmandb1
#sqlplus /nolog
sql>conn sys/oracle11g as sysdba
sql> create tablespace rmants datafile '/opt/oracle/oradata/rmandb/rmants.ora' size 20m ;
2)、在恢復目錄資料庫中建立rman 使用者並授權
sql> create user rman identified by rman
default tablespace rmants
temporary tablespace temp;
sql> grant connect,resource to rman;
sql> grant recovery_catalog_owner to rman;
3)、在恢復目錄資料庫中建立恢復目錄
$rman catalog rman/rman
rman>create catalog tablespace rmants;
2、註冊目標資料庫到恢復目錄
1)、進入rman環境
$rman
2)、連線目標資料庫
rman>connect target sys/oracle11g;
3)、連線恢復目錄資料庫
rman>connect catalog rman/rman@newrman;
4)、註冊
rman>register database;
3、在歸檔模式下備份和恢復
1).將資料庫設定未歸檔模式,資料庫例項要處於啟動狀態,資料庫已經載入或開啟狀態
sql>shutdown immediate;
sql>startup mount;
sql>alter database archivelog;
2)、首先修改快閃恢復區的引數(將資料儲存到快閃恢復區)
sql>alter system setdb_recovery_file_dest_size=2g;
3)、建立乙個表空間和表
sql>create tablespace tab1
datafile『/opt/oracle/oradata/rmandb/tab1.dbf』 size 10m;
4)、向表tab1中新增記錄
insert into tab1 values(1);
commit;
5)、使用資料庫使用者sys登入rman
$rman target sys/oracle11g
6)、關閉資料庫,並從rman載入資料庫到mount狀態
rman>shutdown immediate
rman>startup mount;
7)、備份整個資料庫到快閃區
rman>backup database;
(備份資料庫時預設不包含歸檔日誌檔案,若要包含歸檔日誌檔案,則加上plus archivelog關鍵字,delete input 的意思是在備份完成後,刪除archivelog檔案。
rman〉backup database plus archivelog delete input)
8)、關閉資料庫
rman>shutdown immediate;
9)、刪除資料庫檔案 rm /opt/oracle/oradata/rmandb/tab1.dbf
10)、恢復資料檔案
在rman 中關閉資料庫庫並啟動到mount狀態
rman>startup mount;
使用rman重建資料庫
rman>restore database;(restore用於恢復到備份時刻,資料**於備份資料)
恢復(recover)資料庫
rman>recover database;(restore用於恢復備份時刻到故障點之間的資料,資料**於archivelog)
使用rman將資料庫從mount狀態切換到open狀態
rman>alter database open;
11)、驗證資料庫檔案是否已經恢復
select * from tab1
4、備份與恢復表空間
rman>backup tablespace tab1;
rman>run
5、資料檔案備份與恢復
1).檢視當前資料庫的所有資料檔案
col file_name for a55
set line 100
sql>select file_id,file_name,tablespac_name from dba_data_files;
2).使用rman備份資料檔案
rman>backup datafile n;
3).使用rman備份控制檔案
rman>backup currentcontrolfile;
4).關閉資料庫
rman>shutdown immediate;
5).模擬故障,刪除資料庫檔案c:\data\tab1.dbf
6).rman>run(也會遇到恢復時不需要先卸表空間,在掛載表空間)
RMAN備份及恢復
rman備份 1 spfile和controlfile的自動備份 當configure controlfile autobackup off時,僅當備份system01.dbf時才會自動備份controlfile和spfile 當configure controlfile autobackup on...
Oracle之RMAN備份恢復1 基礎篇
1,rman的作用與體系架構 1.1 什麼是rman rman recovery manager 是oracle8i以後dba的一重要工具一般位於 oracle home bin目錄下,主要用來備份,還原和恢復.可以實現基於資料庫解包,表空間級別完全恢復和不完全恢復.rman實際由兩部分組成,可執行...
RMAN備份恢復之BLOCKRECOVER
rman提供了單獨恢復個別block的功能,這種功能作為普通恢復方法的補充,對於恢復資料庫中出現的壞塊可以快速的進行恢復。rman的blockrecover是利用乙個全備份作為基礎,在此基礎中應用日誌,對於需要恢復的個別block進行恢復。下面演示乙個blockrecover的簡單例子,首先是構造乙...