RMAN備份恢復Oracle

2021-08-21 23:55:00 字數 4311 閱讀 7880

一、備份與恢復概述

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的簡單例子,首先是構造乙...