Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1198846
  • 博文数量: 1211
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 14340
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-09 11:20
文章分类

全部博文(1211)

文章存档

2011年(1)

2008年(1210)

我的朋友

分类: 服务器与存储

2008-06-13 13:32:23

针对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" <  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
  <

  备份脚本文件名: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)方式的可选项,见议备份方式不要太多,以免造成混乱。

阅读(344) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~