医院信息系统的数据文件、索引文件、LOB型数据分离方法
2015-04-15庄绍燕苏新明陈文亮
庄绍燕,苏新明,陈文亮
1.解放军180医院 信息科,福建 泉州362000;2.解放军91医院 信息科,河南 焦作454150
医院信息系统的数据文件、索引文件、LOB型数据分离方法
庄绍燕1,苏新明2,陈文亮1
1.解放军180医院 信息科,福建 泉州362000;2.解放军91医院 信息科,河南 焦作454150
针对医院信息系统(HIS)数据库传统管理模式的弊端, 结合Oracle数据库管理特性,将数据、数据索引、大二进制数据对象分离,并连续存储于系统不同数据文件中,提高了数据库对象分层存储的清晰度和安全性,同时也提升了数据并行访问的速度。
医院信息系统;Oracle数据;数据索引;大二进制数据
0 前言
我院编制床位1400张,规模上属于中等的三级甲等综合医院,医院信息系统(HIS)已上线14年,属国内第一批全院范围大规模实现医疗数字化的医院,并已实现“数字化一级达标医院”,医院数据库容量现已达570GB,预计在未来2年将跨入TB级别。庞大的数据文件对医院的高速存储空间的使用造成很大的压力,既要保证数据库访问的快速性,又要保证数据库的安全性,这对数据库管理员提出了新的挑战[1-2]。为此,我们分析了传统医院信息系统(HIS)数据库管理模式存在的问题,提出了改进方案,取得了较好的效果,现报告如下,供同行参考。
1 HIS数据库传统管理模式
医院以往对HIS数据的管理模式是以业务种类划分界限,为每一种业务都创建一个表空间,并在操作系统上创建若干个数据文件。随着信息数据的迅速增长,这种不断地增加数据文件的管理模式缺点突显:
(1)医疗业务数据物理存储于数据文件中,所以数据文件中既有数据段、索引段、也有大二进制数据段、大二进制索引段。当每增加1行数据时,相应的数据文件数据、索引数据、大二进制段数据、大二进制索引段数据均增加1行数据。而这些数据分处于不同的扇区中,造成数据文件的混乱,见图1。在进行数据查询时,如果采用机械硬盘的话,对不连续的磁道和扇区读的时间延迟大,对数据查找有很大的影响。
图1 数据段在数据文件中的存储方式
(2) 数据备份任务繁重。各种数据分布在同一数据库文件的不同扇区,数据库备份时,其不连续的扇区相比连续的扇区的读写消耗更多的时间,从而影响备份速度。
(3) 数据文件、索引文件、大二进制数据存储于同一数据库,但数据文件日增长量大,需要预留较大的数据文件增长空间。一般情况下,HIS数据库容量的70%(甚至可能更低)为真正的数据存储区域;另外30%则为增长预留空间。数据库管理员为了不让文件存储空间不足造成数据库宕机,一般会预留更多预增长空间。而空间的增长和备份速度是相悖的,长期以来,数据库管理员的安全备份压力越来越大。
(4)HIS发生灾难性故障时,采用文件级别恢复,如果没有恢复重点对象,从庞大数据文件中恢复数据无疑是大海捞针。
2 对传统数据管理模式的改进
通过上面的分析,我们对HIS数据库的管理模式做了如下改进[3-5]:
(1)创建全库专属索引表空间,将各个表空间的业务数据和索引数据分离。业务表空间只存储业务数据,索引表空间存储索引。这样,高效的索引可以提高数据库访问的速度,连续的索引段和数据段也可以提高数据库访问效率。同时,在灾难发生时,索引数据文件是可丢弃的第一选择。
(2)创建专门存储LOB数据的表空间。将含有CLOB、BLOB的对象分离至LOB表空间中。该表空间可以创建多个20~30 GB的数据文件,该类型的数据一般访问不会非常频繁,且对数据实时性要求不高。
(3)创建零散业务表空间(5~10 GB),用于存放医院人力资源管理数据、感控数据等年业务量预增长量<1 GB的零散业务数据。
(4)做数据和索引的迁移,特别是重新生成索引。许多医院从HIS数据库使用以来(10年以上),大部分表格的索引基本没有重新生成过,而数据库宿主服务器和存储(一般4年更换)却经历过至少3次以上迁移。
(5)将数据文件和索引的数据文件存放在固态硬盘;将大二进制数据文件存放于机械硬盘。这种存储方法既提高数据存储效率又节约成本。
(6)重新编译所有视图、存储过程。
3 实施方法
以我院HIS数据库为例,介绍实施过程:
(1)创建tsp_index表空间,此表空间关联4个30 GB的数据文件。数据文件为APINDEX01、APINDEX02、APINDEX03、APINDEX04。 其中最后1个表空间增长大小为每次128 MB。实现程序语句如下:
Create tablespacetsp_indexdatafile ‘D: orclapindex04.dbf’size307290M autoextend on next 128m;
(2)创建tsp_lob表空间,此表空间关联6个30 GB的数据文件,数据文件为APLOB01、APLOB02……APLOB06。其中最后1个表空间增长大小为每次128 MB。实现程序语句如下:
Create tablespace tsp_lob_data datafile ‘d: orclap_lob_ data06.dbf’ size307290M autoextend on next 128m;
(3)将索引表空间的读写权限赋予所有用户。实现程序语句如下:
alteruser usernamequota unlimited ontsp_index;
(4)依次将体检、心电、检验、病历等业务中的表格做迁移。实现程序语句如下:
Alter table table_name move tablespace new_tablespace;
(5)碰到含有blob表格,需要做数据迁移后,再迁移索引。实现程序语句如下:
Alter table table_name move tablespace new_tablespace lob(lob_column)store as (tablespace new_tablespace);
(6)利用业务空档,对数据库中比较大的索引进行删除,删除完毕后,重建索引至TSP_INDEX表空间。实现程序语句如下:
Alterindex index_name rebuild tablespace new_tablespace;
4 结果
经过以上的调整,虽然数据库表空间和数据文件数量增多,但是数据文件空间总大小减小了;经过重新生成的数据和索引文件,使数据的段连续性增强,客户端连接服务器操作时,能明显感觉到运行速度得到质的提升[6-7]。
5 结语
医疗信息已进入大数据时代,数据库管理员依托硬件服务器性能及稳定性来实现HIS数据库服务稳定性的时代必将终结。根据医疗业务特性及发展趋势,及时调整数据库管理策略是数据库管理员在运维管理上新的思路。
[1] 郝昱文,卢沙林,杨宇,等.医院信息智能统计分析系统设计与实现[J].中国医疗设备,2013,28(2):31-32.
[2] 周毅,邹赛德,刘燕.可交互性标准框架的评估何选择[J].中国数字医学,2007,2(6):24-26.
[3] Darl Kuhn,sam R.Alapati,Bill Padifield.Expert Indexing in Oracle Database 11g[M].北京:人民邮电出版社,2012:29-87.
[4] Jonathan Lewis.Oracle Core[M].北京:人民邮电出版社, 2013:62-91.
[5] sam R.Alapati,Darl Kuhn,BillPadfield.Oracle Database 11g Performance[M].北京:人民邮电出版社,2013:103-141.
[6] 贾代平,吴丽娟.Oracle 数据存储与访问技术[M].北京:电子工业出版社,2013:17-103.
[7] 胡歌.Oracle数据库安全性分析研究[J].信息安全与技术, 2012,(4):32-33.
Methodology for Segregation of Data, Indexes and LOB in the HIS
ZHUANG Shao-yan1, SU Xin-ming2, CHEN Wen-liang1
1.Department of Information, The 180thHospital of PLA, Quanzhou Fujian 362000, China; 2. Department of Information, The 91stHospital of PLA, Jiaozuo Henan 454150, China
In view of the shortcomings of conventional management for the HIS (Hospital Information System) database, the methodology for Oracle database management was deployed so as to make the data, indexes and LOBs (Binary Large Object) segregated and constantly stored in respective fi les. This practice has contributed to hierarchical storage management of the database in a more secure and intuitive way and made the dataparallelly accesse data faster speed.
hospital information system; Oracle data; data indexes; binary large objects
TP333
A
10.3969/j.issn.1674-1633.2015.03.024
1674-1633(2015)03-0081-02
2014-09-17
作者邮箱:3817118@qq.com