-- 在正式备份之前,一定按如下要求去做。
-- 版权声明如下:
-- 读者可以任意拷贝、修改该备份脚本的内容,但不可以篡改作者。
-- 作者: 徐玉金
各文件的作用:
1.rman_db_all.sh :
备份整个Oracle数据库,该文件会先后调用rman_db.sh,scp_rman_db_files.sh文件
2.rman_db.sh:
由rman_db_all.sh文件调用,实现用rman备份数据库.
该脚本会首先根据环境变量的设置:
a.生成一个rman脚本文件(rman_arch_cr_g.sh), 去检查归档日志的情况
b.生成一个rman脚本文件(rman_db_backup_g.sh), 备份整个数据库
3.scp_rman_db_files.sh:
由rman_db_all.sh文件调用,将用rman备份出的数据文件拷贝到另外一个机器上,用scp拷贝
4.OS_bak_arch.sh:
用操作系统拷贝方法只备份归档日志文件,该文件会先后调用OS_bak_arch.sh,
scp_rman_arch_files.sh文件
5.OS_bak_arch.sh:
由OS_bak_arch.sh文件调用,实现将新产生的归档日志拷贝到指定的目录.
6.scp_rman_arch_files.sh
由OS_bak_arch.sh文件调用,将第5步的指定目录的归档日志用scp拷贝到另外一台机器上。
具体设置方法:
1.设置服务器,使之用ssh与scp密码登录时不用密码
2.在备份服务器上创建相应的备份目录, 为 BACKUP_SERVER_TARGET,
BACKUP_SERVER_SCRIPT_TARGET 环境变量指定的值
3.在数据库服务器上创建相应的目录, 为 BACKUP_BASE, SCRIPT_FILE_TARGET 环境变量指定的值
3.修改所有文件中的相应环境变量的值,所有文件的环境变量都一样
4.运行前将rman_db_all.sh,rman_arch_all.sh文件前面有中文的行去掉
5.根据归档目录个数的不同,适当的修改脚本
6.将所有脚本拷贝到备份服务器的BACKUP_SERVER_SCRIPT_TARGET目录下,并使所有的脚本由可执行权限
10.将rman_db_all.sh文件加到cron中,天天运行一次。rman_arch_all.sh也加到cron中,每30分钟运行一次
11.根据需要修改,LOG_CHECKPOINT_TIMEOUT,使之在指定的时间内归档,
这样可以保证在整个系统硬盘都崩溃的情况的,只损失指定时间的记录
备注:
1.在oracle9i下测试通过
2.每个scrip中都设置enviroment variable的原因是:用ssh时,环境变量传不过去。
点击这里下载参考脚本。