Oracle数据库备份策略——周备份方案参加人员与时间1参加工程师:陈笑2指导工程师:文平3工作起始时间:08/01/084工作结束时间:08/01/086版本1.0.0达成的目标/方案1对于数据量较大的数据库我们可以选择对其执行RMAN周备份方案对其进行备份。周备份方案中采用的增量备份方法,缩短了日常的备份操作所占用的时间,减少了资源占用。本实践将介绍如何利用Windows的计划任务程序来实现自动调用和执行RMAN周备份操作。软硬件系统配置1硬件环境:内存1GC盘:20GD盘:40GH盘:4.5GN盘:3G2软件环境:平台:WindowsXPProf、机器名:WINSERV3、IP:192.168.6.303初始环境:数据库实例sdzyOracle软件及数据库文件保存在D盘闪回恢复区为h:\flash_area详细操作过程描述11)本实践的规划:闪回恢复区位置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:\rmantarget/RMANshowall;使用目标数据库控制文件替代恢复目录RMAN配置参数为:CONFIGURERETENTIONPOLICYTONONE;CONFIGUREBACKUPOPTIMIZATIONOFF;#defaultCONFIGUREDEFAULTDEVICETYPETODISK;#defaultCONFIGURECONTROLFILEAUTOBACKUPON;CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'%F';#defaultCONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;#defaultCONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#defaultCONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#defaultCONFIGURECHANNELDEVICETYPEDISKFORMAT'h:\flash_area\bkupset\bkup_%U';CONFIGUREMAXSETSIZETOUNLIMITED;#defaultCONFIGUREENCRYPTIONFORDATABASEOFF;#defaultCONFIGUREENCRYPTIONALGORITHM'AES128';#defaultCONFIGUREEXCLUDEFORTABLESPACE'EXAMPLE';CONFIGUREARCHIVELOGDELETIONPOLICYTONONE;#defaultCONFIGURESNAPSHOTCONTROLFILENAMETO'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:\mkdirbkscrD:\mkdirmessagelogD:\mkdirn:\oraclebkD:\mkdirh:\flash_area\bkupset2)在记事本中编写执行周备份方案的脚本:0级备份脚本:backupincrementallevel=0databaseplusarchivelogdeleteinput;保存为d:\bkscr\rman_db_weekly_level0.rcv1级备份脚本:backupincrementallevel=1databaseplusarchivelogdeleteinput;保存为d:\bkscr\rman_db_weekly_level1.rcv。对备份集的维护脚本:备份七天前的备份集(因此执行此脚本的前七天没有匹配的备份集)。backupbackupsetcompletedbefore'sysdate-7'deleteinputformat'n:\oraclebk\wk_bkup_%U';保存为d:\bkscr\bkup_maintain.rcv。0级备份的批处理文件:::ExecuteonSat.perweek::Backupdatabaseincludingdatafiles,controlfiles,archivelogs,spfile.@echooffechoRMANweeklyincrementalbackuplevel0begins.Pleasewait...(rmantarget/@d:\bkscr\rman_db_weekly_level0.rcvrmantarget/@d:\bkscr\bkup_maintain.rcv)d:\messagelog\weekly_bk0_%date%.txtechoFinishedthisscript.echoThemessagelogisd:\messagelog\weekly_bk0_%date%.txtpause保存为d:\bkscr\rman_db_weekly_level0.bat1级备份的批处理文件:::Executeon1-5,7perweek::Backupdatabaseincludingdatafiles,controlfiles,archivelogs,spfile.@echooffechoRMANweeklyincrementalbackuplevel1begins.Pleasewait...(rmantarget/@d:\bkscr\rman_db_weekly_level1.rcvrmantarget/@d:\bkscr\bkup_maintain.rcv)d:\messagelog\weekly_bk1_%date%.txtechoFinishedthisscript.echoThemessagelogisd:\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预定义参数的设置:可在此选择是否自动备份控制文件、备份保留策略的选择、是否跳过某些测试用的表空间等。2备份集存储位置的选择:选择和数据库文件位于不同磁盘作为备份集的存储位置,提高出现介质失败时备份集的可用性。3编写备份脚本和批处理文件:根据预定义参数的设置以及周备份方案,编写能够实现方案要求的脚本。4添加任务计划:在任务计划中设定需要执行的批处理文件,并根据实际情况设定任务执行的时间。本实践选择数据库在深夜或者系统不繁忙的时段进行备份,避免了占用服务器资源,降低了备份操作对系统正常运行的影响。5昀后,一定要验证脚本和任务的可执行性,并通过查看消息日志来确定生成备份集的内容是否与规划一致。