APP下载

运用存储区域网技术实现“军卫一号”数据库迁移与升级

2019-04-29胡孝霆朱孟军任军营李亮王世东李玉超

医疗装备 2019年7期
关键词:脚本备份示例

胡孝霆,朱孟军,任军营,李亮,王世东,李玉超

吉林省通化市解放军第九六六〇五部队医院 (吉林通化 134000)

医院“军卫一号”数据库运行在IBM3850x5服务器(64bit)+Windows 2008 Server+16GB内存+Oracle 10g架构下,该服务器还搭建有电子病历(MEDDOC)和病历结构化数据存储(MEDXDB)两个数据库实例,同时是病历文件服务器(FTP服务器),主服务器一旦掉电或者宕机,后果极为严重。同时,随着医院工作量增加和各子系统不断上线,医院主服务器面临严峻考验,在医院业务高峰期,部分子系统读写速率缓慢,尤其是新版医护工作站卡钝现象严重,影响了医院正常业务开展。为进一步增强系统安全性,提升服务器运行速率,医院运用存储区域网(storage area network,SAN)技术实现了“军卫一号”数据库迁移与升级,医院信息系统(hospital information system,HIS)性能得到明显提升,同时为其他子系统升级上线打下了坚实基础。

1 HIS数据库迁移升级

1.1 硬件升级

1.1.1 服务器升级

新添置两台联想Thinkserver SR850服务器(2个64bit Intel十二核Xeon Gold 5118处理器)+64GB内存,每个服务器外加双HBA卡(共4个HBA卡)用于构建SAN,HIS服务器的更新显著提升了数据库的性能和可扩展性[1]。

1.1.2 增设光纤存储交换机和存储设备

新购置宏杉MS2500G2-25S存储(双控制器,V1.2.27T05P09版本、2个4*8GbFC-IO模块+8块600G 10000RPM硬盘)和博科Brocade 300光纤存储交换机(24端口交换机,24端口激活,含24个模块)各1台。为保证系统的高可靠性和高可扩展性,组建以光纤交换机为核心的SAN,从主机到SAN冗余设计,需要数据的主机通过SAN存取存储设备上的数据,见图1。

图1 SAN结构

1.2 软件安装与升级

1.2.1 操作系统安装

通过Thinkserver SR850服务器自带系统将3块600GB的SATA硬盘配置成RAID5,而后安装Windows 2012 Enterprise Server x64操作系统。

1.2.2 故障转移群集安装

使用Windows故障转移群集服务将两台服务器与1台存储、1台域控服务器搭建成群集,其中新添置的两台服务器是通过心跳网络进行相互检测的,如果在群集中的一台服务器发生了故障,则群集中的另一台服务器会检测不到故障服务器的心跳信号,此时就会认为此服务器发生故障,并立刻接手业务并继续运行,见图2。

图2 故障转移群集

1.2.3 Oracle 软件安装升级

安装Oracle 11.2.0.4 Enterprise x64 for Windows数据库软件。这里对软件的安装不做详细说明,可以参考相应的文档。安装过程中需要注意3个问题:(1)新建数据库时注意新旧数据库字符集的匹配。检查字符集是UTF8还是AL16UTF16,执行以下示例代码可实现自检:

select value

from NLS_DATABASE_PARAMETERS

where parameter = ‘NLS_NCHAR_CHARACTERSET';一定要正确选择字符集,否则导入新库的数据会显示乱码。(2)在定义新数据库名称和系统SID时,一般设为ORCL[2]。(3)要注意构建好SAN后,安装oracle软件时数据库的数据文件都要放在共享存储Z盘上。

2 数据库的备份迁移

2.1 HIS数据库的备份导出

2.1.1 关闭数据库

为确保HIS新旧数据库的一致性,要选择适当的时机关闭数据库。提前通知各科室处理好在线业务,在不影响医疗工作的情况下关闭数据库,可执行以下示例代码:

SQL> sqlplus "/as sysdba"

SQL> shutdown immediate;2.1.2 对全库做冷备份

为确保HIS数据库迁移安全可靠,考虑先给数据库做一次冷备份。直接拷贝oracle目录下的admin、oradata(datafile,controlfile,redo)、flash_recovery_area3个文件以及db_1目录下database(PWDfile、pfile)、dbs(spile)、network/admin(listener.ora、tnsnames.ora)到其他存储设备上。

2.1.3 对全库做热备份

选择oracle自带Exp工具的完全导出模式,导出HIS老库服务器上的数据,生成一个全库dmp文件,可执行以下示例代码:

