当前位置: 首页 > 期刊 > 《西南军医》 > 2006年第3期
编号:11145848
医院镜像数据库的建立与实施
http://www.100md.com 《西南军医》 2006年第3期
     摘要 对于一个随时可能出现故障的数据库,作为数据库管理 员,不仅要做好日常的备份工作,还可以通过创建并维持一个主数据库的镜像数据库来保证 工作系统即使用主数据库故障时也能7X24不间断提供服务。

    关键词 镜像数据库;主数据库;恢复

    众所周知,医院是一个典型的数据库7X24应用的实例,随着医院的发展,信息管理系统 在医院的使用已经渗透到各个方面,由于每天大量的联机用户同时对数据库的数据进行着查 询、插入、修改和删除等操作,服务器的性能,客户端的误操作,以及其他客观因素都可能 造成数据库的瘫痪。建立一个镜像数据库可以在短时间内使用尽快恢复连接,不影响正常 的工作。一个镜像数据库应该具有以下特点:

    

    它应当是主数据库在另一台计算机上的拷贝,两者应有相同的版本并且运行在相同类型、 相同版本的操作系统之上;

    

    它一直处于RECOVERY状态以备激活;

    

    它一旦被激活,就成为主数据库。

     1 实施环境

    WIN2000 SERVER,ORACLE 902

    主数据库A,实例SID ORCL IP:19216801

    备数据库B,实例SID ORCL IP:19216802

     2 实施步骤

    (1)创建主数据库的数据文件与日志文件的备份

    关闭数据库,把主数据库的数据文件与日志文件备份到一个备份文件夹下

    SQL>shutdown immediate——关闭数据库

    (2)创建镜像数据库的控制文件

    打开主数据库,命令:

    SQL>conn/as sysdba

    SQL>startup mount

    SQL>alter database create standby controlfile as`/opt/share/standbyctl.ctl'

    (3)复制主数据库的备份文件夹下数据文件与日志文件以及控制文件到备数据库的对应的相 关目录下

    (4)配置主数据库的tnsnames.ora文件

    添加备数据库的别名:自己命名,如:STANDBY;增加如下:

    STANDBY=

    (DESCRIPTION=

    (ADDRESSLIST=

    (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))

    (CONNECTDATA=

    (SERVICENAME=ORCL))

    (5)修改主数据库的参数

    SQL>conn/as sysdba

    SQL>startup mount

    SQL>alter system set logarchivedest1=”location=/opt/log”;

    SQL>alter system set logarchivedest2=”service=STANDBY mandatory reopen=6 0”

    SQL>alter system set logarchivedeststate2=enable

    SQL>alter system set logarchiveminsucceeddest=1

    (6)配置备数据库的初始参数

    将备数据库的初始化参数文件用VI或文本工具打开,增加如下内容

    logarchivedest='/opt/log'

    logarchivetrace=6

    standbyarchivedest='/opt/log'

    controlfiles=(“/opt/ora9/product/oradata/standby/standbyctl.ctl”)

    此处控制文件:从主数据库生成后拷贝的控制文件,注意命名一致

    (7)配置备用数据库的监听文件(listener.ora)

    先备份原来初始化文件,删除原来初始化文件,增加下面内容:

    LISTENER=

    (ADDRESSLIST=

    (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.2)(PORT=1521)))

    SIDLISTLISTENER=

    (SID=LIST=

    (SID=DESC=

    (GLOBALDBNAME=orcl)

    (SIDNAME=orcl)

    (ORACLEHOME=/opt/ora9/product/9.2)))

    修改完成后,请保存。

    (8)重新启动备数据库的监听服务

    $1snrctl

    $1snrctl>stop

    $1snrctl>status

    $1snrctl>start

    (9)启动备用数据库

    SQL>conn/as sysdba

    SQL>startup nomount pfile='/opt/ora9/admin/orcl/pfile/init.ora.*******

    SQL>alter database mount standby database

    (10)配置完后,启动备数据库的监听,且备用数据库在恢复模式下,接着启动主数据库监听 ,主数据库的按正常方式启动。

    (11)主数据库的日志与备用数据库的日志文件是否相同或缺少,如缺少则先将主数据库的日 志复制到备用数据库日志目录下,进行手工恢复

    SQL>recover automatic standby database

    (12)日志序列号相同后将备用数据库置于管理模式

    SQL>recover managed standby database

    (13)验证Standby备数据库是否及时归档恢复,在主数据库上,执行如下:

    SQL>create table tablename(…………………)

    SQL>alter system switch logfile

    强制日志归档,并自动传入到备用数据库下

    (14)查年数据库的是否通过日志恢复至备用数据库

    SQL>alter database open read only

    SQL>select*from tablename

    查看上面创建数据表在备用数据库中是否存在

    (15)STANDBY备份完成

    3 应用

    一旦主数据库发生故障无法使用,就可以迅速激活镜像备份:

    (1)如果可能,归档主服务器当前重做日志,传送到镜像服务器;

    (2)在镜像服务器上使用主服务器的归档日志文件做恢复;

    SQL>recover standby database;

    (3)激活并打开数据库:

    SQL>alter database activate standby database;

    SQL>alter database mount;

    SQL>alter database open;

    小结

    综上所述,我们不难发现,镜像数据库可以为医院正常的备份方式提供有益补充,而且 它恢复的时间较短,保障了医院医疗工作的正常开展。在日常的数据库维护中,以常规的备 份方式为主,以镜像数据库为辅,当数据库出现故障时,也就有了多种用于恢复的手段,也 为数据库管理员提供了多种可供选择的方式,最终以最快捷的方式使数据库可用,保障医院 医疗工作的尽快恢复。

    作者单位: 成都军区总医院网络中心(成都 610083), 百拇医药(李明 罗绯 马睿 童玲)