孙建军
(河北钢铁集团承德分公司 运营改善部信息中心,河北 承德 067002)
BLOB数据在线导出系统在承钢计量中的应用
孙建军
(河北钢铁集团承德分公司 运营改善部信息中心,河北 承德 067002)
本文主要介绍在河北钢铁集团承德分公司(简称“承钢”)远程计量系统中应用BLOB数据在线导出技术,解决数据量巨增后给系统带来的冲击及数据迁移后的实际应用效果,重点介绍了BLOB数据在线导出系统的构成、运行原理和实际应用,并深入探讨BOLB数据类型在系统中的重要意义。
BOLB数据;在线导出;计量系统
承钢公司推行集中计量,实施计量站点无人值守、远程控制的模式。同时为确保计量数据准确无误,在系统中加入视频监控功能模块进行动态拍照。为适应管理部门监控和检索需要,监控照片存入ORACLE数据库中,存储格式为BLOB数据类型。在系统运行半年后,数据增长过快,往往会出现系统运行缓慢,甚至崩溃的现象。按季度备份因数据库过于庞大、拷贝时间过长,冷备无法实现,而采用热备方式,容易出现系统卡死现象,无法进行计量。通过实施BOLB在线导出,能成功解决数据增长过快、系统运行崩溃的技术难题,同时释放数据库空间,使系统负担大幅度下降,保障系统更加稳定、流畅。
BOLB作为数据库中可以存储二进制文件的字段类型,可存储完整文件,如Word、TXT数据等。它可以让开发者完全不用理会文件的内容,只需知道如何处理即可。BOLB数据格式存在两面性,在方便使用的同时需占用大量存储空间,极易造成数据库性能下降,甚至系统崩溃。BLOB在线导出技术在系统运行的同时,采用后台处理方式实现数据在线导出。数据在线导出是整个导出系统的核心部分,只有完成数据的导出,才能进行数据的空间清理工作。数据在线导出在完成计量数据导出的同时还要保证管理部门对数据管理的需求,保持计量数据的可追查性。BLOB在线导出技术首次使用文件夹为数据载体,动态生成数据关联,以实现数据脱离数据库后能够继续使用。BLOB在线导出系统主要包括数据导出、图片压缩、自动创建文件夹、文档自动创建索引、数据库空间清理5个部分。
2.1数据导出
为不影响系统的正常运行,在线系统采用后台实施循环取数,逐一抓取数据,每次只对一条BLOB数据进行处理的原则,既保证了BOLB数据的高效导出,又不影响现有用户的使用。
2.2图片压缩
计量系统每次计量需采集12路图片信息、2路计量数据信息,每次需要数据库空间20 MB左右,如果按照现有格式导出一季度的数据信息需200 GB的空间容量,对硬盘的冲击非常大。数据信息通过将BMP格式的图片转换为JPG格式,然后再进行图片压缩工作,这样导出后的图片容量只有6 MB,大大降低了对硬盘的需求。
2.3自动创建文件夹
数据导出时,每一次计量任务需要生成一个文件夹,一般采用计量单号的方式命名文件夹,以便生成动态的数据关联,但数百万的计量数据同时存在一个文件夹中会导致系统崩溃,无法打开。笔者通过多次尝试,最后采取了使用程序,按照BLOB创建时间动态生成文件夹,以年、月为节点每日形成一个文件夹。
2.4文档自动创建索引
使用DOS命令,通过dir命令中带有“/b”参数,去掉文件列表中的标题信息和摘要。复制获取到的文件名至Excel A列,得到文件的完整路径,再输入“=HYPERLINK(B1)”,获取对应路径的快捷方式。将文件扩展名改为批处理文件的方式,即“.bat”格式,双击执行该批处理文件,可以动态关联文件夹路径。通过该种方式,实现BLOB数据在脱离数据库后依旧能够在程序中展示的目的,管理者可通过计量单号轻易找到所要查看的BLOB导出数据。
2.5数据库空间清理
在完成数据在线导出后,可以自由选择采用冷备份还是热备份的方式完成数据库的空间清理工作。初次进行时往往采用冷备份方式。
在ORACLE数据库中,执行表的删除操作不会降低该表的高水位线。而全表扫描将始终读取一个段(extent)中所有低于高水位线标记的块。如果在执行删除操作后不降低高水位线标记,则将导致查询语句的性能下降。可以尝试下面2种方法降低高水位线标记:执行表重建指令;在线转移表空间.当创建一个对象表以后,不管有没有插入数据,都会占用一些块,ORACLE也会给其分配必要的空间。同样,释放自由空间后,依然保留部分空间给这个表。ALTER TABLE MOVE后面不跟参数也可以,不跟参数的表仍在原表的空间中,Move后要重建索引。如果以后还要继续向这个表增加数据,没有必要move,只是释放出来的空间只能这个表用,其他的表或者segment无法使用该空间。先执行alter table table_name shrink space,在执行该指令之前必须允许行移动,复制要保留的数据到临时表t中,drop原表,然后rename临时表t为原表。
承钢公司首次实现了BLOB数据在不停机、不降低用户使用效率的情况下以文件夹为数据库,按计量日期、单号自动创建文件夹,自动存入8路图片,自动创建Excel文件关联,且数据仍具有序列,用户可快速检索到所需数据。经过数据的导出,数据库空间由400 G降至40 G,下降至原来的1/10。现在数据库可按照正常计划实现每季度热备,大大提高了数据库的稳定性和安全性。
BOLB在线导出系统于2014年3月调试通过正式投入使用以来,经过长期运行测试达到了预期目的。第一,实现了BLOB数据格式的在线导出,解决了BLOB大类型数据数据的归档、清理难题。彻底解决了不能在线热备问题,数据规模大幅降低,远程计量系统运行效率得到了很大提高。第二,采用文件夹为数据库的载体进行数据检索、按照文件夹名创建文件关联,实现快速定位,确保管理部门正常的监管工作。
10.3969/j.issn.1673 - 0194.2015.12.044
TP311
A
1673-0194(2015)12-0057-01
2015-04-22