“军卫一号”数据库从64位到32位的异地重建

2014-03-08 13:08王兴强刘长兴刘国伟
医疗卫生装备 2014年4期
关键词:异地备份语句

王兴强,刘长兴,刘国伟

“军卫一号”数据库从64位到32位的异地重建

王兴强,刘长兴,刘国伟

目的:实现“军卫一号”数据库从64位到32位的异地重建。方法:利用冷备份数据库,以UPGRADE方式启动数据库,重建数据字典,进行整体异地恢复,并重新编译。结果:该方法成功实现了数据库的异地重建。结论:该方法步骤少、操作简单、速度快,重建后的数据库经严密测试,系统运行平稳。

“军卫一号”;异地重建;数据库

0 引言

随着“军卫一号”系统的深入应用,HIS及其相关子系统不断增加,数据库连接用户及数据量快速增长,因此对数据库服务器的配置要求也越来越高,致使Oracle数据库由8i升级至10g,由32位升级至64位[1-4]。“军卫一号”Oracle数据库版本的不断升级,保障了业务系统的正常运行[5],但同时也带来了另外一个问题,就是系统研发人员或工程师对测试数据库的硬件环境要求也很高。而在绝大多数医院中,一般不会配置多个备用数据库服务器或测试数据库服务器。因此,最有效合理的解决方案就是将Oracle数据库由64位降至32位,将服务器的64位Oracle数据库在32位客户机上异地重建。

1 系统版本与重建方案选择

服务器:Windows 2008 Server 64位+Oracle10g(10.2.0.4)64位;目标机:W indowsXP32位+Oracle 10g(10.2.0.4)32位。

“军卫一号”Oracle数据库从32位升级到64位常用的方式有2种:(1)导出导入EXP/IMP方式。在全库导出后,在导入前需要创建“军卫一号”所有表空间、角色、用户等信息。(2)全库异地恢复升级。将冷备份数据库异地恢复[6],重新编译升级。而数据库从64位降到32位也可以采用同样的方法。第一种方法虽然可行,但相对比较繁琐,需事先准备生成“军卫一号”所有表空间、角色、用户、授权、同义词等相关语句,且我院“军卫一号”数据库较大,导出导入时间都很长,不适合采用。因此,选用第二种方案。

2 数据库环境准备

首先安装数据库软件Oracle10g(10.2.0.1)。安装目录最好与服务器的软件安装目录相同。如果目标机上已经安装了数据库软件但安装目录不同,在恢复时需要将数据库文件ORCL目录下除控制文件以外的其他文件全部放到本机与服务器的相同目录下。如服务器上的数据库软件安装目录为E:ORACLE,数据库文件目录为E:ORACLEPRODUCT10.2.0 ORADATAORCL,目标机数据库软件安装目录为C: ORACLE,在恢复时需将控制文件放在C:ORACLE PRODUCT10.2.0ORADATAORCL,而将数据库文件ORCL目录下除控制文件以外的其他文件全部放到E:ORACLEPRODUCT10.2.0ORADATAORCL,否则在恢复加载数据库时会提示找不到文件。在安装时不需要创建数据库实例。

安装数据库补丁,升级数据库到Oracle10.2.0.4版本。

创建数据库实例ORCL,全局数据库名称、SID、字符集都与服务器的数据库一致。

3 数据库异地重建的步骤

(1)在目标机上启动SQLPLUS或在CMD下键入SQLPLUS/NOLOG,以数据库管理员SYSDBA身份登录数据库:

SQL>CONN SYS/MANAGER ASSYSDBA;

执行语句:

SQL>SHUTDOWN IMMEDIATE;

删除目标机上生成的数据库文件,将服务器上冷备份的数据库文件(ORCL整个目录)拷贝至目标机数据库文件的相应目录。

(2)以升级UPGRADE方式启动数据库,执行语句:

SQL>STARTUPUPGRADE;

执行结果显示DATABASEMOUNTED及DATABASEOPENED等内容,则表示数据库以UPDATE方式成功启动并打开。

(3)重新编译PL/SQL模块,执行语句:

SQL>@E:ORACLEPRODUCT10.2.0DB_1 RDDBMSADMINUTLIP.SQL;

执行结果显示如下:

SYSTEM ALTERED. //注释:系统已更改

PACKAGE CREATED. //注释:包已创建

PACKAGEBODYCREATED.//注释:包体已创建

GRANTSUCCEEDED. //注释:授权成功

SYNONYM CREATED. //注释:授权成功

PL/SQL PROCEDURE SYCCESSFULLY

COMPLETED. //注释:PL/SQL模块成功编译

UTLIP.SQL脚本可以将所有现有的PL/SQL模块(即程序、函数、包、类型、触发器、视图)在数据库中设置为无效,并重新生成编译代码,执行代码,将PL/SQL模块重新编译。当一个32位数据库迁移到64位数据库,PL/SQL模块的编译代码会发生改变,因此,需要执行此脚本,重新生成编译代码并执行,重新编译。反之,亦然。

(4)更新数据字典,执行语句:

SQL>@E:ORACLEPRODUCT10.2.0DB_1RDBMSADMINCATUPGRD.SQL;

我们在升级数据库的大版本(如Oracle 9i到ORacle10g)或大的补丁集(如10.2.0.1到10.2.0.4)时总是需要升级现有数据库的数据字典(DICTIONARY),这是因为随着Oracle版本的升级,某些对象的属性需要改变,而这些改变操作都将体现在升级脚本CATUPGRD.SQL中。实际上,Oralce数据库的每个版本的更新都需要对数据字典进行相应的更新。Oracle数据库从64位到32位,其数据字典也需要做相应的更新。

