Oracle RMAN 學習:演練進階篇
Oracle RMAN 學習:演練進階篇
5 Rman備份演練進階篇
5.1 是否選擇增量備份
Backup命令生成的備份集中只備份了那些使用了的資料塊,備份集實際大小已經較目標資料庫的資料檔案小了很多
備份時只備份那些修改過的資料,
如果資料庫在非歸檔模式下,只能在db處於資料庫乾淨關閉的情況才能進行一致的增量備份
在歸檔模式下,db處於開啟,關閉都可以
5.1.1 增量備份選項
實質就是指定一個引數,incremental level=n,在backup時加上即可,增量備份可以建立兩個級別,,用整型數字
Backup database是資料庫的完整備份,但是不同於數據庫增量備份的0級備份,
在建立增量備份時,既可以對全庫進行備份,也可以僅對錶空間甚至資料檔案級建立增量備份
例: 1建立增量級別0的全庫備份
RMAN> backup incremental level=0 database format '/u01/oracle/backup/backup_increment_%U';
Starting backup at 24-OCT-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 0 datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/grs/system01.dbf
input datafile fno=00007 name=/u01/app/oracle/oradata/grs/cmask01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/grs/sysaux01.dbf
input datafile fno=00005 name=/u01/app/oracle/oradata/grs/example01.dbf
input datafile fno=00006 name=/u01/app/oracle/oradata/grs/yyhhqq.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/grs/undotbs01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/grs/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-OCT-13
channel ORA_DISK_1: finished piece 1 at 24-OCT-13
piece handle=/u01/oracle/backup/backup_increment_0kon7io8_1_1 tag=TAG20131024T163000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:04:06
Finished backup at 24-OCT-13
Starting Control File and SPFILE Autobackup at 24-OCT-13
piece handle=/u01/app/oracle/flash_recovery_area/GRS/autobackup/2013_10_24/o1_mf_s_829672447_96kpw106_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 24-OCT-13
2 為資料檔案建立增量級別1的備份
RMAN> backup incremental level=1 datafile '/u01/app/oracle/oradata/grs/users01.dbf' format '/u01/oracle/backup/backup_increm_datafile_%U';
Starting backup at 24-OCT-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/u01/app/oracle/oradata/grs/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-OCT-13
channel ORA_DISK_1: finished piece 1 at 24-OCT-13
piece handle=/u01/oracle/backup/backup_increm_datafile_0mon7j7k_1_1 tag=TAG20131024T163812 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 24-OCT-13
Starting Control File and SPFILE Autobackup at 24-OCT-13
piece handle=/u01/app/oracle/flash_recovery_area/GRS/autobackup/2013_10_24/o1_mf_s_829672695_96kq3qv3_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 24-OCT-13
3 為表空間yyhhqq建立增量級別1的備份
RMAN> backup incremental level=1 tablespace users format '/u01/oracle/backup/backup_increm_user_%U';
Starting backup at 24-OCT-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/u01/app/oracle/oradata/grs/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-OCT-13
channel ORA_DISK_1: finished piece 1 at 24-OCT-13
piece handle=/u01/oracle/backup/backup_increm_user_0oon7j84_1_1 tag=TAG20131024T163828 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 24-OCT-13
Starting Control File and SPFILE Autobackup at 24-OCT-13
piece handle=/u01/app/oracle/flash_recovery_area/GRS/autobackup/2013_10_24/o1_mf_s_829672709_96kq45hg_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 24-OCT-13
5.1.2 增量備份型別
Rman提供了2中增量型別,differential(差異,預設),cumulative(累積),
預設情況下,rman 是差異備份,如果要建立累積備份,需要在backup時顯示指定
Rman>backup increment level=1 cumulative database;
5.1.3 增量備份注意事項
9i之前,執行rman備份,都會把所有資料塊都讀入記憶體,檢查每一個塊頭的scn資訊,
10g中提供了:塊修改跟蹤block change tracking(企業版的),rman不用再去掃描資料檔案中的每一個塊,直接通過塊修改跟蹤檔案可以獲取那些塊發生了修改的資訊
啟用塊修改跟蹤,--增量備份中
SQL> Alter database enable block change tracking using file'/u01/oracle/backup/block_change_tracking.log';
Database altered.
SQL> select filename,status,bytes from v$block_change_tracking;
FILENAME STATUS BYTES
/u01/oracle/backup/block_change_tracking.log ENABLED 11599872
禁用
Alter database disable block change tracking
檢視是否啟動
select * from v$block_change_tracking
DISABLED
雖然備份時間可能減短,並且備份集可以減小,但是進行恢復操作時,所花費的時間有可能會增加,因為資料恢復是不得的訪問多個備份集才能完成恢復操作
select status,filename from v$block_change_tracking
alter database enable block change tracking using file '/u02/Oracle_change.trace'
alter database enable block change tracking using file '/u02/Oracle_change_pdb.trace'
SQL> select status,filename from v$block_change_tracking;
no rows selected
SQL> alter database enable block change tracking using file '/u02/Oracle_change_pdb.trace';
alter database enable block change tracking using file '/u02/Oracle_change_pdb.trace'
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database
alter database disable block change tracking
5.2 是否使用rman 備份集的保留策略
Rman 提供了2種保留策略:基於時間和基於冗餘數量的保留策略
5.2.1 基於時間的保留策略
就是你希望資料庫最早能恢復到幾天前,比如將恢復時間設定為7,那麼rman所保留的備份就是可以保證你將資料庫恢復到一週內任何時刻下的那些檔案,通過configure命令配置
Rman> configure retention policy to recovery window of n days;n>=0整數
RMAN> configure retention policy to recovery window of 7 days;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
new RMAN configuration parameters are successfully stored
執行該命令後,rman將會保留那些將資料庫恢復到7天前的狀態時需要用到的備份
各個資料檔案滿足 system – backup checkpoint time>=7,任何不滿足上述條件的備份都將被rman廢棄,並delete obsolete刪除,
對於nocatalog下的備份,rman備份集都是保留在目標端的控制檔案中,對於rman儲存在控制檔案的資訊受到引數control_file_record_keep_time,預設是7天,一般建議該引數的設定不小於rman備份設定的時間,
當前控制檔案中分配的空間,可儲存記錄和已儲存記錄都可以通過v$controlfile_record_section
select * from v$controlfile_record_section
5.2.2 基於冗餘數量的備份保留策略
實質是某個資料檔案以各種形式(包括備份集和映象複製)存在的備份數量,如果某個資料檔案的冗餘備份超過了指定的數量,rman自動廢棄,
configure retention policy to redundancy n;n>=0
也可以通過下列命令設定成不採用任何備份策略
configure retention policy to redundancy none
5.2.3 根據備份策略來維護備份集
為rman設定備份策略,rman會自動判斷哪些備份集或映象複製檔案不必保留
Delete obsolete命令
Note:1 如果被判斷為廢棄的備份是一個單獨資料檔案的映象複製,在delete時直接刪除
2 如果是備份集中的一部分,則必須等整個備份集都廢棄了,才能刪除
RMAN對於obsolete和expired的定義,對於手工刪除的檔案,物理上已經不存在的,在執行了crosscheck命令之後,rman將其標記為expired,對於那些超出了備份保留策略的備份集片段,則標記為obsolete
5.3 是否使用多個通道
備份裝置:磁帶sbt,磁碟disk
5.3.1 手工分配通道
Allocate channel,該命令只能在run塊中使用
run{
allocate channel c1 device type disk format 'f:\mydb\backup\back_%u';
backup tablespace yyhhqq;
}
RMAN> run{
2> allocate channel c1 device type disk format '/u01/oracle/backup/back_%U';
3> backup tablespace users;
4> };
released channel: ORA_DISK_1
allocated channel: c1
channel c1: sid=144 devtype=DISK
5.3.2 自動分配通道
沒有顯示手動分配,rman在執行backup時,將使用預定義配置中的設定來自動分配通道
configure device type sbt/disk parallelism n;
configure default device type to sbt/disk;
configure channel device type sbt/disk format 'f:\mydb\backup\back_%u';
configure channel n device type sbt/disk format 'f:\mydb\backup\back_%u';
5.4 是否啟用複合備份
Rman提供了duplexed備份,實質就是在生成備份集的同時,向指定位置生成指定的備份數(不超過4份),異地異機備份,
Rman提供了3種方式實現duplex備份
1 Rman>backup copies 3 database;自動生成全庫備份的2個複製到預設路徑
2 run{
set copies 2;
backup device type disk format 'f:\mydb\backup\back_%u','f:\mydb\backup_%U'
tablespace yyhhqq;
}
3 configure 。。backup copies
5.5 是否設定備份集屬性
5.5.1 設定備份片段檔名
Fromart
5.5.2 設定備份集標籤
Rman叫tag,預設tagyyyymmddthhmiss
Rman>backup tablespace yyhhqq tag tas_yyhhqq_bak;
5.5.3 設定備份集片段/備份集大小
在fat32檔案系統中,單個檔案不大於4g,
Rman在分配通道時,引數maxpiecesize,專門用來指定備份片段大小
run{
allocate channel c1 device type disk maxpiecesize=10m format 'f:\mydb\backup\back_%u';
backup tablespace yyhhqq;
}---指定備份片集大小為10m
Rman>backup database maxsetsize=100m;指定單個備份集的最大值
5.6 是否使用rman恢復目錄(recovery catalog)
當沒有恢復目錄時,rman相關的備份資訊都存在在目標資料庫的控制檔案中,
Rman 使用恢復目錄才專門儲存備份的相關資訊,
1 要為該目錄建立一個單獨的tablespace和對應的schema
Create tablespace bbb、、、、一般50m
Note:不要將恢復目錄建立在要備份的目標資料庫上
當使用CATALOG命令時,要求目標資料庫必須處於MOUNT或OPEN狀態;當使用恢復目錄時,要求恢復目錄資料庫必須處於OPEN狀態
2 建立一個單獨對應的schema,並賦予許可權
CREATE TABLESPACE rman_catalog DATAFILE
'/u01/app/oracle/oradata/grs/rman_catalog.dbf' SIZE 50M ;
Create user rman_catalog identified by rman_catalog default tablespace rman_catalog
Temporary tablespace yhq_temp
Grant connect,resource to rman_catalog
grant RECOVERY_CATALOG_OWNER to rman_catalog
Grant connect ,resource,recovery_catalog_owner to abc identifies by abc;
3 通過rman連線
[[email protected] ~]$ rman catalog rman_catalog/rman_catalog
4在rman中建立catalog
RMAN> create catalog tablespace rman_catalog;
ORACLE error from recovery catalog database: ORA-01031: insufficient privileges
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-06433: error installing recovery catalog
RMAN> create catalog tablespace rman_catalog;
ORACLE error from recovery catalog database: ORA-00955: name is already used by an existing object
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-06433: error installing recovery catalog
解決方式:
drop user rman_catalog cascade; 重建使用者跟賦予許可權
RMAN> create catalog tablespace rman_catalog;
recovery catalog created===========建立成功
5 一個恢復目錄資料庫可以同時為多個目標資料庫提供服務,要使用目錄資料時,必須先註冊該資料庫
[[email protected] ~]$ rman target / catalog scott/[email protected]
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Oct 24 17:39:15 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: GRS (DBID=325518186)
connected to recovery catalog database
RMAN> register database
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of register command at 10/24/2013 17:39:33
RMAN-06428: recovery catalog is not installed
Rman>unregister database---可以取消註冊
[[email protected] ~]$ rman target / catalog rman_catalog/[email protected]
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Oct 24 17:54:03 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: GRS (DBID=325518186)
connected to recovery catalog database
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
對之後建立的備份資訊都會存入恢復目錄中,備份資訊是否存在catalog中,看在rman是是否指定了catalog模式連線,
5.7 是否啟用優化備份
滿足某些條件,rman自動跳過某些檔案
1 Configure backup optimization引數設定為on
2執行backup database或backup archivelog中帶有all或者like引數
3分配的通道只使用了一種裝置型別
RMAN> configure backup optimization on;
new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored
5.8是否對備份集進行壓縮
10g版本新加了可以壓縮功能
Rman>backup as compressed backupset tablespace yyhhqq
RMAN> list backup of tablespace yyhhqq;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
3 Full 645.97M DISK 00:02:35 24-OCT-13
BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20131024T105740
Piece Name: /u01/oracle/backup/back_05on6v94_1_1
List of Datafiles in backup set 3
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
6 Full 988527 24-OCT-13 /u01/app/oracle/oradata/grs/yyhhqq.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
25 Full 712.00K DISK 00:00:09 25-OCT-13
BP Key: 25 Status: AVAILABLE Compressed: YES Tag: TAG20131025T110610
Piece Name: /u01/oracle/backup/backup_compress_0ton9k52_1_1
List of Datafiles in backup set 25
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
6 Full 1032037 25-OCT-13 /u01/app/oracle/oradata/grs/yyhhqq.dbf
5.9 是否啟用備份集加密
10g r2後可以對備份集進行加密,對備份集進行了加密,在恢復時需要相應的解密
Oracle提供了3種加密模式:透明加密:密碼模式:雙重模式
Rman提供了2種兩種方式設定加密
Configure命令—預定義配置,除非顯示修改,否則一直有效
Set encryption 命令—對當前session有效
1使用configure命令啟用備份加密(先在db端配置好了 oracle 錢夾)
Rman>configure encryption for database on;然後在執行備份建立的備份集,就是加密備份集
Rman>configure encryption for database off;關閉
Rman>configure encryption for tablespace yyhhqq on;指定在表空間級
2 使用set encryption命令隨時都可以
Rman> set encryption on identified by enback only;----enback 金鑰
5.6 實戰rman備份
編寫指令碼
5.6.1編寫rman批處理檔案
[[email protected] ~]$ cd /u01/oracle/backup/logs/
[[email protected] logs]$ vi yhq_rman_test.man
RUN {
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;--並行2
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/oracle/backup/rman_backup_%F';
ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/u01/oracle/backup/rman_backup_%U';
BACKUP AS COMPRESSED BACKUPSET DATABASE SKIP INACCESSIBLE FILESPERSET 10—開啟壓縮
PLUS ARCHIVELOG FILESPERSET 20
DELETE ALL INPUT;
RELEASE CHANNEL C1;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
CROSSCHECK BACKUPSET;
DELETE NOPROMPT OBSOLETE;
資料庫全備份,同時備份控制檔案及歸檔日誌檔案,備份檔案儲存在F:\MYDB\BACKUP\目錄下,並在完成歸檔日誌檔案備份後,自動刪除已備份的歸檔日誌
備份保留至7天,過期自動刪除
保留操作日誌備查
將此檔案儲存至F:\MYDB\BACKUP\yyhhqq.rman
(1) backup skip 引數:
SKIP INACCESSIBLE 表示跳過不可讀的檔案,
SKIP OFFLINE:表示跳過offline 的資料檔案
Skip readonly:表示跳過那些所在表空間為read only的資料檔案
(2) filesperset引數—預設64
用來設定一個備份集中最多包含的檔案,超過設定的數,在執行備份時會建立多個歸檔檔案的備份集
(3) ALLOCATE CHANNEL FOR MAINTENANCE
用來分配通道,但分配的通道專用於 change,delete,crosscheck,不能包含在run塊中,
PLUS ARCHIVELOG:rman會自動對當前的archivelog進行歸檔,
5.6.2 編寫命令執行批處理指令碼
設定備份的資料庫的sid=orcl,將日誌按照日期輸出在F:\MYDB\BACKUP
[[email protected] ~]$ mkdir /u01/oracle/backup/logs
[[email protected] logs]$ vi rman_yhq_test.bat
set ORACLE_SID=grs
rman target / log /u01/oracle/backup/logs\bak_%date:~0,10%.log cmdfile=/u01/oracle/backup/logs/yhq_rman_test.man
將上述內容儲存至/u01/oracle/backup/logs/ rman_yhq_test.bat
[[email protected] logs]$ ll
總計 16
-rwxr-xr-x 1 oracle oinstall 133 10-25 15:10 rman_yhq_test.bat
-rw-r--r-- 1 oracle oinstall 512 10-25 15:06 yhq_rman_test.man
[[email protected] logs]$ chmod +x rman_yhq_test.bat ----可執行檔案?
[[email protected] logs]$ ll
總計 16
-rwxr-xr-x 1 oracle oinstall 133 10-25 15:10 rman_yhq_test.bat
-rw-r--r-- 1 oracle oinstall 512 10-25 15:06 yhq_rman_test.man
[[email protected] logs]$ ./rman_yhq_test.bat
5.6.3設定執行計劃
Windows下,控制面板-任務計劃中-新增任務計劃,執行f:\mydb\backup\yyhhqq.bat
[[email protected] ~]$ more /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
30 01 * * 0 oracle /u02/scripts_oracle/r_f_level0.sh >> /u02/for_crontab/mylog.log 2>&1
30 01 * * 3 oracle /u02/scripts_oracle/r_f_level1.sh >> /u02/for_crontab/mylog.log 2>&1
30 01 * * 1,2,4,5,6 oracle /u02/scripts_oracle/r_f_level2.sh >> /u02/for_crontab/mylog.log 2>&1
###
RMAN-08591: WARNING: invalid archived log deletion policy
RMAN> configure ARCHIVELOG DELETION POLICY clear;
5.7 rman基礎補充
5.7.1 format格式化
%F特定的對control file?
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup plus archivelog command at 08/05/2015 01:16:30
ORA-19715: invalid format F for generated name
ORA-27302: failure occurred at: slgpn
FORMAT
BACKUP
FORMAT 'AL_%d/%t/%s/%p'
ARCHIVELOG LIKE '%arc_dest%';
TAG
BACKUP
TAG 'weekly_full_db_bkup'
DATABASE MAXSETSIZE 10M;
5.7.2 通過configure進行預定義配置
Rman>show all;
後面有#default,表示沒有修改預設配置
如果想恢復到預設值:configure retention policy clear;
1 configure retention policy 配置備份集保留策略
A 基於時間
configure retention policy to recovery window of n days;
b 基於冗餘數量的保留策略
configure retention policy to redundancy n;--n大於=1的整數
c 取消設定的保留策略
configure retention policy to none;
2 configure backup optimization配置備份集優化
configure backup optimization on;
configure backup optimization off;
3 configure default device type 配置I/O裝置型別
configure default device type to dick/sbt
配置磁碟的預設並行度為2
Configure device type disk parallelism 2;
4 configure controlfile autobackup配置控制檔案自動備份
configure controlfile autobackup off/on ;
同時指定備份的路徑和格式
Configure controlfile autobackup format for device type disk to ‘f:\mydb\backup\%f’;
備份期間,將產生一個控制檔案的快照,用於控制檔案的讀一致性,快照可以通過如下配置
Configure snapshot controlfile name to ‘f:\xxxx\..ora’;
5 configure device type 設定並行配置
Configure device type disk parallelism 2;指定在以後的備份和恢復操作中的並行度為2,同時開啟2個通道進行備份和恢復,
預設情況下,自動分配通道的並行度為1,如果通過parallelism設定了並行度為2,那麼在run塊中,如果沒有單獨設定allocate channel命令指定通道,它會預設使用2條通道並行,如果run塊中設定了allocate channel指定通道,那麼rman在備份時已channel為準,不管configure的。
在backup備份時,filesperset引數預設是64
6 configure datafile/archivelog backup copies設定備份檔案的冗餘度
configure datafile/archivelog backup copies 2;
7 configure maxsetsize設定備份集的最大尺寸
allocate channel c1 device type disk maxpiecesize=10m format 'f:\mydb\backup\back_%u';
8 configure encryption配置備份集加密
10g新特性,前提是配置好了oracle錢夾功能。
5.7.3 set 設定會話級
1 常在run塊外執行的命令
顯示或關閉rman提示
Rman>set echo off/on;
指定客戶端資訊
Set command id to‘scott’;然後檢視v$session檢視,會發現一條client_Info列值包含了id=scott;的資訊,相當於加了一條標示,便於檢視備份的狀態。
指定資料庫的標示符,只能在nomount模式下執行,--mount—open
Rman>set dbid n;n 10長度組成的字串
2 常在run塊中執行的命令
給資料檔案指定路徑和名稱
Run{
Allocate channel c1 device type disk;
Set newname for datafile 4 to ‘f:\oracle\oracledata\user01.dbf’;
}
設定恢復到的時間或scn
Run{
Allocate channel c1 device type disk;
Set until time “to_date(‘2013-07-24’,’yyyy-mm-dd’)”;
}
定義備份片段的冗餘數
Set backup copies 3;
指定restore/recover命令產生的歸檔檔案的路徑
預設情況下,這些歸檔檔案會儲存在初始化引數log_archive_dest_1指定的路徑,
SET ARCHIVELOG DESTINATION TO ‘F:\ORACLE\ORACOEDATE\ARCHIVE\’;
5.7.4 增量備份的工作機制
1 差異備份(預設)
2 累計增量備份
1 level0 backup
#!/bin/bash
# full backup script
source /home/oracle/.bash_profile
current_day=`date '+%Y%m%d-%H%M'`
incr_day=incr_$current_day
#mkdir /u02/backup_incr/$incr_day
echo '-------------------------------------'
echo "-- Begin Increment Backup of DB 192.168.32.8 DateTime: `date` --"
echo '-------------------------------------'
rman target / log=/u02/logs/rman_logs_$current_day.log <<EOF
RUN
{
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u02/backup_incr/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
ALLOCATE CHANNEL C1 DEVICE TYPE DISK MAXPIECESIZE=1024M FORMAT '/u02/backup_incr/r_%n_%T_%U_lev0';
ALLOCATE CHANNEL C2 DEVICE TYPE DISK MAXPIECESIZE=1024M FORMAT '/u02/backup_incr/r_%n_%T_%U_lev0';
BACKUP AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 0 TAG 'LOCAL_LEVEL0'
DATABASE SKIP INACCESSIBLE FILESPERSET 10
PLUS ARCHIVELOG FILESPERSET 20;
# DELETE ALL INPUT;
BACKUP ARCHIVELOG ALL FORMAT '/u02/backup_incr/arc_%n_%T_%U';
RELEASE CHANNEL C1;
RELEASE CHANNEL C2;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
CROSSCHECK BACKUPSET;
REPORT OBSOLETE;
DELETE NOPROMPT OBSOLETE;
DELETE NOPROMPT EXPIRED BACKUP;
EOF
echo '------------------------------------'
echo "-- End Increment Backup of DB 192.168.32.8 DateTime: `date` --"
echo '------------------------------------'
#scp -l 51200 -r /u02/backup/$incr_day [email protected]:/u02/backup/ &
#wait
echo '------------------------------------'
echo "-- End of Send file to 192.168.32.8 DateTime: `date` --"
echo '------------------------------------'
echo ''
echo ''
2 level1
INCREMENTAL LEVEL 1 TAG 'LOCAL_LEVEL1'
BACKUP INCREMENTAL LEVEL 0 DATABASE;
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
BACKUP INCREMENTAL LEVEL 1 DATABASE;
RECOVER COPY OF DATABASE
WITH TAG 'incr_update';
BACKUP
INCREMENTAL LEVEL 1
FOR RECOVER OF COPY WITH TAG 'incr_update'
DATABASE;
5.7.5 備份加密模式
3種
5.7.6 恢復目錄資料(recovery catalog)
5.7.8 rman 備份的相關檢視
1 v$archived_Log檢視
select name,thread#,sequence#,first_time,creator,applied,status from v$archived_Log
1 20 2013-10-24 9:26:58 FGRD NO D
1 21 2013-10-24 14:54:33 FGRD NO D
1 22 2013-10-24 15:47:59 ARCH NO D
creator:arch由歸檔程序建立
fgrd由前臺程序建立
rman由rman建立
srmn由standby端的rman建立
lgwr由logwritor程序建立
status:a 正常歸檔狀態
d 該記錄指向的歸檔檔案已經刪除
u 該記錄執行的歸檔檔案不存在
x 指該條記錄失效,通常是在rman中執行了crosscheck archivelog檢查後有可能出現
2 v$backup_set檢視
顯示了當前建立的備份集資訊,與list backup型別
select * from v$backup_set
backup_type欄位:l:表示包含歸檔重做日誌檔案
d:表示資料檔案完全備份
i:表示增量備份
v$backup_set_details:包含了v$backup_set的資訊,而已還有備份集的大小,所在裝置,
select * from v$backup_set_details
device_type:DISK
3 v$backup_piece 顯示備份片段的資訊,
Status:a (可用),d(已刪除),x(不存在)
select * from v$backup_piece where status=’a’ and handle is not null
v$backup_piece_details
4 v$backup_corruption 記錄了備份集中發行損壞的資料塊,當在rman 中執行了backup validate 命令對備份集進行檢查後,如果發行有操作的資料塊就會寫入該檢視中,不包括控制檔案和歸檔檔案,他們是一個獨立體,一旦損壞,就無法修復,
select * from v$backup_corruption
5 v$session v$process
v$session 每一個連線到oracle的會話都會在改檢視中有一條記錄
select sid,serial#,paddr,username,client_info,osuser,machine,terminal,program,sql_address,sql_hash_value,event from v$session
v$process 檢視中一條記錄對應為作業系統中的一個程序(winddow為執行緒)
select * from v$process
6 v$session_longops 記錄資料庫中執行時間超過6秒的操作,
select * from v$session_longops
5.8 備份策略的制定
1 最早希望恢復到什麼時間點
只關心資料庫的狀態是否正常,可以採用基於冗餘數量的備份,保留策略為保留最近的3份
Rman>configure retention policy to redundancy 3
對於關心做過什麼操作,並且希望恢復到某個時間點,
可用logminer來分析目標資料庫的歸檔檔案,並保證在恢復時間點之前建立的有備份,以及相關的歸檔檔案,可用選擇基於冗餘時間的保留備份策略,
比如最早恢復到7天
Rman>configure retention policy to recovery window of 7 days;
由於備份集佔用空間的大小,必須考慮到裝置儲存裝置空閒的問題
2 系統什麼時間比較空閒
備份的大量讀寫會佔用大量資源,在資料庫空閒的時間來備份
3 資料庫的資料規模大小
1 >1TB 2 1TB<X>200GB 3 <200G
大量資料的備份時間較長,恢復時間可能更長
資料規模較小的可以進行全備份
4 資料修改頻繁度
1 每天修改10%的資料
2 每天基本沒變化,只有少量修改
3 資料每天都在變,但量不大
對於1,基本不採用增量備份
對於2 可以採用增量備份
對於3 根據資料規模來確定是否採用增量備份
5 能否預估給予的恢復時間
對於核心業務,採用rman恢復,做不到快速恢復,得采用其他的高可用效能
非核心業務,不需要及時恢復
6 什麼原因導致的錯誤
1 使用者誤操作—flashback:利用之前的備份,恢復到錯誤的時間點之前:輸入正確資料
2 介質故障—備份
3 資料塊錯誤—rman進行資料塊修復
備份策略決定了恢復方式,能恢復的資料及恢復的效率