備份數據庫:sql
顯示RMAN配置 數據庫
RMAN>show all;session
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/oracle/rmanbak/df_%d_%U';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/10g/dbs/snapcf_orcl.f'; # default併發
RMAN> backup database format '/u01/app/oracle/oradata/rman/%s_%d_%U'; --備份整個數據庫oracle
RMAN> backup as compressed backupset database format '/u01/app/oracle/oradata/rman/%s_%d_%U'; --備份整個數據庫並壓縮備份集app
RMAN> run{
2> allocate channel ch1 type disk maxpiecesize=2g;--指定一個通道 並設置最大切片大小爲2g
3> backup as compressed backupset format '/u01/app/oracle/oradata/rman/%U_%d_%s' filesperset=3 database;--備份數據庫並壓縮到指定文件夾,備份集中容許容納2個文件
4> release channel ch1;--釋放通道
5> }spa
RMAN> configure device type disk parallelism 3; --將並行度改成3rest
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored
starting full resync of recovery catalog
full resync complete日誌
RMAN> backup as compressed backupset format '/u01/app/oracle/oradata/rman/%U_%d_%s' filesperset=3 database; --並行度改成以後,自動啓用了3個通道orm
Starting backup at 07-NOV-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=153 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=31 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=142 device type=DISK
RMAN> list backupset tag='TAG20171107T185023';
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
26936 Full 1.18M DISK 00:00:00 07-NOV-17
BP Key: 26944 Status: AVAILABLE Compressed: YES Tag: TAG20171107T185023
Piece Name: /u01/app/oracle/oradata/rman/81sj067h_1_1_JINXIN42_12545
List of Datafiles in backup set 26936
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
3 Full 3902866 07-NOV-17 /u01/app/oracle/product/11.2.0/db_1/jinxin42/u01/app/oracle/oradata/jinxin42/undotbs01.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
26937 Full 1.77M DISK 00:00:02 07-NOV-17
BP Key: 26945 Status: AVAILABLE Compressed: YES Tag: TAG20171107T185023
Piece Name: /u01/app/oracle/oradata/rman/84sj067i_1_1_JINXIN42_12548
Control File Included: Ckp SCN: 3902868 Ckp time: 07-NOV-17
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
26940 Full 149.52M DISK 00:00:39 07-NOV-17
BP Key: 26947 Status: AVAILABLE Compressed: YES Tag: TAG20171107T185023
Piece Name: /u01/app/oracle/oradata/rman/85sj068n_1_1_JINXIN42_12549
List of Datafiles in backup set 26940
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
2 Full 3902881 07-NOV-17 /u01/app/oracle/product/11.2.0/db_1/jinxin42/u01/app/oracle/oradata/jinxin42/sysaux01.dbf
5 Full 3902881 07-NOV-17 /home/oracle/duni_test/TestLuo.dbf
備份數據文件:
RMAN> backup as copy datafile 4 format '/u01/app/oracle/oradata/rman/%U_%d_%s'; --備份類型爲鏡像備份
RMAN> list copy;
RMAN> backup datafile 4,5,6 format '/u01/app/oracle/oradata/rman/%U_%d_%s'; --備份類型爲備份集
備份表空間:
RMAN> backup tablespace users,example format '/u01/app/oracle/oradata/rman/%U_%d_%s';
RMAN> backup tablespace temp; --臨時表空間不須要備份
備份控制文件:
RMAN> configure controlfile autobackup on; --自動備份控制文件置爲on狀態,將自動備份控制文件和參數文件
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
注:在備份system01.dbf或system表空間時將會自動備份控制文件和參數文件,即便自動備份控制文件參數爲off
RMAN> backup current controlfile;--單獨備份控制文件及參數文件
RMAN> backup datafile 4 include current controlfile;--備份數據文件時包含控制文件
RMAN> sql "alter database backup controlfile to ''/tmp/orclcontrol.bak''";
RMAN> sql "alter database backup controlfile to trace as ''/tmp/orclcontrol.sql''";
RMAN> backup spfile format '/u01/app/oracle/oradata/rman/%U_%d_%s'; --單獨備份spfile,配置了才能備份
RMAN> backup copies 2 device type disk spfile;
備份歸檔日誌文件:
備份歸檔日誌時僅僅備份歸檔過的數據文件(不備份聯機重作日誌文件)
備份歸檔日誌時老是對歸檔日誌作完整備份
RMAN對歸檔日誌備份前會自動作一第二天志切換,且從一組歸檔日誌中備份未損壞的歸檔日誌
RMAN會自動判斷哪些歸檔日誌須要進行備份
歸檔日誌的備份集不能包含其它類型的文件
RMAN> backup format '/u01/app/oracle/oradata/rman/lf_%d_%U' archivelog all delete input; --delete input 刪除全部已經備份過的歸檔日誌
RMAN> backup archivelog all delete input format '/u01/app/oracle/oradata/rman/lf_%d_%U'; --此種寫法實現了上述相同的功能
RMAN> backup archivelog sequence between 50 and 125 thread 1 delete input;
RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";
RMAN> backup format '/u01/app/oracle/oradata/rman/lf_%d_%U' archivelog from sequence=50 delete input;
使用plus archivelog時備份數據庫完成的動做(backup database plus archivelog)
1.首先執行alter system archive log current 命令(對當前日誌歸檔)
2.執行backup archivelog all 命令(對全部歸檔日誌進行備份)
3.執行backup database命令中指定的數據文件、表空間等
4.再次執行alter system archive log current
5.備份在備份操做期間產生的新的歸檔日誌
--執行下面的命令,並觀察備份列出的信息,能夠看到使用plus archivelog時使用了上面描述的步驟來進行備份
RMAN> backup database plus archivelog format '/u01/app/oracle/oradata/rman/lg_%d_%U' delete input;
備份閃回區:
RMAN> backup recovery area;
使用backup recovery area時,將備份位於閃回區且未進行過備份的全部文件,這些文件包括完整、增量備份集、自動備份的控制文件(假定使用閃回區做爲備份路徑時)、歸檔日誌、數據文件的鏡像副本等。閃回日誌,當前的控制文件。聯機重作日誌不會被備份
RMAN> backup recovery files;
使用backup recovery files時,將備份磁盤上未進行過備份的全部恢復文件,而不管是否位於閃回區
注:使用上述兩條命令時,備份目的地必須是磁帶
總結:
數據文件的備份集對於未使用的塊能夠執行增量備份,能夠跳過未使用過的數據塊來進行壓縮備份;
對於控制文件、歸檔日誌文件、spfile文件則是簡單的拷貝,並對其進行打包壓縮而已;
RMAN備份的其它特性
1.併發:主要用於提升備份的速度,能夠分爲手動併發或自動併發
手動併發:經過分配多個通道並將文件指定到特定的通道
RMAN> run {
2> allocate channel ch1 device type disk;
3> allocate channel ch2 device type disk;
4> allocate channel ch3 device type disk;
5> backup incremental level=0
6> format '/u01/app/oracle/oradata/rman/df_%d_%U'
7> (datafile 1 channel ch1 tag='sys')
8> (datafile 3 channel ch2 tag='aux')
9> (datafile 2,4,5,6 channel ch3 tag='other');
10> sql 'alter system archive log current';
11> release channel ch1;
12> release channel ch2;
13> release channel ch3;
14> }
自動併發:使用configure配置併發度便可
RMAN> configure device type disk parallelism 3 backup type to backupset;--下面的備份將自動啓用個通道執行併發
RMAN> backup database format '/u01/app/oralce/oradata/rman/p222_%U';
2.複用備份
即將一個備份集複製多份,同一備份集,Oracle最多可複用個
手工指定:
RMAN> backup copies 2 datafile 4 format '/u01/app/oracle/oradata/rman/d1/df_%U','/u01/app/oracle/oradata/rman/d2/df_%U';
自動指定:配置下列參數
RMAN> configure datafile backup copies for device type disk to 2; --指定備份數據文件副本數
RMAN> configure archivelog backup copies for device type disk to 2;--指定備份日誌文件副本數
3.備份備份集
bacup backupset
4.鏡像備份
鏡像備份時會檢查數據文件中是否存在壞塊,可使用nochecksum來跳過壞塊的檢測,也能夠指定maxcorrupt判斷有多少個壞塊時,Oracle將中止該鏡像備份
RMAN> backup as copy datafile 4 format '/u01/app/oracle/roradata/rman/users.dbf' tag='users'
--如下命令等同於上一條
RMAN> copy datafile 4 to '/u01/app/oracle/oradata/rman/user01.dbf';
RMAN> backup as copy archivelog like 'sfdgegh.arc' format '/u01/app/oracle/oradata/rman/arch_1107.bak';
--使用下面的configure命令將backup type設置爲copy以後,則缺省的備份爲鏡像副本
RMAN> configure device type disk parallelism 1 backup type to copy;
RMAN> backup datafile 4 format '/u01/app/oracle/oradata/rman/users.dbf.bak' tag=users; --因爲上面的設置,則此命令備份的將是鏡像副本
--使用並行度來執行鏡像拷貝
RMAN> configure device type disk parallelism 4;
RMAN> backup as copy #3 files copied in parallel
2> (datafile 1 format '/u01/app/oracle/oradata/rman/df1.bak')
3> (datafile 2 format '/u01/app/oracle/oradata/rman/df2.bak')
4> (datafile 3 format '/u01/app/oracle/oradata/rman/df3.bak');
鏡像備份時指定子句DB_FILE_NAME_CONVERT來實現鏡像路徑轉移,該子句也是一個初始化參數,用於primary db 到standby db的數據文件的轉換
DB_FILE_NAME_CONVERT = ('string1' , 'string2' , 'string3' , 'string4' ...),用string2替換string1,string4替換string3
RMAN> backup as copy device type disk
2> db_file_name_convert('oradata/orcl','bk/rmbk')
3> tablespace users;
5.壓縮備份集
RMAN> configure channel device type disk format '/u01/app/oracle/oradata/rman/%d_%U.bak';
--下面的命令使用了參數as compressed來實現手動壓縮
RMAN> backup as compressed backupset database;
RMAN> backup as compressed backupset datafile 4,5,6;
--下面使用configure命令配置自動壓縮備份集功能,則後續的備份會自動使用壓縮功能
RMAN> configure device type disk parallelism 4 backup type to compressed backupset;
--因爲設置了自動壓縮,則下面的命令將壓縮備份的system表空間及控制文件、參數文件
RMAN> backup tablespace system tag=system;
6.使用tag標記
tag標記能夠爲備份集或映像副本指定一個有意義的名字,以備後續使用,其優勢以下:
爲備份集或映像副本提供描述信息
可以在list 命令中使用更好的定位備份文件
可以在restore和switch命令中使用
同一個tag在多個備份集或多個映像副本中使用
當未指定tag標記時,則系統產生缺省的tag標記,其格式爲:TAGYYYYMMDDTHHMMSS
RMAN> backup as compressed backupset datafile 1,2,3 tag='Monthly_full_bak';
RMAN> backup as compressed backupset tablespace users tag='Weekly_full_bak';
RMAN> list backupset tag=monthly_full_bak;
7.增量備份
差別增量備份將備份自上次增量備份以來全部發生改變的數據塊
累計增量備份將備份自上次級增量備份以來全部改變過的數據塊
--下面啓用級增量備份
RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 0 database
4> format '/u01/app/oracle/oradata/rman/db_%d_%U'
5> tag=db_inc_0;
6> release channel ch1;
7> }
SQL> select sid,sofar,totalwork from v$session_longops; --查詢備份狀況
--下面啓用級差別增量備份
RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 1 database
4> format '/u01/app/oracle/oradata/rman/db1_%d_%U'
5> tag=db_inc_1;
6> release channel ch1;
7> }
--下面啓用級累計增量備份
RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 1 cumulative database
4> format '/u01/app/oracle/oradata/rman/dbc_%d_%U'
5> tag=db_inc_c_1;
6> release channel ch1;
7> }
8.啓用塊變化跟蹤
啓用塊變化跟蹤便是指定一個文件用於記錄數據文件中哪些塊發生了變化,在RAMN進行增量備份時,僅僅需讀取該文件來備份這些發生變化的塊,從而減小了備份時間和I/O資源。
使用下面的命令來啓用塊變化跟蹤
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '<dir>'
SQL> alter database enable block change tracking
2 using file '/u01/app/oracle/oradata/orcl/blk_ch_trc.trc';
SQL> ho ls -lht /u01/app/oracle/oradata/orcl/blk_ch_trc.trc
-rw-r----- 1 oracle oinstall 12M Oct 15 19:41 /u01/app/oracle/oradata/orcl/blk_ch_trc.trc
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- --------------------------------------------- ----------
ENABLED /u01/app/oracle/oradata/orcl/blk_ch_trc.trc 11599872
SQL> alter database disable block change tracking; --disable後塊變化跟蹤文件被自動刪除
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- --------------------------------------------- ----------
DISABLED
9.備份保留策略
保留策略主要是保留備份副本的一些規則,一般用於知足恢復或其餘的須要(好比磁盤空間或磁帶空間大小限制),備份保留策略分爲冗餘和恢復窗口,這兩種保留策略互不兼容,要麼使用前者,要麼使用後者
備份冗餘
默認爲,能夠經過RMAN> configure retention policy to redundancy 2;來修改,當爲時,RMAN會爲每一個數據文件、歸檔日誌、控制文件生成一個備份。可使用report obsolete命令查看備份數多於的備份,並使用delete obsolete來刪除過期的備份
恢復窗口
恢復窗口容許完成恢復到過去某個時間點的時點恢復,一般設定爲多少天,使用命令RMAN> configure retetion policy to recovery window of 7 days,該命令將確保具備足夠的數據文件和歸檔日誌來執行可以返回一個星期中任意時間點的不徹底恢復,且容許刪除隨着時間推移而變爲廢棄的備份,即應當知足該條件:SYSDATE - BACKUP CHECKPOINT TIME >= 7,對於大於天可是是恢復所須要的備份依然會被保留
清除備份保留策略
RMAN> configure retention policy clear;
注意obsolete 與expired
obsolete:是指根據保留策略來肯定該備份是否在恢復的時候須要,如不在須要或有更新的備份來替代,則該備份集被置爲obsolete,即廢棄的備份集或鏡像副本。
expired: 是指執行crosscheck時,根據存儲倉庫中記錄的備份信息來定位備份集或鏡像副本,而找不到對應的備份集或鏡像副本,則這些備份集或鏡像副本被置爲expired。
10.使用BACKUP ... VALIDATE驗證數據文件邏輯壞塊,損壞的壞塊將被記錄到v$database_block_corruption視圖
BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;