孫建軍
(河北鋼鐵集團承德分公司 運營改善部信息中心,河北 承德 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