四. 应用实例
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是一个永久进程
