代码改变世界

Win环境下Oracle小数据量数据库的物理备份

2017-07-09 10:04  AlfredZhao  阅读(716)  评论(1编辑  收藏  举报

Win环境下Oracle小数据量数据库的物理备份

环境:Windows + Oracle 单实例
数据量:小于20G
重点:需要规划好备份的路径,建议备份文件和数据库文件分别存在不同的存储上。

1.开启归档模式

此步骤需要停库,需提前申请停机时间(10分钟),正常关闭数据库,在mount状态下设置数据库为归档模式,再打开数据库。
--正常关闭数据库之后,启动数据库到mount状态,开启数据库归档 
SQL> shutdown immediate 
SQL> startup mount 
SQL> alter database archivelog; 
SQL> alter database open; 
SQL> archive log list

2.制定备份策略

备份策略:每天0点对数据库进行完全备份,保留最近5次的备份(可根据实际情况选择不同的冗余度,建议设置大于2的数值)。 假设规划的备份文件存放路径是E:/hotback/myoracle/ (强烈建议备份文件有单独的存储,防止存储单点故障时备份文件亦不可用) 备份脚本所在目录是 D:/rman_scripts/

RMAN备份脚本文件 D:/rman_scripts/rman_backup.txt,
实现功能:备份整个数据库和归档,并删除已经备份成功的归档,最后删除已经超过备份保留策略的历史备份。
RMAN脚本内容如下:

CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
run {
allocate channel c1 type disk;
backup database format 'E:/hotback/myoracle/db_%d_%T_%s_%p.bak' plus archivelog delete all input format 'E:/hotback/myoracle/arch_%d_%T_%s_%p.bak';
release channel c1;
}
delete noprompt obsolete;
exit

批处理脚本文件 D:/rman_scripts/rman_backup.bat,
要求备份完成后会在指定目录下生成 rman_backup_20170707.log 这种格式的log 文件。
批处理脚本内容如下:

rman target sys/oracle@mcdull nocatalog CMDFILE 'd:/rman_scripts/rman_backup.txt' LOG 'd:/rman_scripts/rman_backup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log'

最后把rman_backup.bat这个批处理文件添加到windows的计划任务里,设置为每天晚上0点定时执行就可以了。

至此,已完成Win环境下Oracle小数据量数据库的物理备份。
当然,如果数据量比较大,进行备份方案设定时则需要额外考虑评估:每次全备的时间间隔,是否启用多个备份通道,是否需要启用增量备份,是否需要对备份压缩等等。
此外,关于Oracle RMAN物理备份方面,还可以参考之前的一些文章: