基于MySQL的SDCORS数据库自动压缩备份机制
2016-12-21杜珺刘新郭金运姜英明
杜珺,刘新,郭金运,姜英明
(山东科技大学 测绘科学与工程学院,青岛 266590)
基于MySQL的SDCORS数据库自动压缩备份机制
杜珺,刘新,郭金运,姜英明
(山东科技大学 测绘科学与工程学院,青岛 266590)
通过编写MySQL批处理压缩备份脚本,设置Windows自动定时服务,利用MySQL导入导出工具mysqldump.exe实现SDCORS数据库的自动定时压缩备份功能,采用不同的压缩级别对133个SDCORS基准站10天的观测数据和解算数据进行压缩备份测试,通过比较选择出最优备份压缩级别。
MySQL;SDCORS;数据库;压缩;自动;备份
0 引 言
随着计算机网络信息化的迅速发展,各种大中小型企业都构建了企业的信息化系统,这必然会涉及到数据存储[1]。MySQL数据库凭借其体积小、速度快、总体拥有成本低等突出的优点迅速的占有中小型企业的信息化市场[2]。山东省卫星定位连续运行综合应用服务系统(SDCORS)由山东省国土资源厅和山东省气象局合作建设,系统整合了全省的已建CORS站点,构成了全省统一的高精度、高时空分辨率、高覆盖率、实时快速的卫星定位连续运行综合服务网[3]。SDCORS的数据具有种类多,容量大,保密性程度高等特点[4]。基于此,采用MySQL关系型数据库对SDCORS数据进行存储与管理是比较可行的。但是任何数据库在使用过程中都不可避免的存在一定的安全隐患,而对数据库进行定期备份是预防和尽可能降低数据损失的最有效方法,所以,对数据库进行备份,以备在出现意外时及时进行恢复是非常必要的[5]。对于SDCORS数据库而言,要实现数据解算的自动化,减少人工工作量,同时要做好数据使用时的防护工作,提高时间和空间的综合利用率,更需要建立一套完整的数据库自动压缩备份与恢复机制。
目前国内外针对海量数据库系统备份较为成熟的技术包括数据库本身提供的备份机制,应用级备份,以及基于硬件的备份方式[6]。本文主要介绍通过MySQL数据库本身提供的备份机制进行备份时脚本的编写。论文主要从SDCORS数据库介绍、MySQL数据库自动备份策略、SDCORS数据库备份验证、MySQL数据库恢复策略等4个方面进行阐述。
1 SDCORS数据库
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 MySQL自动备份策略
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数据库的定时自动备份。
3 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.
4 MySQL恢复策略
对数据库进行备份就是为了避免在突发状况时导致重要数据的损坏与丢失。因此在备份成功后提供一套完整可行的数据库恢复策略也是至关重要的。通过数据库恢复,可以将备份好的数据库文件恢复到损坏或丢失之前的状态。MySQL数据库恢复与备份一样,采用编写脚本的方式执行,使用mysql工具对数据进行恢复,MySQL恢复的脚本如下:
mysql.exe-h"%dbhost%"-u"%dbuser%"-p"%dbpwd%" "%database%"<"% backupPath %\%backupName%.sql".
5 结束语
对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