杜珺,劉新,郭金運,姜英明
(山東科技大學 測繪科學與工程學院,青島 266590)
?
基于MySQL的SDCORS數據庫自動壓縮備份機制
杜珺,劉新,郭金運,姜英明
(山東科技大學 測繪科學與工程學院,青島 266590)
通過編寫MySQL批處理壓縮備份腳本,設置Windows自動定時服務,利用MySQL導入導出工具mysqldump.exe實現SDCORS數據庫的自動定時壓縮備份功能,采用不同的壓縮級別對133個SDCORS基準站10天的觀測數據和解算數據進行壓縮備份測試,通過比較選擇出最優備份壓縮級別。
MySQL;SDCORS;數據庫;壓縮;自動;備份
隨著計算機網絡信息化的迅速發展,各種大中小型企業都構建了企業的信息化系統,這必然會涉及到數據存儲[1]。MySQL數據庫憑借其體積小、速度快、總體擁有成本低等突出的優點迅速的占有中小型企業的信息化市場[2]。山東省衛星定位連續運行綜合應用服務系統(SDCORS)由山東省國土資源廳和山東省氣象局合作建設,系統整合了全省的已建CORS站點,構成了全省統一的高精度、高時空分辨率、高覆蓋率、實時快速的衛星定位連續運行綜合服務網[3]。SDCORS的數據具有種類多,容量大,保密性程度高等特點[4]。基于此,采用MySQL關系型數據庫對SDCORS數據進行存儲與管理是比較可行的。但是任何數據庫在使用過程中都不可避免的存在一定的安全隱患,而對數據庫進行定期備份是預防和盡可能降低數據損失的最有效方法,所以,對數據庫進行備份,以備在出現意外時及時進行恢復是非常必要的[5]。對于SDCORS數據庫而言,要實現數據解算的自動化,減少人工工作量,同時要做好數據使用時的防護工作,提高時間和空間的綜合利用率,更需要建立一套完整的數據庫自動壓縮備份與恢復機制。
目前國內外針對海量數據庫系統備份較為成熟的技術包括數據庫本身提供的備份機制,應用級備份,以及基于硬件的備份方式[6]。本文主要介紹通過MySQL數據庫本身提供的備份機制進行備份時腳本的編寫。論文主要從SDCORS數據庫介紹、MySQL數據庫自動備份策略、SDCORS數據庫備份驗證、MySQL數據庫恢復策略等4個方面進行闡述。
SDCORS數據庫管理信息系統作為SDCORS數據自動化處理及分析系統的一個重要分支,集數據管理、數據預處理、數據解算、數據分析、數據備份與恢復于一體,是其數據處理的基礎[4]。SDCORS目前共有測站150余個,每個測站每天均產生采樣頻率為1 s和30 s的觀測數據,因此數據總量非常大。目前SDCORS數據庫共涉及41個結構化數據表,其中主要的結構數據表包括: 1) 站點信息表,用于記錄SDCORS測站的基本信息; 2) 觀測數據表,用于存放不同測站產生的觀測數據; 3) 準備文件表,用于存放解算所需要的精密星歷數據,精密鐘差數據等; 4) 數據預處理結果表,用于存放經數據預處理后的數據和質量檢核結果數據; 5) 基線解算結果表,用于存放經基線解算后的測站之間基線長度及其結果文件; 6) 網平差結果表,用于存放經網平差處理后的各測站坐標信息及其結果文件; 7) 任務信息表,用于實時存放用戶提交的解算任務并實時更新解算狀態;⑧用戶權限表,用于管理不同用戶所具有的不同權限。
SDCORS解算的一切數據均直接來源于其數據庫,解算得到的一切結果數據也均直接存放于數據庫中,并且CORS系統中的參考站坐標數據等都涉及國家機密,因此SDCORS數據具有數據量大,數據種類多,數據保密程度高等特點[4]。在對SDCORS數據庫管理信息系統進行設計時要充分考慮到各種可能的突發情況帶來的數據損壞、數據丟失等意外情況的發生,因此必須設計一套完整可行的數據庫備份機制。同時考慮到SDCORS的數據特點,可以采用壓縮備份機制,以節約服務器占用內存,提高程序運行效率。
2.1 MySQL備份參數
mysqldump是mysql用于轉存儲數據庫的實用程序。它主要產生一個SQL腳本,通過腳本運行實現數據庫備份。
通過批處理文件中的@ECHO OFF和@ECHO ON命名來設置腳本運行過程中的顯示與否狀態。通常在腳本中需要設置若干個必備與可選的參數,常用的必備參數有:
<1),且各件產品是否為不合格品相互獨立.
dbhost:設置dbhost為主機名或IP地址;dbuser: 設置登陸mysql數據庫的用戶名;dbpwd: 設置登陸mysql的密碼;backupPath: 設置備份文件存放的路徑;backupName:設置備份文件的文件名;database: 設置需要備份的數據庫名稱;mySqlPath:設置MySQL安裝路徑。
常用的可選參數有:
backupFolderPrefix:設置備份文件夾前綴; deleteHistorySkips:設置刪除歷史備份文件,即刪除多少次備份之前的備份文件。如0表示不刪除歷史備份文件;1表示刪除1次以前的備份文件,2表示刪除2次以前的備份文件,以此類推。onErrorDeleteBackFile:設置備份時發生錯誤是否刪除歷史備份文件,Yes表示刪除;no表示不刪除。enableCompress:設置是否啟用壓縮功能,yes表示開啟壓縮功能。No表示禁用壓縮功能。缺省狀態為禁用壓縮功能。compressType:設置壓縮備份的壓縮類型,cab表示系統內置cab壓縮功能,rar表示啟用RAR壓縮功能,選用RAR壓縮功能需要安裝RAR壓縮軟件支持。compressLevel:設置WinRAR壓縮級別。取值0到5.0表示無壓縮;5表示最高壓縮比;默認值為3.volumePackSize:設置分卷大小。0表示不分卷,1表示1k,1024表示1M,2048表示2M,默認值:102400,表示100M; rarPath:設置WinRAR安裝路徑; rarPwd:設置壓縮密碼,{empty}表示沒有密碼,其他字符表示壓縮文件密碼。
2.2 MySQL備份腳本
2.2.1 創建MySQL備份腳本
使用mysqldump運行備份腳本,腳本編寫方式為:
"%mySqlPath%mysqldump"--single-transactio "%database%"-h"%dbhost%"-u"%dbuser%"-p"%dbpwd%"> "% backupPath %\%backupName%.sql"
2.2.2 創建環境檢測腳本
1) 檢測MySQL是否安裝腳本
"%mySqlPath%mysql"--help> NUL
2) 驗證數據庫連接腳本
"%mySqlPath%mysql"-h"%dbhost%"-u"%dbuser%"-p"%dbpwd%"> NUL
3) 檢查壓縮軟件配置腳本
IF %enableCompress%==no IF %enableCompress%==yes
4) 檢查壓縮級別腳本
findstr/be "[0-5]"> NUL
5) 檢查壓縮類型腳本
IF %compressType%==rar IF %compressType%==cab
6) 驗證RAR配置目錄腳本
IF exist "%rarPath%Rar.exe"
2.2.3 創建壓縮處理機制
使用RAR壓縮方式編寫的備份腳本為:
SET rarCommand="%rarPath% ar.exe" a-r -ep1 -o+ -m%compressLevel%
IF NOT %volumePackSize%==0 SET rarCommand=%rarCommand%-v%volumePackSize%
IF NOT %rarPwd%=={empty} SET rarCommand=%rarCommand%-p%rarPwd%
SET rarCommand=%rarCommand% "%backupPath%\%backupName%.rar"
2.3 Windows自動定時服務
啟動MySQL自動備份的最后一步是添加Windows自動定時服務,通過Windows系統工具中的任務計劃程序設置備份腳本的執行周期和時間,實現SDCORS數據庫的定時自動備份。
對數據庫進行備份時,備份耗時會根據服務器配置的不同而有所差異,SDCORS數據庫備份測試服務器采用Windows Server 2008 R2的64位操作系統,Intel處理器,系統C盤總容量為86G. 測試總數據為133個SDCORS基準站10天的全部觀測數據和解算數據,數據共28GB.根據SDCORS數據庫測試服務器的配置,將MySQL備份腳本中的所需參數進行設置,設置完成后分別對SDCORS數據庫進行了壓縮程度為0、1、2、3、4、5的5次壓縮備份測試,對5次壓縮備份的備份耗時和備份文件大小進行了統計,統計結果如表1所示,性能對比圖如圖1所示。

