RMAN學習筆記03——備份
?
?
??? 基礎知識準備得差不多了,今天開始進入RMAN備份的實際演練。RMAN的備份提供了非常多的種類選擇,例如冷備、熱備、全庫備份、數據文件備份、Log備份、controlfile備份等等,非常全面。當然實際環境中的備份基本都是使用腳本進行,但是這里先學習一下單條命令的語法和格式處理:
?
?
一、Copy備份:
?
??? Copy用于數據文件的備份,可以復制單個數據文件、歸檔日志和控制文件等等。(其實跟OS里的復制粘貼是一個道理)
?
??? 具體語法如下:
??? COPY KEYWORD <input_file> TO <location> ;
?
??? 其中:input_file用文件地址'D:\oracle\oradata\dodo\WXQ_TBS.ORA'來表示需要備份的單個數據文件。
?
??? KEYWORD說明了文件的類型,包括:
?
??? DATAFILE: 備份數據文件
??? CURRENT CONTROLFILE: 備份控制文件
??? ARCHIVELOG: 備份歸檔日志
??? DATAFILECOPY: 備份已經備份的數據文件
??? CONTROLFILECOPY: 備份已經備份的控制文件
??? BACKUPPICE: 備份已經使用BACKUP備份的文件
?
??? 舉例說明:
?
??? RMAN> copy datafile 'D:\oracle\oradata\dodo\XDB01.DBF' to 'D:\oracle\oradata\dodo\rmanback\test1.cp';
??? RMAN> copy current controlfile to 'D:\oracle\oradata\dodo\rmanback\test2.cp';
??? 注:current controlfile 不能制定文件名
?
?
二、BackUp備份:
?
??? BACKUP是對數據的備份,可以備份某個表空間或者整個數據庫,語法如下:
??? BACKUP [level] <backup_type> ;
?
??? LEVEL為備份增量級,取值為FULL(全備份)或INCREMENTAL(增量備份)
?
??? BACKUP_TYPE為備份的數據庫對象類型,包括以下幾類:
?
1.備份數據庫:
?
①
RMAN> BACKUP DATABASE FORMAT 'e:\oradata\backup\%U';
?
注:若不加FORMAT則自動復制到自己設定的默認channel目錄里,若沒有默認設置,則備份到ORACLE_HOME/database下
?
②
RMAN> run {
2> allocate channel ch1 device type disk format 'e:\oradata\backup\%U';
3> allocate channel ch2 device type disk format 'e:\oradata\backup\%U';
4> BACKUP DATABASE;}
?
注:備份之后可使用一下命令顯示備份信息
RMAN> list backup of database;
?
2.備份表空間:
?
①
RMAN> BACKUP TABLESPACEUSERS FORMAT 'e:\oradata\backup\%U';
?
②
RMAN> configure channel 1 device type disk format 'e:\oradata\backup\%U';
RMAN> BACKUP TABLESPACEUSERS;
?
注:channel后面跟的為號數,不是名字,不能用ch1
?
③
RMAN> run {
2> allocate channel ch1 device type disk format 'e:\oradata\backup\%U';
3> BACKUP TABLESPACE SYSTEM;}
?
注:查看備份信息
RMAN> list backup of tablespace users;
?
3.備份數據文件:
?
首先需要使用以下SQL來確定每個datafile的編號:
?
select file_name,file_id,tablespace_name from dba_data_files;
?
①
RMAN> BACKUP DATAFILE 1,2,3;
?
注:
RMAN> list backup of datafile n;
?
4.備份控制文件:
?
①
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> configure controlfile autobackup format for device type disk to 'e:\oradata\backup\ctl_%F';
設置自動備份controlfile,以后任何操作都會自動備份到相應地址
?
②
對于SYSTEM TABLESPACE會自動備份CONTROLFILE
?
③
RMAN> BACKUP CURRENT CONTROLFILE;
?
④
在其他的備份操作中加入CONTROLFILE備份
RMAN> BACKUP TABLESPACE USERS INCLUDE CURRENT CONTROLFILE;
?
注:查看備份情況 RMAN> list backup of controlfile;
?
5.備份歸檔文件:
?
①
RMAN> BACKUP ARCHIVELOGALL [DELETE INPUT,DELETE ALL INPUT];
?
ALL
:備份全部歸檔日志
DELETE INPUT
:備份結束后刪除已經備份的歸檔日志
DELETE ALL INPUT
:備份結束后刪除歸檔目錄中的所有文件
?
②
在其他的備份操作中加入ARCHIVELOG備份
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
?
PLUS ARCHIVELOG的工作流:
1.運行ALTER SYSTEM ARCHIVE LOG CURRENT語句對當前redolog進行歸檔
2.執行BACKUP ARCHIVELOG ALL命令備份所有已歸檔日志
3.執行BACKUP命令對指定項進行備份
4.再次運行ALTER SYSTEM ARCHIVE LOG CURRENT對當前redolog歸檔
5.對新生成的尚未備份的歸檔文件進行備份
?
查看:RMAN> LIST BACKUP OF ARCHIVELOG ALL;
?
?
三、增量備份:
?
??? RMAN提供了1-3級的增量備份級別來提高備份速度。
??? 增量備份可以在歸檔模式和非歸檔模式下進行,但是在非歸檔模式下只能進行脫機備份。
?
??? RMAN> BACKUP INCREMENTAL LEVEL=1 TABLESPACE system;
?
?
?