扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
针对PRD系统的安全性及数据的可靠性,做出了一下的备份策略和脚本。
环境: 
操作系统:linux Enterprise SERVER 3 
数据库:  ORACLE 9I 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1)系统备份(file level) 
   对于整个文件系统的备份,它的初衷就是当系统文件丢失、服务器硬件的物理损坏造成的系统无法正常运行时,采用 
通过系统的备份文件来快速恢复损坏的系统,使操作系统在最短的时间修复。根据上面的分析,系统的备份可以在系统 
硬件或软件发生改变时进行备份,无须定制备份计划。也可以定期手工备份(如3个月)。 
备份脚本文件名:system_bck.sh 
脚本内容如下: 
#!/bin/sh 
cd / 
tar cvf rman:/dev/st0 . --ignore-failed-read 
说明:a.rman 是远程的LINUX操作平台的备份机,这样可以把数据直接存至异地。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2)数据库备份(database level -- exp/imp) 
   对于数据库的备份有很多种,比如:数据库的在线热备份、脱机的冷备份,ORACLE exp/imp的工具备份,Rman备份和 
第三方的备份软件的备份。在对PRD系统进行分析后,决定首先采取exp/imp对ORACLE 数据库进行计划性的逻辑备份,这样 
可以节省本地的硬盘空间,也是ORACLE的一种有效的备份工具。 
备份脚本文件名:exp_full.sh 
脚本内容如下: 
#!/bin/tcsh 
source /usr/local/ora9i/.cshrc 
setenv rq `date +%Y%m%d` 
rm -fr /Oradata/backup/exp_plan/exp_full_* 
exp userid=system/manager full=Y file='/Oradata/backup/exp_plan/exp_full_$rq.dmp' log='/Oradata/backup/exp_plan/exp_full_$rq.log' 
说明:a.以上是做数据库的完全数据库导出,文件名称为变量 rq 的值。(如exp_full_20050311) 
     b.这个逻辑导出的文件存放在本地服务器,并且保留一份,也就是当天有效。因为本地磁盘采用的是RAID5阵列,所以 
       没有把这个导出文件在另存到异地。(由于RAID5的可靠性,异地转存的混乱,所以没有转存到异地)。 
     c.用crontab进行定期的执行:23 00 * * * /Oradata/backup/exp_plan/exp_full.sh 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3)数据库脱机冷备份 
  脱机冷备份的备份方式是在数据库正常关机的条件下,对数据库的数据文件,重做日志文件,控制文件,归档文件, 
和服务器参数文件进行备份,这样可以保留某一时间段数据的完事性,2)可以依托于3)的备份结构。 
备份脚本文件名:cool_full_bck.sh 
脚本内容如下: 
#!/bin/sh 
# 
#本地备份目录为 
#/Oradata/backup/cool_bck/sda1   
#/Oradata/backup/cool_bck/sda2 
# 
export ORACLE_HOME=/usr/local/ora9i/OraHome 
$ORACLE_HOME/bin/sqlplus "/as sysdba" <<EOF 
shutdown immediate 
host "rm -fr /Oradata/backup/cool_bck/*" 
host "mkdir -p /Oradata/backup/cool_bck/sda1" 
host "mkdir -p /Oradata/backup/cool_bck/sda2" 
host "cp -fr /Oradata/FIT_DB/FIT/* /Oradata/backup/cool_bck/sda2" 
host "cp -fr /usr/local/ora9i/Oradata/FIT_DB/FIT/* /Oradata/backup/cool_bck/sda1" 
host "cp -fr $ORACLE_HOME/dbs/*.ora /Oradata/backup/cool_bck" 
startup 
<<EOF 
备份脚本文件名:cool_tar_remote.sh 
脚本内容如下: 
#!/bin/sh 
#远程备份机器名为 rman 
#此脚本为以追加方式写入磁带机 
cd /Oradata/backup/cool_bck 
tar rcvf rman:/dev/st0 . 
备份脚本文件名:cool_tar_remote.sh 
脚本内容如下: 
#!/bin/sh 
#远程备份机器名为 rman 
#此脚本以覆盖方式写入磁带机 
cd /Oradata/backup/cool_bck 
tar cvf rman:/dev/st0 . 
说明: a.00 21 * * 0 /Oradata/backup/exp_plan/cool_full_bck.sh         #每周做数据库的脱机全备份 
     b.30 23 * * 0 /Oradata/backup/exp_plan/cool_tar_remote.sh       #将本地的数据备份到远程磁带机上 
     c.00 03 28 * * /Oradata/backup/exp_plan/cool_tar_remote_ow.sh   #每月的28日对磁带机进行覆盖备份 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
附加方式:
数据库备份(database level -- Rman) 
  采用Rman做异地的备份,这样也是对2)的一个补充,在异地服务器安装RMAN catalog,磁带机,创建脚本;并对脚本定 
期的执行。这样本地有exp/imp的导出文件和RAID5的安全性,远程有Rman的磁带备份,可以说是对数据的双重保护。在数据 
量增大时,可以考虑第三方备份软件,如:veritas netbackup, Ca ,legato等备份软件。 
备份脚本文件名:ora_bck 
脚本内容如下: 
{configure default device type to "sbt_tape" parallelism 3; 
configure exclude for tablespace temp; 
allocate ch01 device type "sbt_tape"; 
allocate ch02 device type "sbt_tape"; 
allocate ch03 device type "sbt_tape"; 
backup database; 
backup current controlfile; 
backup archivelog all; 
} 
说明 :a.这备份方式可以做为与3)方式的可选项,见议备份方式不要太多,以免造成混乱。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。