首页 > 数据库 > Oracle > rman 自己的总结
1,设置channel的个数,或说是并行度
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET
2,进行备份的时候记录日志
3,设置备份策略是按天还是按照冗余备份的数量。(一般我选择按照天)
4,使用clear命令来将修改过的值设置为默认
比如原来的:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS
使用clear来改回默认值: CONFIGURE RETENTION POLICY CLEAR --注意这个clear的位置是在 "TO" 的前面
5,list命令:
(1), list backup of database:列出所有的数据库备份.
(2),list backup of tablespace users; 列出包含users表空间的备份
(3),list backup of datafile '/home/oracle/oradata/sales/users01.dbf': 列出包含数据文件的备份
(4),list copy of archivelog all :列出所有的归档日志,其实就是查询v$archived_log视图。--看其中的 "S" 列,x 代表无效,a代表可用。
(5),list expired archivelog all; 列出所有的无效日志
(6),list expired backup:列出所有无效的备份。
6,report 命令
(1), report need backup days 3[database,tablespace tablespacename,datafile 'datafilename'];报告超过3天没有进行过备份的。
(2),report need backup redundancy 2 [database,tablespace tablespacename,datafile 'datafilename'] :报告冗余少于两个的。
(3),
7,crosschek 命令
crosscheck backup of database : 检查无效的备份
crosscheck archivelog all : 检查无效的归档日志。
8,delete 命令
delete backupset 102 : 删除指定的备份集。
delete expired archivelog all: 删除所有无效的归档日志,
delete copy of archivelog from sequence XXXX until squence XXX : 删除一个归档日志范围,用于清理磁盘的空间。
delete copy of archivelog sequence xxx : 删除指定的归档日志
9,CONFIGURE BACKUP OPTIMIZATION ON : 如果设置为on 则 backup archivelog all 不会再备份已经备份过的归档日志。
10,再进行rman增量备份的时候要指定变化跟踪文件来监控数据块的改变,如果不指定则会进行全文件扫描以确定scn的改变。
如果数据库运行在归档模式,在数据库OPEN状态我们可以进行增量备份;如果数据库处于非归档方式,在数据库CLOSE状态我们也可以进行增量备份。
增量备份只备份上次备份以来变化过的数据块。
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
alter database enable block change tracking using file '/home/oracle/block_change_tracking/sales_block_tracking.log'; --这个log文件会自动创建。
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING --禁用
---如果有一天你在系统下rm了一个archived_log,那么你再次执行ran对archived_log进行备份的时候就会报错-------
解决方法 1,首先 crosscheck archivelog all --检查所有的无效日志
2,list copy of archivelog all
3,delete expired archivelog all
4,然后在进行备份
-----------------rman --自己做一个实际的备份 --------------------------------------------------------------------------------------------------------
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS ---窗口时间为7天
CONFIGURE CONTROLFILE AUTOBACKUP ON ---控制文件自动备
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/control_file_backup/sales_%F' --设置为自动备份的控制文件的路径
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET --设置分配几个通道进行备份
CONFIGURE BACKUP OPTIMIZATION ON --不会备份已经备份过的日志
configure exclude for tablespace sflog; -- 备份时不备份这个表空间
backup filesperset 5 format '/home/oracle/db_backup/sales_all_%p_%s_%T' database
backup format '/home/oracle/log_backup/saleslog_%p_%s_%T' filesperset 20 archivelog --all delete input
crosscheck backup;
crosscheck backup of archivelog all;
delete noprompt obsolete;
计划进行rman增量备份
1,在数据库中进行优化
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
alter database enable block change tracking using file '/home/oracle/block_change_tracking/sales_block_tracking.log'; --启用跟踪文件,提高性能
星期天 -- backup incremental level=0 database format '/home/oracle/db_backup/sales_%s_%p';
星期一,二,四,五,六 -- backup incremental level=2 database format '/home/oracle/db_backup/sales_level2_%s_%p';
星期三 -- backup incremental level=1 database format '/home/oracle/db_backup/sales_level1_%s_%p';
---数据库的备份
rman target / << EOF
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup
filesperset 5
full
format "/home/oracle/dbbackup/sfgame_full_p%p_s%s_t%t_%T.bak"
(database include current controlfile);
}
exit
EOF
if [ $? -ge 0 ]
then
echo `date +"%F %H:%M:%S"` backup failed >> dbbackup.log
fi
---归档日志的备份
run {
crosscheck archivelog all; ----检查手动删除的日志
delete noprompt expired archivelog all;
}
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup
format "/home/oracle/archive_log_backup/arch_p%p_s%s_t%t_%T.arc" ----对归档日志进行备份
filesperset 20
archivelog all ;
}
exit
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7668955/viewspace-926846/ ,如需转载,请注明出处,否则将追究法律责任。