oracle備份 使用RMAN 工具

在平常維護中 備份是咱們運維最常作的工做,而且很是重要 。 那九妹帶你 使用RMAN 工具有份Orcle數據庫

 

3、使用RMAN工具windows

RMANrecovery  manager)是oracle的一個重要工具,用於備份和恢復數據庫文件、歸檔日誌和控制文件。也能夠用來執行徹底或不徹底的數據庫恢復。RMAN3種不一樣的用戶接口:命令行方式,GUI方式(集成在OEM中的備份管理器)、api方式(用於集成到第三方的備份軟件中)。它具備以下優勢:api

1)支持在線熱備份安全

2)支持多級增量備份服務器

3)支持並行備份、恢復session

4)減小所須要的備分量oracle

5)備份、恢復使用簡單運維

RMAN有豐富的特性集。隨着oracle新版本的發佈,RMAN特性也不斷加強,使得RMAN幾乎在任何狀況下均可以備份和恢復數據庫。其中不少的新特性都是針對平常工做中所遇到的問題和困難開發的。ide

 

一、RMAN組件工具

wKioL1kT5uODHTruAAFkXQp_LE8048.png-wh_50 

1)target database(目標數據庫)

目標數據庫就是須要RMAN對其進行備份與恢復的數據庫。RMAN能夠備份數據文件、控制文件、歸檔日誌文件、spfile

 

2)server  session(服務器會話)

RMAN啓動數據庫上的oracle服務器進程,並創建一個與目標數據庫的會話。由目標數據庫上的服務器進程進行備份、還原、恢復的實際操做。

 

3RMAN repositoryRMAN資料庫)

RMAN使用過程當中會用到的控制信息,是一些關於備份、歸檔日誌及RMAN活動的元數據。

4recovery  catalog(恢復目錄)

恢復目錄是創建在RMAN恢復目錄數據庫上的一種schema對象,用於保存RMAN資料庫數據。

恢復目錄是一個可選的組件。RMAN會將資料庫數據記錄在目標數據庫的控制文件中,但這樣不夠安全,由於一旦目標數據庫的控制文件損壞就意味着全部的RMAN備份失效。因此建議在單獨的一個數據中創建恢復目錄另外保存一份資料庫數據。

對於

對於大部分中等環境的企業環境,將RMAN備份信息存儲在恢復目錄數據庫中,而不是存儲在目標數據庫的控制文件中,這樣可以發揮RMAN工具的所有功能,此外,RMAN的不少高級功能也只有在建立了恢復目錄的環境下才被支持。

5)MML(媒體管理庫)

MMLmedia management layer)是第三方工具或軟件,用於管理對磁帶的讀寫與文件的跟蹤管理,若是你要想直接經過RMAN備份到磁帶上,就必須配置媒體管理層,媒體管理層的工具和RMAN共同完成備份與恢復。

 

6)快閃恢復區

快閃恢復區是oracle數據庫用於保存全部與恢復相關的文件的默認磁盤位置。這些相關文件包括歸檔日誌、RMAN備份、控制文件自動備份、複用的控制文件和重作日誌副本及閃回日誌文件。

7)輔助數據庫

在正常使用時,RMAN會與目標數據庫一塊兒使用,若是建立了恢復目錄數據庫,那麼也會與恢復目錄數據庫一塊兒使用。在某些狀況下,但願建立輔助數據庫,輔助數據庫是使用RMAN從目標數據庫的備份中建立新的數據庫。輔助數據庫能被建立做爲備用數據庫使用。在產品數據庫發生災難時,可以在不丟失任何數據及停機時間最短的狀況下切換至備用數據庫。

 

二、建立恢復目錄

wKioL1kT5teSUKRQAAC0rLpGRNE120.png-wh_50 

恢復目錄存在於RMAN的目錄數據庫中,相似於標準的數據庫目錄,主要包含以下幾個部分的信息:

1)備份和恢復信息,能夠是多個目標數據庫

2)RMAN腳本,能夠存儲供重複使用

3)關於數據文件和日誌文件的本分信息

4)關於目標數據庫的表空間和數據文件的信息

 

 rman 工具的基本組件及工做原理以在上面陳列出來 接下來九妹帶你正式使用RMAN 備份

大致分爲6

  1. 建立恢復目錄數據庫(相似於容器存放備分內容 )

  2. 在恢復目錄中建立RMAN用戶並受權

  3. 在恢復數據庫中建立恢復目錄

  4. 註冊

  5. 通道分配(自動  手動  有默認通道可不建立)

  6. 開始備份

     

1.

1)建立恢復目錄數據庫

create tablespace ccdatafile '/opt/oracle/oradata/cc.ora'   cc:恢復目錄數據庫明名稱

size 20M autoextend on next 5m maxsize unlimited            大小20m  可擴展5m 可不限制增加

wKioL1kT6THztbDrAAAWmlRxQM4696.png-wh_50

2.

1)在恢復目錄數據庫中建立RMAN 用戶並受權

