创建 RMAN 备份
1.1 RMAN热备之:数据库整体备份
包括:数据文件、控制文件、归档日志文件、参数文件;并且删除已备份的归档日志文件
RMAN> backup as backupset database plus archivelog delete input;
1.2RMAN热备之:完备
RMAN> backup as backupset database;
1.3级别为0的增量备份
RMAN> backup as backupset incremental level 0 database;
1.4级别为1的累积增量备份
RMAN> backup as backupset incremental level 1 cumulative database;
2.1启用块跟踪
创建存放块跟踪文件的目录
[oracle@wang app]$ ls
FRA oracle oraInventory
[oracle@wang app]$
[oracle@wang app]$ mkdir BCT
[oracle@wang app]$ ls
BCT FRA oracle oraInventory
[oracle@wang app]$
启用块跟踪:
SYS@ORA11GR2>alter database enable block change tracking using file '/u01/app/BCT/rman.bct';
Database altered.
——验证:
[oracle@wang app]$ cd BCT/
[oracle@wang BCT]$ ls
rman.bct
[oracle@wang BCT]$
[oracle@wang BCT]$ pwd
/u01/app/BCT
[oracle@wang BCT]$
2.2监视块跟踪
——显示块跟踪文件位置、块跟踪状态(启用/停用)、该文件大小(单位字节)
SYS@ORA11GR2>col filename for a25
SYS@ORA11GR2>select filename,status,bytes from v$block_change_tracking;
(查看是否启用块跟踪)
FILENAME STATUS BYTES
------------------------- ---------- ----------
/u01/app/BCT/rman.bct ENABLED 11599872
——通过查询视图来判断减少增量备份I/O,查看PCT_READ_FOR_BACKUP字段,值比较高表明RMAN在备份期间,从数据文件读取非常多的块,那么可以适当的减少增量备份的时间间隔来降低这个比率。
SYS@ORA11GR2>select file#, avg(datafile_blocks), avg(blocks_read), avg(blocks_read /
2 datafile_blocks) * 100 as pct_read_for_backup, avg(blocks) from
3 v$backup_datafile where used_change_tracking = 'yes' and incremental_level > 0
4 group by file#;
no rows selected
SYS@ORA11GR2>
2.3停用块跟踪
SYS@ORA11GR2>alter database disable block change tracking;
Database altered.
SYS@ORA11GR2>
——验证:
[oracle@wang BCT]$ pwd
/u01/app/BCT
[oracle@wang BCT]$ ls
[oracle@wang BCT]$
——查看是否启用块跟踪:
SYS@ORA11GR2>SELECT filename, status, bytes FROM v$block_change_tracking;
FILENAME STATUS BYTES
------------------------- ---------- ----------
DISABLED
3.1单独备份所有归档
RMAN> backup as backupset archivelog all;
3.2备份中指定plus archivelog子句
RMAN> backup current controlfile plus archivelog;
4.delete input 和 delete all input 区别
如果归档日志的目录是一个,那么delete input和delete all input的效果是一样的,即归档备份后将已备份的归档删除,这个测试由读者自行测试。
如果归档日志保存的路径为多个,那么delete input和delete all input就有区别了,测试如下:
弃用快速恢复区,启用log_archive_dest_n
——查看:
SYS@ORA11GR2>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 39
Next log sequence to archive 41
Current log sequence 41
SYS@ORA11GR2>
SYS@ORA11GR2>show parameter recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/FRA
db_recovery_file_dest_size big integer 3G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
SYS@ORA11GR2>
——重置快速恢复区:(重置快速恢复区需重启数据库后生效)
SYS@ORA11GR2>alter system reset db_recovery_file_dest;
System altered.
SYS@ORA11GR2>alter system reset db_recovery_file_dest_size;
System altered.
——验证:
SYS@ORA11GR2>show parameter recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/FRA
db_recovery_file_dest_size big integer 3G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
SYS@ORA11GR2>
SYS@ORA11GR2>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 39
Next log sequence to archive 41
Current log sequence 41
SYS@ORA11GR2>
——需关库重启库:
SYS@ORA11GR2>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@ORA11GR2>
SYS@ORA11GR2>startup
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2256832 bytes
Variable Size 469762112 bytes
Database Buffers 255852544 bytes
Redo Buffers 2842624 bytes
Database mounted.
Database opened.
——验证:
SYS@ORA11GR2>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Oldest online log sequence 39
Next log sequence to archive 41
Current log sequence 41
SYS@ORA11GR2>
SYS@ORA11GR2>show parameter recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
SYS@ORA11GR2>
SYS@ORA11GR
——设置新的归档路径:
SYS@ORA11GR2>alter system set log_archive_dest_1='location=/u01/app/arch1' scope=spfile;
System altered.
SYS@ORA11GR2>alter system set log_archive_dest_2='location=/u01/app/arch2' scope=spfile;
System altered.
[oracle@wang BCT]$ mkdir -p /u01/app/arch1
[oracle@wang BCT]$ mkdir -p /u01/app/arch2
[oracle@wang BCT]$ cd /u01/app/
[oracle@wang app]$ ls
arch1 arch2 BCT FRA oracle oraInventory
[oracle@wang app]$
——重新启库使参数生效:
SYS@ORA11GR2>startup force;
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2256832 bytes
Variable Size 469762112 bytes
Database Buffers 255852544 bytes
Redo Buffers 2842624 bytes
Database mounted.
Database opened.
SYS@ORA11GR2>
——查看已经生效:
SYS@ORA11GR2>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/arch2
Oldest online log sequence 40
Next log sequence to archive 42
Current log sequence 42
SYS@ORA11GR2>
?——手工强制归档日志
我们可以看到,arch1和arch2两个目录下的归档日志是完全一样的
SYS@ORA11GR2>alter system archive log current;
System altered.
SYS@ORA11GR2>
[oracle@wang app]$ cd arch1
[oracle@wang arch1]$ ls
1_41_923326149.dbf 1_42_923326149.dbf
[oracle@wang arch1]$
[oracle@wang arch1]$ cd ..
[oracle@wang app]$ ls
arch1 arch2 BCT FRA oracle oraInventory
[oracle@wang app]$ cd arch2
[oracle@wang arch2]$ ls
1_41_923326149.dbf 1_42_923326149.dbf
[oracle@wang arch2]$
——备份归档日志文件,使用delete input删除已备份归档
RMAN> backup archivelog all format '/home/oracle/arch_%U.arc' delete input;
Starting backup at 28-SEP-16
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=47 device type=DISK
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=38 RECID=54 STAMP=923778876
output file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-38_T-1_A-923326149_1orgvhjc.arc RECID=64 STAMP=923780718
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/FRA/ORA11GR2/archivelog/2016_09_28/o1_mf_1_38_cyqjkvs0_.arc RECID=54 STAMP=923778876
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=39 RECID=55 STAMP=923778877
output file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-39_T-1_A-923326149_1prgvhjg.arc RECID=65 STAMP=923780720
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/FRA/ORA11GR2/archivelog/2016_09_28/o1_mf_1_39_cyqjkx2h_.arc RECID=55 STAMP=923778877
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=40 RECID=57 STAMP=923778884
output file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-40_T-1_A-923326149_1qrgvhji.arc RECID=66 STAMP=923780722
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/FRA/ORA11GR2/archivelog/2016_09_28/o1_mf_1_40_cyqjl4bw_.arc RECID=57 STAMP=923778884
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=41 RECID=59 STAMP=923780351
output file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-41_T-1_A-923326149_1rrgvhjl.arc RECID=67 STAMP=923780726
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/arch2/1_41_923326149.dbf RECID=59 STAMP=923780351
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=42 RECID=61 STAMP=923780460
output file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-42_T-1_A-923326149_1srgvhjn.arc RECID=68 STAMP=923780728
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/arch2/1_42_923326149.dbf RECID=61 STAMP=923780460
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=43 RECID=62 STAMP=923780707
output file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-43_T-1_A-923326149_1trgvhjp.arc RECID=69 STAMP=923780729
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/arch1/1_43_923326149.dbf RECID=62 STAMP=923780707
Finished backup at 28-SEP-16
Starting Control File and SPFILE Autobackup at 28-SEP-16
piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/c-237843809-20160928-0e comment=NONE
Finished Control File and SPFILE Autobackup at 28-SEP-16
——查看归档日志:
我们发现,arch2中的所有归档已经被删除了,由于备份之前自动切换了一下日志,所以,arch1中有两个归档日志,这就能说明,使用delete input,只会删除其中一个的日志。
[oracle@wang arch2]$ pwd
/u01/app/arch2
[oracle@wang arch2]$ ls
1_43_923326149.dbf
[oracle@wang arch2]$ ls
1_43_923326149.dbf$
[oracle@wang arch2]$ cd ..
[oracle@wang app]$ ls
arch1 arch2 BCT FRA oracle oraInventory
[oracle@wang app]$ cd arch1/
[oracle@wang arch1]$
[oracle@wang arch1]$ ls
1_41_923326149.dbf 1_42_923326149.dbf
[oracle@wang arch1]$
——再次手工归档日志,让两个目录下都有归档日志存在
SYS@ORA11GR2>alter system archive log current;
System altered.
SYS@ORA11GR2>
[oracle@wang arch1]$ ls /u01/app/arch*
/u01/app/arch1:
1_41_923326149.dbf 1_42_923326149.dbf 1_44_923326149.dbf
/u01/app/arch2:
1_43_923326149.dbf 1_44_923326149.dbf
[oracle@wang arch1]$
——备份归档日志文件,使用delete all input删除已备份归档
RMAN> backup archivelog all format '/home/oracle/arch_all_%U' delete all input;
Starting backup at 28-SEP-16
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=38 RECID=52 STAMP=923778821
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-38_T-1_A-923326149_1vrgvi2s RECID=74 STAMP=923781212
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/FRA/ORA11GR2/archivelog/2016_09_28/o1_mf_1_38_cyqjj56y_.arc RECID=52 STAMP=923778821
archived log file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-38_T-1_A-923326149_1orgvhjc.arc RECID=64 STAMP=923780718
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=39 RECID=53 STAMP=923778875
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-39_T-1_A-923326149_20rgvi2u RECID=75 STAMP=923781214
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/FRA/ORA11GR2/archivelog/2016_09_28/o1_mf_1_39_cyqjkv8h_.arc RECID=53 STAMP=923778875
archived log file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-39_T-1_A-923326149_1prgvhjg.arc RECID=65 STAMP=923780720
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=40 RECID=56 STAMP=923778883
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-40_T-1_A-923326149_21rgvi2v RECID=76 STAMP=923781215
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/FRA/ORA11GR2/archivelog/2016_09_28/o1_mf_1_40_cyqjl3o3_.arc RECID=56 STAMP=923778883
archived log file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-40_T-1_A-923326149_1qrgvhji.arc RECID=66 STAMP=923780722
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=41 RECID=67 STAMP=923780726
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-41_T-1_A-923326149_22rgvi32 RECID=77 STAMP=923781218
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-41_T-1_A-923326149_1rrgvhjl.arc RECID=67 STAMP=923780726
archived log file name=/u01/app/arch1/1_41_923326149.dbf RECID=58 STAMP=923780351
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=42 RECID=68 STAMP=923780728
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-42_T-1_A-923326149_23rgvi34 RECID=78 STAMP=923781220
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-42_T-1_A-923326149_1srgvhjn.arc RECID=68 STAMP=923780728
archived log file name=/u01/app/arch1/1_42_923326149.dbf RECID=60 STAMP=923780460
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=43 RECID=69 STAMP=923780729
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-43_T-1_A-923326149_24rgvi36 RECID=79 STAMP=923781222
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/home/oracle/arch_arch_D-ORA11GR2_id-237843809_S-43_T-1_A-923326149_1trgvhjp.arc RECID=69 STAMP=923780729
archived log file name=/u01/app/arch2/1_43_923326149.dbf RECID=63 STAMP=923780707
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=44 RECID=70 STAMP=923781002
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-44_T-1_A-923326149_25rgvi38 RECID=80 STAMP=923781224
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/arch1/1_44_923326149.dbf RECID=70 STAMP=923781002
archived log file name=/u01/app/arch2/1_44_923326149.dbf RECID=71 STAMP=923781002
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=45 RECID=72 STAMP=923781210
output file name=/home/oracle/arch_all_arch_D-ORA11GR2_id-237843809_S-45_T-1_A-923326149_26rgvi3b RECID=81 STAMP=923781227
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/arch1/1_45_923326149.dbf RECID=72 STAMP=923781210
archived log file name=/u01/app/arch2/1_45_923326149.dbf RECID=73 STAMP=923781210
Finished backup at 28-SEP-16
Starting Control File and SPFILE Autobackup at 28-SEP-16
piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/c-237843809-20160928-0f comment=NONE
Finished Control File and SPFILE Autobackup at 28-SEP-16
RMAN>
——查看归档日志情况(结果为两个目录都为空)
[oracle@wang arch1]$ ls /u01/app/arch*
/u01/app/arch1:
/u01/app/arch2:
[oracle@wang arch1]$
通过以上测试,我们已经验证了本章开始提到的,delete input只删除一个归档目录的内容,如果有多个目录存放归档日志,那么使用delete all input完成删除
5.管理备份:报告
5.1 LIST
1)----概述可用的备份
RMAN> list backup summary;
2)也可以具体显示某一项概述可用备份信息
RMAN> list backup of database summary;
RMAN> list backup of archivelog all summary;
RMAN> list backup of tablespace users summary;
RMAN> list backup of datafile 1,2 summary;
3)列出详细备份
RMAN> list backup;
4)列出过期备份
RMAN> list expired backup;
5)列出所有数据文件的备份集
RMAN> list backup of database;
6)列出指定表空间的所有数据文件备份集
RMAN> list backup of tablespace users;
7)列出指定数据文件备份集
RMAN> list backup of datafile 1,2,3;
8)列出控制文件备份集
RMAN> list backup of controlfile;
9)列出归档日志备份集详细信息
RMAN> list backup of archivelog all;
10)列出归档日志备份集简要信息
RMAN> list archivelog all;
11)列出SPFILE备份集
RMAN> list backup of spfile;
12)列出数据文件映像副本
RMAN> list copy of datafile 5;
13)列出控制文件映像副本
RMAN> list copy of controlfile;
14)列出归档日志映像副本
RMAN> list copy of archivelog all;
15)列出对应数据库副本;
RMAN> list incarnation;
或者
RMAN> list incarnation of database;
5.2REPORT
1)报告目标数据库的物理结构
RMAN> report schema;
2)报告已丢弃的备份集(配置了保留策略)。
RMAN> report obsolete;
3)报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已经过期)
RMAN> report unrecoverable;
4)报告最近N天没有被备份的数据文件;
RMAN> report need backup days=3;
5)在USERS表空间上N天未备份的数据文件
RMAN> report need backup days 3 tablespace users;
6)报告恢复数据文件需要的增量备份个数超过N次的数据文件;
RMAN> report need backup incremental 3;
7)报告备份文件低于N份的所有数据文件;
RMAN> report need backup redundancy 2 database;
6.管理备份:交叉检查和删除
6.1CROSSCHECK
1)校验所有备份集
RMAN> crosscheck backup;
2)校验所有数据文件的备份集
RMAN> crosscheck backup of database;
3)校验特定表空间的备份集
RMAN> crosscheck backup of tablespace users;
4)校验特定数据文件的备份集
RMAN> crosscheck backup of datafile 4;
5)校验控制文件的备份集
RMAN> crosscheck backup of controlfile;
6)校验SPFILE的备份集
RMAN> crosscheck backup of spfile;
7)校验归档日志的备份集
RMAN> crosscheck backup of archivelog sequence 3;
8)校验所有映像副本
RMAN> crosscheck copy;
9)校验所有数据文件的映像副本
RMAN> crosscheck copy of database;
10)校验特定表空间的映像副本
RMAN> crosscheck copy of tablespace users;
11)校验特定数据文件的映像副本
RMAN> crosscheck copy of datafile 6;
12)校验归档日志的映像副本
RMAN> crosscheck copy of archivelog sequence 4;
13)校验控制文件的映像副本
RMAN> crosscheck copy of controlfile;
14)校验指定标签"MY_TAG_01"
RMAN> crosscheck backup tag='MY_TAG_01';
15)校验最近两天的备份
RMAN> crosscheck backup completed after 'sysdate - 2'
16)校验五天以内并且两天前的备份
RMAN> crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
17)校验所有归档
RMAN> crosscheck archivelog all;
18)校验指定归档
RMAN> crosscheck archivelog like '%ARC00012.001'
RMAN> crosscheck archivelog from sequence 12;
RMAN> crosscheck archivelog until sequence 522;
6.2DELETE
1)删除过时备份(超出备份策略的备份)
RMAN> delete obsolete;
2)删除过期备份(校验失败的备份)
RMAN> delete expired backup;
3)删除过期副本(校验失败的副本)
RMAN> delete expired copy;
4)删除特定备份集
RMAN> delete backupset 19;
5)删除所有备份集
RMAN> delete backup;
6)删除所有映像副本
RMAN> delete copy;
7.管理备份:动态性能视图
v$backup_set_details
视图 | 内容 |
v$backup_files | 已备份的每个文件(控制文件、参数文件、归档日志文件、数据文件)的信息。 |
v$backup_set | 每个备份集信息 |
v$backup_piece | 每个备份片信息 |
v$backup_redolog | 已备份的每个归档日志信息 |
v$backup_spfile | Spfile构成的备份信息 |
v$backup_datafile | 数据文件的备份信息 |
v$backup_device | 已连接到RMAN的SBT设备名称 |
v$rman_configuration | RMAN配置设置(不包括默认设置) |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31397003/viewspace-2126512/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31397003/viewspace-2126512/