Oracle数据库备份策略——周备份方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库备份策略——周备份方案
参加人员与时间
1 参加工程师:陈笑
2 指导工程师:文平
3 工作起始时间: 08/01/08
4 工作结束时间: 08/01/08
6 版本 1.0.0
达成的目标/方案
1 对于数据量较大的数据库我们可以选择对其执行RMAN周备份方案对其进行
备份。
周备份方案中采用的增量备份方法,缩短了日常的备份操作所占用的时间,减少了资源占用。
本实践将介绍如何利用Windows的计划任务程序来实现自动调
用和执行RMAN周备份操作。
软硬件系统配置
1 硬件环境:内存1G
C盘:20G D盘:40G H盘:4.5G N盘:3G
2 软件环境:平台:Windows XP Prof 、机器名:WINSERV
3 、IP:192.168.6.30
3 初始环境:数据库实例sdzy
Oracle软件及数据库文件保存在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; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
'h:\flash_area\bkupset\bkup_%U';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE 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'; # default
2 编写备份脚本。
调度和运行的时间每周六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 bkscr
D:\>mkdir messagelog
D:\>mkdir n:\oraclebk
D:\>mkdir h:\flash_area\bkupset
2)在记事本中编写执行周备份方案的脚本:
0级备份脚本:
backup incremental level=0 database plus archivelog delete input;
保存为d:\bkscr\rman_db_weekly_level0.rcv
1级备份脚本:
backup incremental level=1 database plus archivelog delete input;
保存为d:\bkscr\rman_db_weekly_level1.rcv。
对备份集的维护脚本:备份七天前的备份集(因此执行此脚本的前七天没有匹配的备份集)。
backup backupset completed before 'sysdate-7' delete input
format 'n:\oraclebk\wk_bkup_%U';
保存为d:\bkscr\bkup_maintain.rcv 。
0级备份的批处理文件:
::Execute on Sat. per week
::Backup database including datafiles,controlfiles,archivelogs,spfile.
@echo off
echo RMAN weekly incremental backup level0 begins.Please wait...
(rman target / @d:\bkscr\rman_db_weekly_level0.rcv
rman 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%".txt
pause
保存为d:\bkscr\rman_db_weekly_level0.bat
1级备份的批处理文件:
::Execute on 1-5,7 per week
::Backup database including datafiles,controlfiles,archivelogs,spfile.
@echo off
echo RMAN weekly incremental backup level1 begins.Please wait...
(rman target / @d:\bkscr\rman_db_weekly_level1.rcv
rman 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%".txt
pause
保存为d:\bkscr\rman_db_weekly_level1.bat
3 在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 最后,一定要验证脚本和任务的可执行性,并通过查看消息日志来确定生成备份集
的内容是否与规划一致。