杜珺,劉新,郭金運,姜英明
(山東科技大學 測繪科學與工程學院,青島 266590)
?
基于MySQL的SDCORS數(shù)據(jù)庫自動壓縮備份機制
杜珺,劉新,郭金運,姜英明
(山東科技大學 測繪科學與工程學院,青島 266590)
通過編寫MySQL批處理壓縮備份腳本,設(shè)置Windows自動定時服務(wù),利用MySQL導入導出工具mysqldump.exe實現(xiàn)SDCORS數(shù)據(jù)庫的自動定時壓縮備份功能,采用不同的壓縮級別對133個SDCORS基準站10天的觀測數(shù)據(jù)和解算數(shù)據(jù)進行壓縮備份測試,通過比較選擇出最優(yōu)備份壓縮級別。
MySQL;SDCORS;數(shù)據(jù)庫;壓縮;自動;備份
隨著計算機網(wǎng)絡(luò)信息化的迅速發(fā)展,各種大中小型企業(yè)都構(gòu)建了企業(yè)的信息化系統(tǒng),這必然會涉及到數(shù)據(jù)存儲[1]。MySQL數(shù)據(jù)庫憑借其體積小、速度快、總體擁有成本低等突出的優(yōu)點迅速的占有中小型企業(yè)的信息化市場[2]。山東省衛(wèi)星定位連續(xù)運行綜合應(yīng)用服務(wù)系統(tǒng)(SDCORS)由山東省國土資源廳和山東省氣象局合作建設(shè),系統(tǒng)整合了全省的已建CORS站點,構(gòu)成了全省統(tǒng)一的高精度、高時空分辨率、高覆蓋率、實時快速的衛(wèi)星定位連續(xù)運行綜合服務(wù)網(wǎng)[3]。SDCORS的數(shù)據(jù)具有種類多,容量大,保密性程度高等特點[4]。基于此,采用MySQL關(guān)系型數(shù)據(jù)庫對SDCORS數(shù)據(jù)進行存儲與管理是比較可行的。但是任何數(shù)據(jù)庫在使用過程中都不可避免的存在一定的安全隱患,而對數(shù)據(jù)庫進行定期備份是預(yù)防和盡可能降低數(shù)據(jù)損失的最有效方法,所以,對數(shù)據(jù)庫進行備份,以備在出現(xiàn)意外時及時進行恢復是非常必要的[5]。對于SDCORS數(shù)據(jù)庫而言,要實現(xiàn)數(shù)據(jù)解算的自動化,減少人工工作量,同時要做好數(shù)據(jù)使用時的防護工作,提高時間和空間的綜合利用率,更需要建立一套完整的數(shù)據(jù)庫自動壓縮備份與恢復機制。
目前國內(nèi)外針對海量數(shù)據(jù)庫系統(tǒng)備份較為成熟的技術(shù)包括數(shù)據(jù)庫本身提供的備份機制,應(yīng)用級備份,以及基于硬件的備份方式[6]。本文主要介紹通過MySQL數(shù)據(jù)庫本身提供的備份機制進行備份時腳本的編寫。論文主要從SDCORS數(shù)據(jù)庫介紹、MySQL數(shù)據(jù)庫自動備份策略、SDCORS數(shù)據(jù)庫備份驗證、MySQL數(shù)據(jù)庫恢復策略等4個方面進行闡述。
SDCORS數(shù)據(jù)庫管理信息系統(tǒng)作為SDCORS數(shù)據(jù)自動化處理及分析系統(tǒng)的一個重要分支,集數(shù)據(jù)管理、數(shù)據(jù)預(yù)處理、數(shù)據(jù)解算、數(shù)據(jù)分析、數(shù)據(jù)備份與恢復于一體,是其數(shù)據(jù)處理的基礎(chǔ)[4]。SDCORS目前共有測站150余個,每個測站每天均產(chǎn)生采樣頻率為1 s和30 s的觀測數(shù)據(jù),因此數(shù)據(jù)總量非常大。目前SDCORS數(shù)據(jù)庫共涉及41個結(jié)構(gòu)化數(shù)據(jù)表,其中主要的結(jié)構(gòu)數(shù)據(jù)表包括: 1) 站點信息表,用于記錄SDCORS測站的基本信息; 2) 觀測數(shù)據(jù)表,用于存放不同測站產(chǎn)生的觀測數(shù)據(jù); 3) 準備文件表,用于存放解算所需要的精密星歷數(shù)據(jù),精密鐘差數(shù)據(jù)等; 4) 數(shù)據(jù)預(yù)處理結(jié)果表,用于存放經(jīng)數(shù)據(jù)預(yù)處理后的數(shù)據(jù)和質(zhì)量檢核結(jié)果數(shù)據(jù); 5) 基線解算結(jié)果表,用于存放經(jīng)基線解算后的測站之間基線長度及其結(jié)果文件; 6) 網(wǎng)平差結(jié)果表,用于存放經(jīng)網(wǎng)平差處理后的各測站坐標信息及其結(jié)果文件; 7) 任務(wù)信息表,用于實時存放用戶提交的解算任務(wù)并實時更新解算狀態(tài);⑧用戶權(quán)限表,用于管理不同用戶所具有的不同權(quán)限。
SDCORS解算的一切數(shù)據(jù)均直接來源于其數(shù)據(jù)庫,解算得到的一切結(jié)果數(shù)據(jù)也均直接存放于數(shù)據(jù)庫中,并且CORS系統(tǒng)中的參考站坐標數(shù)據(jù)等都涉及國家機密,因此SDCORS數(shù)據(jù)具有數(shù)據(jù)量大,數(shù)據(jù)種類多,數(shù)據(jù)保密程度高等特點[4]。在對SDCORS數(shù)據(jù)庫管理信息系統(tǒng)進行設(shè)計時要充分考慮到各種可能的突發(fā)情況帶來的數(shù)據(jù)損壞、數(shù)據(jù)丟失等意外情況的發(fā)生,因此必須設(shè)計一套完整可行的數(shù)據(jù)庫備份機制。同時考慮到SDCORS的數(shù)據(jù)特點,可以采用壓縮備份機制,以節(jié)約服務(wù)器占用內(nèi)存,提高程序運行效率。
2.1 MySQL備份參數(shù)
mysqldump是mysql用于轉(zhuǎn)存儲數(shù)據(jù)庫的實用程序。它主要產(chǎn)生一個SQL腳本,通過腳本運行實現(xiàn)數(shù)據(jù)庫備份。
通過批處理文件中的@ECHO OFF和@ECHO ON命名來設(shè)置腳本運行過程中的顯示與否狀態(tài)。通常在腳本中需要設(shè)置若干個必備與可選的參數(shù),常用的必備參數(shù)有:
<1),且各件產(chǎn)品是否為不合格品相互獨立.
dbhost:設(shè)置dbhost為主機名或IP地址;dbuser: 設(shè)置登陸mysql數(shù)據(jù)庫的用戶名;dbpwd: 設(shè)置登陸mysql的密碼;backupPath: 設(shè)置備份文件存放的路徑;backupName:設(shè)置備份文件的文件名;database: 設(shè)置需要備份的數(shù)據(jù)庫名稱;mySqlPath:設(shè)置MySQL安裝路徑。
常用的可選參數(shù)有:
backupFolderPrefix:設(shè)置備份文件夾前綴; deleteHistorySkips:設(shè)置刪除歷史備份文件,即刪除多少次備份之前的備份文件。如0表示不刪除歷史備份文件;1表示刪除1次以前的備份文件,2表示刪除2次以前的備份文件,以此類推。onErrorDeleteBackFile:設(shè)置備份時發(fā)生錯誤是否刪除歷史備份文件,Yes表示刪除;no表示不刪除。enableCompress:設(shè)置是否啟用壓縮功能,yes表示開啟壓縮功能。No表示禁用壓縮功能。缺省狀態(tài)為禁用壓縮功能。compressType:設(shè)置壓縮備份的壓縮類型,cab表示系統(tǒng)內(nèi)置cab壓縮功能,rar表示啟用RAR壓縮功能,選用RAR壓縮功能需要安裝RAR壓縮軟件支持。compressLevel:設(shè)置WinRAR壓縮級別。取值0到5.0表示無壓縮;5表示最高壓縮比;默認值為3.volumePackSize:設(shè)置分卷大小。0表示不分卷,1表示1k,1024表示1M,2048表示2M,默認值:102400,表示100M; rarPath:設(shè)置WinRAR安裝路徑; rarPwd:設(shè)置壓縮密碼,{empty}表示沒有密碼,其他字符表示壓縮文件密碼。
2.2 MySQL備份腳本
2.2.1 創(chuàng)建MySQL備份腳本
使用mysqldump運行備份腳本,腳本編寫方式為:
"%mySqlPath%mysqldump"--single-transactio "%database%"-h"%dbhost%"-u"%dbuser%"-p"%dbpwd%"> "% backupPath %\%backupName%.sql"
2.2.2 創(chuàng)建環(huán)境檢測腳本
1) 檢測MySQL是否安裝腳本
"%mySqlPath%mysql"--help> NUL
2) 驗證數(shù)據(jù)庫連接腳本
"%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 創(chuàng)建壓縮處理機制
使用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自動定時服務(wù)
啟動MySQL自動備份的最后一步是添加Windows自動定時服務(wù),通過Windows系統(tǒng)工具中的任務(wù)計劃程序設(shè)置備份腳本的執(zhí)行周期和時間,實現(xiàn)SDCORS數(shù)據(jù)庫的定時自動備份。
對數(shù)據(jù)庫進行備份時,備份耗時會根據(jù)服務(wù)器配置的不同而有所差異,SDCORS數(shù)據(jù)庫備份測試服務(wù)器采用Windows Server 2008 R2的64位操作系統(tǒng),Intel處理器,系統(tǒng)C盤總?cè)萘繛?6G. 測試總數(shù)據(jù)為133個SDCORS基準站10天的全部觀測數(shù)據(jù)和解算數(shù)據(jù),數(shù)據(jù)共28GB.根據(jù)SDCORS數(shù)據(jù)庫測試服務(wù)器的配置,將MySQL備份腳本中的所需參數(shù)進行設(shè)置,設(shè)置完成后分別對SDCORS數(shù)據(jù)庫進行了壓縮程度為0、1、2、3、4、5的5次壓縮備份測試,對5次壓縮備份的備份耗時和備份文件大小進行了統(tǒng)計,統(tǒng)計結(jié)果如表1所示,性能對比圖如圖1所示。
表1 不同壓縮等級性能對比表
圖1 不同壓縮等級性能對比
由圖中可以看出,壓縮等級越高,備份文件越小,備份所耗費的時間越多。當壓縮等級達到第2級后,備份文件大小變化并沒有隨著壓縮等級的增加有顯著的減小。因此,綜合考慮備份耗時和文件大小,在SDCORS壓縮備份策略中將壓縮級別默認設(shè)置為2.
對數(shù)據(jù)庫進行備份就是為了避免在突發(fā)狀況時導致重要數(shù)據(jù)的損壞與丟失。因此在備份成功后提供一套完整可行的數(shù)據(jù)庫恢復策略也是至關(guān)重要的。通過數(shù)據(jù)庫恢復,可以將備份好的數(shù)據(jù)庫文件恢復到損壞或丟失之前的狀態(tài)。MySQL數(shù)據(jù)庫恢復與備份一樣,采用編寫腳本的方式執(zhí)行,使用mysql工具對數(shù)據(jù)進行恢復,MySQL恢復的腳本如下:
mysql.exe-h"%dbhost%"-u"%dbuser%"-p"%dbpwd%" "%database%"<"% backupPath %\%backupName%.sql".
對SDCORS數(shù)據(jù)庫進行定時備份是保護數(shù)據(jù)的重要手段,具有數(shù)據(jù)庫備份與恢復功能的系統(tǒng)才能是一個完整的數(shù)據(jù)庫管理信息系統(tǒng)。 數(shù)據(jù)備份時不同的參數(shù)設(shè)置會達到不同的備份效果。SDCORS數(shù)據(jù)庫備份方式的特點是實現(xiàn)了壓縮備份和自動備份,通過壓縮備份將服務(wù)器的空間利用率得以提高,同時方便SDCORS數(shù)據(jù)的遷移,通過自動備份減少了繁瑣的人工操作,同時,各個備份參數(shù)獨立設(shè)置,便于備份腳本的修改,使得整個系統(tǒng)在空間利用率和時間利用率都得到提高。
[1] 許雪晶.MySQL自動定時備份方式的實現(xiàn)[J].宜春學院學報,2014,36(3):51-53.
[2] 趙志學.MySQL數(shù)據(jù)庫備份與恢復[J].電腦學習,2009(6):32-34.
[3] 姜英明,郭金運.利用SDCORS數(shù)據(jù)建立山東區(qū)域動態(tài)坐標參考框架[J].北京測繪,2015(5):31-34.
[4] 杜珺,劉新.區(qū)域CORS數(shù)據(jù)庫管理信息系統(tǒng)的設(shè)計與實現(xiàn)[J].全球定位系統(tǒng),2015,40(5):102-106.
[5] 田娟.淺談MYSQL數(shù)據(jù)庫的備份與恢復[J].電腦知識與技術(shù),2012,8(17):46-47.
[6] 何平.海量數(shù)據(jù)庫系統(tǒng)高性能備份的研究與實現(xiàn)[D]. 長沙:國防科學技術(shù)大學,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-),女,山西忻州人,碩士生,主要從事地理信息系統(tǒng)的應(yīng)用與開發(fā)。
劉新 (1969-),女,山東肥城人,博士后,副教授,主要從事空間信息處理等工作。
郭金運 (1969-),男,博士,教授,博導,主要從事空間大地測量、海洋大地測量和物理大地測量等研究。
姜英明 (1991-),男,山東泰安人,碩士生,主要從事空間大地測量研究。
聯(lián)系人: 杜珺 E-mail: dujun_sx1990@163.com