(5)编译无效PL/SQL模块对象,执行语句:

SQL>@E:ORACLEPRODUCT10.2.0DB_1RDBMSADMINUTLRP.SQL;

UTLRP.SQL脚本能够将PL/SQL模块中的无效对象进行重新编译。Oracle数据库无论进行升级、降级或是迁移,建议都需要在最后步骤中,使用UTLRP.SQL脚本对PL/SQL模块中的无效对象进行重新编译。

(6)重新启动数据库,执行语句:

SQL>SHUTDOWN IMMEDIATE;

SQL>STARTUP;

步骤(3)、(4)、(5)中的操作都是在以升级UPDATE方式启动Oracle数据库的条件下执行的,因此,需要在执行完后,再重新启动数据库。

4 数据迁移及需注意的问题

我院主服务器上的“军卫一号”数据库已增至近100 GB。在进行数据库迁移前查看各表空间,发现临时表空间超过20 GB,因此,首先重建临时表空间,删除原临时表空间的文件,减小待迁移的数据库大小。如需对数据库再进一步的“瘦身”,则需要将主服务器上的数据库进行热备份或冷备份,在备用服务器上将其恢复,进行SHRINK等“瘦身”操作。

经过多次测试,我院数据库在普通PC机上进行异地重建,整个过程超过40min。第1、2、6步各仅需数秒即可完成,第3、5步各需不到2 min,第4步更新数据字典历时最长,超过30min,而这一步所需时间与数据库本身的大小密切相关。

在进行数据迁移,执行上述步骤过程时,需要特别注意以下2个问题:

(1)冷备份数据库。只有冷备份的数据库才能够直接以升级UPGRADE的方式启动数据库。

(2)目标机与服务器的数据库文件所在地址要一致,否则无法恢复。

5 结语

本文介绍了“军卫一号”数据库从64位到32位异地重建的方法。该方法的特点在于数据库异地重建步骤较少,操作简单,速度快。重建后的数据库经严密测试,系统运行平稳。将“军卫一号”数据库从服务器迁移到普通PC机上,对于系统研发人员和工程师意义重大,更方便对数据库有破坏性操作的测试性工作的研究。

本文进行异地重建的数据库采用冷备份,而对于热备份的数据库从64位到32位进行异地重建不能采用此方案,因为不能以升级UPGRADE的方式直接启动数据库,也不能采用热备份恢复语句(STARTUPMOUNT、RECOVER DATABASE、ALTER DATABASE OPEN)对数据库进行恢复。多次实验证明,热备份数据库不适合按照此思路从64位到32位进行异地重建。

[1]秦占伟,王在波,韩宇.“军卫一号”数据库从8i到10g的迁移[J].医疗卫生装备,2011,32(7):53-54.

(►►►►)(◄◄◄◄)

[2]郭平彩,张庆丰,朱有存.“军卫一号”实现Oracle8i到Oracle10g升级方法[J].医疗卫生装备,2011,32(3):52-54.

[3] 严清明,王婕.“军卫一号”ORACLE 8I升级ORACLE 10G的做法与效果[J].西南军医,2011,13(4):769-770.

[4]程跃斌,林亚忠.基于64位Windows2003和Oracle 10g RAC的“军卫一号”数据库的升级[J].医疗卫生装备,2010,31(10):68-70.

[5]陈忠,殷春燕.如何解决Oracle8i数据库临时表空间满的问题[J].医学信息,2011,24(11):5.

[6]冯凯,崔毅,刘书占.军队医院信息系统数据的备份与恢复案例[J].中国医学教育技术,2010,24(3):288-290.

(收稿:2013-07-17 修回:2013-09-02)

Offsite Reconstruction of No.1 Military Medical Project Database from 64 bits to 32 bits

WANG Xing-qiang,LIU Chang-xing,LIU Guo-wei
(Departmentof Information,General Hospital of Jinan Military Area Command,Jinan 250031,China)

To ac hie v e off si t e re co ns t r uct i o n of N o.1 M i l i ta ry M edi cal Pr oj e ct d ataba se f r o m 64 b i t s to 32 b i t s.C ol d backup d ataba se,U P GR A DE s ta r t in g m o de a nd d ata di ct i o n a ry re co ns t r uct i o n w ere in volv ed to re al i z e ov er all off si t e res to r at i o n a nd re-co m p i lat i o n.O ff si t e re co ns t r uct i o n of t he d ataba se wa s im pl emen t ed s ucc ess full y.T he d ataba se is re co ns t r uct ed w i t h a f e w s t e p s,hi g h s p eed a nd hi g h s tab i l i t y.[Chinese Medical Equipment Journal,2014,35(4):61-62,78]

No.1Military MedicalProject;offsite reconstruction;database

R318;TP311

A

1003-8868(2014)04-0061-03

10.7687/J.ISSN1003-8868.2014.04.061

王兴强(1979—),男,硕士,主管技师,主要从事医院信息化、数据库等方面的研究工作,E-mail:xingqiangwang@163.com。

250031济南,济南军区总医院信息科(王兴强,刘长兴,刘国伟)

猜你喜欢
异地备份语句
“备份”25年:邓清明圆梦
VSAT卫星通信备份技术研究
重点:语句衔接
创建vSphere 备份任务
图解跨省异地就医
推进医保异地结算 稳字当先
旧瓶装新酒天宫二号从备份变实验室
破除异地结算的地方抵制
我喜欢
作文语句实录