Oracle RMAN備份
Oracle RMAN備份集是用來存儲數據庫的備份信息,RMAN使用BACKUP命令對目標數據庫進行數據備份。
RMAN一個備份集可以存儲一個或多個文件的備份信息,所以說備份集經常用在需要同時備份多個數據文件的情況。每一個備份集是由多個備份片組成的,備份片是一個單獨的文件,并且備份片的大小也是有限制的。如果沒有限制備份片的大小,那么在備份集中只能存在一個備份片。
RMAN對Oracle數據庫備份,就是利用BACKUP命令把要備份的數據庫對象備份成備份集,具體命令如下:
BACKUP [level] [backup_type][option]
語法解析:
1、level:指的是備份的增量,可以是1、2、3、4或者FULL, FULL代表的是全備份。
2、backup_type:指的是要進行備份的數據庫對象,這里可以是database (數據庫)、datafile (數據文件)、tablespace (表空間)、archivelog all (備份歸檔日志文件)等對象。
3、option:一個可選項,包括channel (用于指定備份所使用的通道)、maxsetsize (定義備份集的最大值)等信息。
例1、利用backup命令備份users表空間,具體命令如下:
backup full tablespace users;
通過上圖可以發現,我們進行備份users表空間時,由于里面有兩個數據文件,backup備份是對應備份成兩個BKP文件。同時在我們進行全庫備份或表空間備份時,在未開啟歸檔模式的情況,只能進行冷備份,就是要把數據庫關閉并啟動mount,但是在開啟歸檔模式下,就可以進行熱備份,筆者的數據庫就是在開啟歸檔模式下進行的熱備份。
例2、利用backup命令進行全庫備份。代碼如下:
backup full database;
Oracle RMAN恢復
Oracle RMAN恢復是RMAN備份的逆過程,主要是通過restore命令還原備份信息,使用recover完成數據庫的同步恢復工作。下面介紹RMAN是如何進行備份的恢復。
RESTORE還原
RMAN使用RESTORE命令可以還原備份的信息,就是把數據還原到之前備份時的還原點,RESTORE命令的具體語法如下:
RESTORE object
語法解析:
1、object指的是數據庫對象,可以是database (數據庫)、datafile (數據文件)、tablespace (表空間)、archivelog (歸檔日志文件)、controlfile(控制文件)等對象。
2、restore 是還原,文件級的恢復,就是物理文件還原,所以只有當數據文件或其他文件丟失時,使用restore進行還原,還原的前提是數據庫在mount狀態下。
RECOVER恢復
RMAN使用RECOVER命令可以恢復數據庫,該命令是負責把歸檔日志文件用于重建的數據文件,來完成數據庫的同步恢復。recover恢復是數據級的恢復,邏輯上恢復,即是一步一步利用歸檔日志恢復到出事的那個時間點,保持數據的一致性。但是,recover恢復的前提得是數據庫開啟了歸檔日志模式。
recover恢復語法:
recover object;
語法解析:
1、這里的object指的是要恢復的數據庫對象,和restore的語法一致。而且都需要在數據庫關閉且mount狀態進行數據庫的恢復。
總結:
在實際應用中,restore還原和recover恢復是結合一起使用的,假如出現數據文件丟失導致數據庫宕機時,我們首先是利用restore命令把之前定時備份好的數據文件還原到備份的時間點,然后再利用recover命令通過歸檔日志把還原點到出事點之間的數據進行恢復。最終完成數據庫的完全恢復。