Oracle数据库备份策略——周备份方案参加人员与时间1 参加工程师:陈笑2 指导工程师:文平3 工作起始时间: 08/01/084 工作结束时间: 08/01/086 版本 1.0.0达成的目标/方案1 对于数据量较大的数据库我们可以选择对其执行RMAN周备份方案对其进行备份。
周备份方案中采用的增量备份方法,缩短了日常的备份操作所占用的时间,减少了资源占用。
本实践将介绍如何利用Windows的计划任务程序来实现自动调用和执行RMAN周备份操作。
软硬件系统配置1 硬件环境:内存1GC盘:20G D盘:40G H盘:4.5G N盘:3G2 软件环境:平台:Windows XP Prof 、机器名:WINSERV3 、IP:192.168.6.303 初始环境:数据库实例sdzyOracle软件及数据库文件保存在D盘闪回恢复区为h:\flash_area详细操作过程描述1 1)本实践的规划:闪回恢复区位置 h:\flash_area\备份集的保留策略无是否自动备份控制文件和spfile是备份集的位置及命名方式 h:\flash_area\bkupset\bkup_%U备份集的内容整个数据库的所有数据文件(跳过EXAMPLE表空间)、归档日志文件、spfile和控制文件。
然后删除做过备份的归档日志文件。
再次备份备份集的位置 n:\oraclebk\%U再次备份的内容七天前生成的备份集。
然后删除做过再次备份的备份集。
备份策略每周六的0:00对数据库进行0级增量备份;每周的其他六天的0:00对数据库进行1级增量备份。
即:周六执行数据库0级增量备份周一~周五,周日执行数据库1级增量备份2)查看当前RMAN预定义参数设置:C:\>rman target /RMAN> show all;使用目标数据库控制文件替代恢复目录RMAN 配置参数为:CONFIGURE RETENTION POLICY TO NONE;CONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # defaultCONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE CHANNEL DEVICE TYPE DISK FORMAT'h:\flash_area\bkupset\bkup_%U';CONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE EXCLUDE FOR TABLESPACE 'EXAMPLE';CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFSDZY.ORA'; # default2 编写备份脚本。
调度和运行的时间每周六0:00分批处理文件 d:\bkscr\rman_db_weekly_level0.bat 批处理文件调用的备份脚本 d:\bkscr\rman_db_weekly_level0.rcv数据库0级增量备份脚本d:\bkscr\bkup_maintain.rcv备份集维护脚本调度和运行的时间每周一~周五,周日0:00分批处理文件 d:\bkscr\rman_db_weekly_level1.bat 批处理文件调用的备份脚本 d:\bkscr\rman_db_weekly_level1.rcv数据库1级增量备份脚本d:\bkscr\bkup_maintain.rcv备份集维护脚本1)用操作系统命令创建存放脚本和备份日志的文件夹d:\bkscr和d:\messagelog,再在闪回区中创建保存备份集的文件夹h:\flash_area\bkupset,以及保存对备份集的备份的文件夹n:\oraclebk :C:\>d:D:\>mkdir bkscrD:\>mkdir messagelogD:\>mkdir n:\oraclebkD:\>mkdir h:\flash_area\bkupset2)在记事本中编写执行周备份方案的脚本:0级备份脚本:backup incremental level=0 database plus archivelog delete input;保存为d:\bkscr\rman_db_weekly_level0.rcv1级备份脚本:backup incremental level=1 database plus archivelog delete input;保存为d:\bkscr\rman_db_weekly_level1.rcv。
对备份集的维护脚本:备份七天前的备份集(因此执行此脚本的前七天没有匹配的备份集)。
backup backupset completed before 'sysdate-7' delete inputformat 'n:\oraclebk\wk_bkup_%U';保存为d:\bkscr\bkup_maintain.rcv 。
0级备份的批处理文件:::Execute on Sat. per week::Backup database including datafiles,controlfiles,archivelogs,spfile.@echo offecho RMAN weekly incremental backup level0 begins.Please wait...(rman target / @d:\bkscr\rman_db_weekly_level0.rcvrman target / @d:\bkscr\bkup_maintain.rcv) > d:\messagelog\"weekly_bk0_%date%".txt echo Finished this script.echo The messagelog is d:\messagelog\"weekly_bk0_%date%".txtpause保存为d:\bkscr\rman_db_weekly_level0.bat1级备份的批处理文件:::Execute on 1-5,7 per week::Backup database including datafiles,controlfiles,archivelogs,spfile.@echo offecho RMAN weekly incremental backup level1 begins.Please wait...(rman target / @d:\bkscr\rman_db_weekly_level1.rcvrman target / @d:\bkscr\bkup_maintain.rcv) > d:\messagelog\"weekly_bk1_%date%".txt echo Finished this script.echo The messagelog is d:\messagelog\"weekly_bk1_%date%".txtpause保存为d:\bkscr\rman_db_weekly_level1.bat3 在Windows下添加任务计划,执行周备份的脚本。
1)在控制面板的任务计划中,双击“添加任务计划”:单击“下一步”。
2)单击“浏览”,打开d:\bkscr\rman_db_weekly_level0.bat文件,选择执行0级增量备份的任务:3)将任务命名为rman_db_weekly_level0,选择“每周”选项,单击“下一步”:选择执行这个任务的时间为每周六的0:00:4)输入用户名及其密码:5)单击“完成”,将此任务添加到Windows的任务计划中:6)按以上步骤向任务计划中添加执行1级增量备份的任务:选择批处理文件“rman_db_weekly_level1.bat”:将任务命名为rman_db_weekly_level1,设置每周执行这个任务:选择执行一级增量备份的时间为每周一~五、日的0:00分:单击“完成”,将此任务添加到Windows的任务计划中:4 关于脚本和任务的可执行性的验证:我们可以通过单击右键选择“运行”选项来立刻执行此任务,也可以在添加任务后等待任务执行。
然后查看消息日志查看备份任务是否成功运行。
如果运行成功,则还需通过消息日志了解备份的内容是否符合周备份方案的要求。
如果运行不成功,可能需要对脚本、批处理文件以及任务的设置进行调整。
1)在任务计划中选中RMAN周备份的任务“rman_db_weekly_level0”,单击右键,选择“运行”选项。
系统将立即运行此任务。
2)单击“运行”后,将弹出脚本运行的界面:3)执行脚本后,查看相应的消息日志,检验是否备份成功,并查看备份的内容:可见,RMAN对整个数据库进行了0级增量备份;在对备份集进行再备份时,由于要求备份七天前的备份集,因此在执行此脚本的前七天没有匹配的备份集。
4)以同样的方法检验任务“rman_db_weekly_level1”。
体会与总结通过向Windows的任务计划中添加任务的方法可以实现自动执行RMAN周备份数据库的任务。
其中需要注意的地方如下:1 对RMAN预定义参数的设置:可在此选择是否自动备份控制文件、备份保留策略的选择、是否跳过某些测试用的表空间等。