表1 不同壓縮等級性能對比表

圖1 不同壓縮等級性能對比
由圖中可以看出,壓縮等級越高,備份文件越小,備份所耗費的時間越多。當壓縮等級達到第2級后,備份文件大小變化并沒有隨著壓縮等級的增加有顯著的減小。因此,綜合考慮備份耗時和文件大小,在SDCORS壓縮備份策略中將壓縮級別默認設置為2.
對數據庫進行備份就是為了避免在突發狀況時導致重要數據的損壞與丟失。因此在備份成功后提供一套完整可行的數據庫恢復策略也是至關重要的。通過數據庫恢復,可以將備份好的數據庫文件恢復到損壞或丟失之前的狀態。MySQL數據庫恢復與備份一樣,采用編寫腳本的方式執行,使用mysql工具對數據進行恢復,MySQL恢復的腳本如下:
mysql.exe-h"%dbhost%"-u"%dbuser%"-p"%dbpwd%" "%database%"<"% backupPath %\%backupName%.sql".
對SDCORS數據庫進行定時備份是保護數據的重要手段,具有數據庫備份與恢復功能的系統才能是一個完整的數據庫管理信息系統。 數據備份時不同的參數設置會達到不同的備份效果。SDCORS數據庫備份方式的特點是實現了壓縮備份和自動備份,通過壓縮備份將服務器的空間利用率得以提高,同時方便SDCORS數據的遷移,通過自動備份減少了繁瑣的人工操作,同時,各個備份參數獨立設置,便于備份腳本的修改,使得整個系統在空間利用率和時間利用率都得到提高。
[1] 許雪晶.MySQL自動定時備份方式的實現[J].宜春學院學報,2014,36(3):51-53.
[2] 趙志學.MySQL數據庫備份與恢復[J].電腦學習,2009(6):32-34.
[3] 姜英明,郭金運.利用SDCORS數據建立山東區域動態坐標參考框架[J].北京測繪,2015(5):31-34.
[4] 杜珺,劉新.區域CORS數據庫管理信息系統的設計與實現[J].全球定位系統,2015,40(5):102-106.
[5] 田娟.淺談MYSQL數據庫的備份與恢復[J].電腦知識與技術,2012,8(17):46-47.
[6] 何平.海量數據庫系統高性能備份的研究與實現[D]. 長沙:國防科學技術大學,2005.
Automatic Compression and Backup Mechanism of SDCORS Database Based on MySQL
DU Jun, LIU Xin, GUO Jinyun, JIANG Yingming
(GeomaticsCollege,ShandongUniversityofScienceandTechnology,Qingdao266590,China)
By writing MySQL batch compress backup script, using import and export tools mysqldump.exe, setting the Windows automatic timing service, this paper makes SDCORS database automatic timing compress backup realized. This paper uses 133 SDCORS station observe data and calculate result data of 10 days for different compression levels tests. Finally, by comparing the efficiency of different tests, we chose the optimal level of backup compression.
MySQL; SDCORS; database; compress; automatic; backup
10.13442/j.gnss.1008-9268.2016.05.026
2016-03-30
國家自然科學基金(批準號:41374009); 山東省自然科學基金(批準號:ZR2013DM009)
P228.4
A
1008-9268(2016)05-0127-04
杜珺 (1990-),女,山西忻州人,碩士生,主要從事地理信息系統的應用與開發。
劉新 (1969-),女,山東肥城人,博士后,副教授,主要從事空間信息處理等工作。
郭金運 (1969-),男,博士,教授,博導,主要從事空間大地測量、海洋大地測量和物理大地測量等研究。
姜英明 (1991-),男,山東泰安人,碩士生,主要從事空間大地測量研究。
聯系人: 杜珺 E-mail: dujun_sx1990@163.com