Oracle自动异地远程数据备份研究
  当前随着行业改革的不断深入,数据逐步向地市公司集中,业务经营、政务管理对于信息系统和核心数据的依赖程
度也越来越高,如何保障核心数据的安全就显得尤为重要,相信很多单位均已实现了本地的磁盘与磁带的双备份,很好
的保障了对核心数据的安全管理。
  但本地备份一般将数据保留在机房内,当本地机房整体物理环境遭到破坏,如发生火灾地震等意外事件时,数据有
可能也会损伤。美国“911”事件让许多公司的商务资料在瞬间毁于一旦足以证明远程数据备份的重要性,但是建立一
个完备的支持实时数据恢复功能的远程备份系统的投入是非常昂贵的。本文结合工作实际,充分利用县公司机房中现有
的存储条件,借助oracle自动备份和ftp自动传输技术,实现了核心Oracle数据库的自动远程异地备份,当本地机房物理环
境遭到破坏时,能最大限度的保护好我们的数据。
  一、设计思路
  当前支撑绍兴烟草营销、呼叫、专卖、财务、OA等核心系统运行的主要是TradeCtr、QueryCtr、JTCW、OA四
个Oracle数据库,运行在两台HP8420小型机上,每个数据库的备份大约为30G左右,考虑到今后两年内的数据增长可能
会达到50-60G左右。绍兴烟草下属四个县公司,每个公司均具备充分的存储空间,网络实际可利用带宽均为6Mbit/s左
右,完成一个备份文件的数据传输大约需要10-20个小时,考虑到网络带宽、传输时间及工作时间对业务经营的影响,
我们将数据备份及远程传输放在星期六进行,每个单位对应一个数据库进行远程备份,备份周期为每周一次,每周六下
午开始。备份中主要用到数据库导出、ftp自动传输、HP UNIX 定时作业等技术,下面以财务数据库JTCW为例来说
明具体实现方式。
  二、导出数据库
  export命令将数据库中的数据备份成一个二进制文件,它通常有三种模式:用户模式、表模式和整个数据库模式。
本文拟采用用户模式,备份之前,应先建立一个备份目录,以在本机容纳备份文件,比如可建一个/localbak目录。我们
将JTCW数据库在用户模式下备份,备份保留周期为一天,具体脚本如下,保留在exp_JTCW.s件中:
  export EXP_HOME=/localbak  #设置环境变量EXP_HOME
  export ORACLE_SID=JTCW#设置环境变量ORACLE_SID
 
 exp system/password owner=hsa6 file=$EXP_HOME/JTCW$(LC_ALL=C date +%y%m%d).dmp log=$EXP_HOoracle数据库自动备份方法
ME/JTCW$(LC_ALL=C date +%y%m%d).log statistics=none#备份数据以日期方式命名
  find /oradata/cwdata/backup -type f -mtime 3 -exec rm {} \;#保留周期为三天
  三、自动数据传输
  我们知道,通常可用FTP命令在两台主机间传输数据,但一般是通过交互方式实现的,即需要手工输入目标主机的
IP地址、用户名、口令等。显然,这不符合自动备份的要求。所幸的是,在HP UNIX平台下我们可以通过编写一
个rc的文件来达到目标。这一文件必须命名为rc,且必须存放在启动FTP命令的机器上的用户注册目录中,该文
件的权限应禁止组内或其它用户进行读访问。这样,当用户使用FTP命令的时候,系统将会在该用户的注册目录中寻
rc文件,如果能够寻到,将会首先执行该文件,否则,会交互式地提示用户输入用户名、口令等。
  在使用FTP命令之前,应先在对应县公司一台作备份用的机器上开启ftp服务并建立上传文件目录,以容纳备份文件
,本文建立的目录是/remotebak。为了加快备份速度,rc文件内容如下:
  machine host2  # host2为作备份用的主机名
  login ftpuser  # ftpuser为远程备份主机上的一个用户

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。