技术开发 频道

Oracle数据库恢复管理器及特殊包的应用

    四. 应用实例

    4.1 RMAN做数据库在线备份应用实例
    这里以某公司业务处理计算机中心数据库为例。用户系统配置为:两台HP9000小型机(host1、host2),操作系统为HP-UX11.0,Oracle数据库版本为8.0.5。两台机上各有一个Oracle数据库实例,分别运行不同的业务处理系统。用户要求设备7X24小时在线工作,原则上运行时不允许数据库关闭。这就使得我们只能采用在线备份方式解决问题。为安全起见,我们在另一台IBM服务器(host3)上安装Windows2000及一个独立的Oracle数据库,恢复目录就建在这个数据库中,这台服务器还配置了一台磁带加载机,备份数据存放在磁带上,这样即便哪台机器出现故障我们也能够实现数据库的完全恢复,不过DBA应注意定期做恢复目录数据库的备份。在备份策略上,我们采用了全备份与归档日志备份相结合的方式,既不占用过多的系统时间,也相应减少了备份的数据量。备份策略如下:
    (1) 每周日晚11:00做数据库在线全备份。
    (2) 每天12:00,18:00 做数据库归档日志文件的在线备份。

    建立备份机制的操作如下(以host1机为例):
    (1) 建立恢复目录并注册目标数据库。 

SVRMGR> create tablespace rmanspace datafile 'rmandata' size 500m; SVRMGR> create user rman identified by rman default tablespace Rmanspace temporary tablespace temp; SVRMGR> grant connect,resource,recovery_catalog_owner to rman;

        以上为建立RMAN表空间和用户。 

$ sqlplus rman/rman sql> start "/ora_01/app/oracle/product/8.0.5/rdbms/admin/catrman"; --执行创建恢复目录操作   $ rman target system/manager@host1 rcvcat rman/rman@host3;                     --连接目标数据库和恢复目录   rman> register database;        --将目标数据库注册到恢复目录中   rman> resync catalog;         --进行同步目录操作

    (2) 将目标数据库改为归档模式运行。

SVRMGR> connect internal   SVRMGR> startup mount [dbname]   SVRMGR> alter database [dbname] archivelog; --起用归档模式   SVRMGR> archive log start            --启动自动归档模式   SVRMGR> alter database [dbname] open;     --打开数据库   

 
  修改数据库初始化参数文件init.ora,定义归档模式(自动)、归档日志文件保存路径、归档日志文件命名方法,重新启动数据库。
    (3)建立全备份脚本文件hotbackup.rcv。

connect target internal/oracle@host1   connect rcvcat rman/rman@host3   run { allocate channel t1 type 'SBT_TAPE';   backup   incremental level 0   skip inaccessible   tag hot_db_bk_level0   filesperset 5   format 'bk_%s_%p_%t' (database);   --备份全部数据库控制文件和数据文件   sql 'alter system archive log current';   backup   filesperset 20   format 'al_%s_%p_%t' (archivelog all delete input);   --备份归档日志,备份成功后删除归档日志。若不成功,则不做删除。   }

    归档日志备份脚本hotarcbackup.rcv文件如下:

connect target internal/oracle@host1   connect rcvcat rman/rman@host3   run { allocate channel t1 type 'SBT_TAPE';   sql 'alter system archive log current';   backup      filesperset 20      format 'al_%s_%p_%t' (archivelog all delete input);   }   

    (4) 利用UNIX的crontab命令定期自动执行备份脚本crontab命令用于指定一个文件,其行计划命令以固定时间间隔执行。Cron是一个永久进程

0
相关文章