create user lmy identified by oracle default tablespace cc   建立用戶lmy使用的恢復目錄是c

temporary tablespace temp                                    臨時的表空間是temp

 

wKiom1kT6gfwSCZuAAAQrNgTBr4117.png-wh_50

3.授予權限

grant connect,resource to ydw

grant recovery_catalog_owner to ydw

4.建立目錄

wKiom1kT7E_wN7RFAABOBIug2vs420.png-wh_50

5.註冊

wKioL1kT7PqRa5xNAABgI1ZRHEw193.png-wh_50

6.通道

 

通道分配

使用RMAN進行備份和恢復操做時,必須進行通道的分配,一個通道是RMAN和目標數據庫之間的一個鏈接,通道指定了某種類型的設備用於備份和恢復,RMAN可使用的通道設備包括磁盤與磁帶兩種。

1.自動通道

wKiom1kT7dnjMb58AABDk1kyV3o559.png-wh_50

wKioL1kT7kSxiwr9AAA8dUYjGaU460.png-wh_50

2.手動通道

wKioL1kT75SSMW4HAAASN9tJavM034.png-wh_506

6.恢復

 

在歸檔方式下備份與恢復

要用RMAN進行聯機備份操做。數據庫就必須位於歸檔模式。恢復目錄必須打開,目標數據庫進程必須啓動,數據庫已經加載或者打開。

1)備份和恢復整個數據庫

查看當前數據模式爲非歸檔模式

wKiom1kT8DvwVPAYAAAk-PkGV-A701.png-wh_50

wKiom1kT8JnCbi7TAABH8eVIJPU514.png-wh_50

修改成歸檔模式

wKiom1kT8QaTyOmdAABFh_I7DiY008.png-wh_50

wKioL1kT8WShZANNAAAIwlb2URQ623.png-wh_50

換RMAN 用戶開始備份

rman catalogg lmy/oracle target /

backup database;

查看快閃恢復區 發現備份成功

wKioL1kT8ubAf0ELAAAvnMT35mg276.png-wh_50

備份時 不包含歸檔日誌文件  

若是還要包含歸檔日誌文件,則要加上plus archivelog關鍵字,delete input的意思是在備份完成後,刪除archivelog文件。

backup database plus archivelog delete input;

 

測試備份是否能夠生效   刪除文件 sytem01.dbf  系統文件  

  1. 前因在關閉數據庫狀況下進行

  2. 使用 sys連接ramn  

    wKiom1kT9cvAsX7AAAAN0DfXTAc078.png-wh_50

  3. 重建數據庫物理文件

    wKioL1kT9fORXe_WAABJT56L8j8922.png-wh_50

  4. 同步恢復

    wKioL1kT9iDz1HdRAAAqVQRd8MQ050.png-wh_50

  5. 打開數據庫

    wKiom1kT9kOg4nQSAABfgr9KaH4160.png-wh_50

    wKioL1kT9oTSoF_0AAAZgKfiiRI068.png-wh_50

  6. 已經恢復

    wKiom1kT9qviYDyXAABrqpwz_zU486.png-wh_50 

 二.

1)備份和恢復表空間

表空間users備份:

wKiom1kT-cmiMnWBAAB6YDCbU7M035.png-wh_50

備份多個表空間

wKiom1kT-fbw59k8AABOY_32jkA271.png-wh_50

使用 run  方式備份

run

{

allocatv channel ch1 device type disk;

backup format '/opt/bakup/rmanback/%U’

releasw channel ch1;

}

若是隻丟失了特定的表空間的數據文件,那麼能夠選擇只恢復這個表空間,而不是恢復整個數據庫,表空間恢復能夠在不關閉數據庫的狀況下進行,只須要將須要恢復的表空間offline

 恢復表空間

wKioL1kT-t6T0IzsAABEXWfsvHw090.png-wh_50

 

 

補充自動備份:

1)生成腳本文件,如backup.rcv

  假定文件內容以下:

$>cat backup.rcv

connect target sys/password rcvcat rman/rman@localname;

run{

allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

backup fileaperset 3 format /u01/oradata/backup/arch%u_%s_%p

archivelog all delete input;

release channel c1;

release channel c2;

release channel c3;

}

2)生成執行文件

  在windows上生成backup_archive.bat,內容包括

rman cmdfile = backup.rcv

  在unix下生成 backup_archive.sh,內容包括

/oracle/ramn/rman cmdfile = backup.rcv

3)加入調度

  在windows中用任務計劃嚮導便可,或使用at命令。

  在unix中,在目標機器上編寫一個文件,用以啓動自動備份進程。假定文件名爲ORACLE,文件將放在/var/spool/cron/crontabs目錄下

$>cat oracle

0 23 * * 0 backup_archive.sh

#表示星期天23點對數據庫備份

0 12,18 * * * backup_archive.sh

#表示天天12點,18點備份

Crontab文件的每一行由六個域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來

相關文章
相關標籤/搜索