2.1.4 整理老数据库表空间,创建新数据库表空间脚本

此操作要在HIS数据库nomount状态下执行,可执行以下示例代码:

SQL> startup nomount;

SQL> alter database backup controlfile to trace;

备份当前的控制文件到跟踪文件中,然后到D:oracleadminoracleudump目录的跟踪文件中查看最新的文件,并根据文件中的数据文件生成新的表空间脚本Tablespaces.sql。

2.2 HIS数据库的导入

2.2.1 新库下创建表空间

根据旧库生成的表空间脚本Tablespaces.sql在新库下创建表空间。例如,创建tsp_comm表空间,执行以下示例代码:

2.2.2 导入老数据库生成的dmp文件

即向新数据库导入dmp文件,执行以下示例代码:imp system/password

2.2.3 编译无效对象

数据库导入成功后,可能存在无效对象,重点是要查看触发器是否完全倒过来,通常,医院可能存在旧数据库触发器编写的权限和创建的表空间不对,极易导致个别旧数据库创建的触发器没有成功导出,可以使用PL/SQL Developer的tools下的compile invalid objects功能进行编译[3]。

2.2.4 开启新数据库

使用sqlplus连接数据库,开启自动归档模式,重新启动数据库,检查各个系统是否运行正常,有异常及时解决。

3 使用资源管理器对数据库进行备份管理

使用oracle软件中的资源管理器(resource manager,rman)对数据库进行备份恢复管理,设置rman在nocatalog模式下工作,即用控制文件(control file)作为资料档案库(catalog),每次备份信息都要写在控制文件里。因此,当使用rman nocatalog方式备份时,备份control file也非常重要。

3.1 设置定时备份计划

使用Windows自带的计划任务设置,每日定时执行备份计划脚本rmanbackup.bat,脚本内容示例代码如下:

将rmanbackup.bat文件添加到计划任务里定时执行,备份完成后会在同一目录下生成rmanbackup_2018-07-12.log这种格式的log文件。

3.2 编写备份脚本

编写rmanscript.sql计划脚本,对全库进行增量备份,同时要对控制文件、归档日志文件进行备份,脚本内容示例代码如下:

3.3 定期删除过期归档日志

为节省存储空间,规定只保留20内的归档日志文件,编写delbackup.bat批处理文件在windows计划任务中定期执行,批处理脚本示例代码如下:

forfiles /P E:Backup manbackup /M * /S /D -20 /C "cmd /c del /F /s /q

@file" >>c:delbackup.log

删除完成后会将操作过程记录在delbackup.log文件中。

4 应用效果分析

Oracle11g具有 自动内存优化(auto memory tuning)的新特性,在9i中,引入了自动PGA优化,10g中,又引入了自动SGA优化,到了11g,所有内存可以通过只设定一个参数实现全表自动优化。只要告诉oracle有多少内存可用,它就可以自动指定多少内存分配给PGA、多少内存分配给SGA和多少内存分配给操作系统进程,显著提高了内存使用效率。

整个HIS数据库基于SAN结构的存储系统,不但消除了单点故障,还提供了TB级的安全存储,显著提升了数据访问效率,实现了整个SAN的智能化管理[4]。同时,在双机热备的基础上,一台服务器在群集中出现故障后,群集中的另一台服务器会立刻接手业务并继续运行,明显提升了HIS服务器的整体性能和稳定性。

从医院管理的角度分析,备份医疗数据十分重要,数据一旦丢失会造成不可估量的损失,因此数据都被统一保存在存储设备上,光纤通道SAN提供了高性能、海量数据传输的能力,有利于数据备份和恢复[5]。

5 结语

通过运用SAN技术实现了“军卫一号”数据库迁移与升级,同时利用Oracle Emp/Imp 工具实现了数据库从Oracle 10g到Oracle 11g版本的升级,最后使用Oracle资源管理器对数据库进行了合理备份。升级后系统整体运行性能明显提高,达到了既定目标,为下一步各个子系统(实验室信息系统、影响归档和通信系统、手术麻醉管理系统等)更新上线提供了稳定的技术环境保障,应用实践证明该升级方案切实可行。

猜你喜欢

脚本备份示例
酒驾
VSAT卫星通信备份技术研究
安奇奇与小cool 龙(第二回)
创建vSphere 备份任务
2019年高考上海卷作文示例
常见单位符号大小写混淆示例
常见单位符号大小写混淆示例
“全等三角形”错解示例
快乐假期
小编的新年愿望