新华社全媒体新闻传送系统中的数据组合备份技术研究
张霖 乔爱军
(新华社技术局)
摘要:在媒体数字化、网络化建设的热潮中,依托新技术新架构的应用层出不穷,对数据备份的要求也越来越高。新华社全媒体新闻传送系统基于流行的SSH2+AJAX架构,是为了实现重要稿件的交互共享和即时传递而设计开发的。由于系统的重要性,其数据的安全显得格外重要,需要制定有效的方案防止各种原因造成的数据库数据丢失和破坏,保证数据的安全和系统的连续平稳运行。本文研究比较了多种数据库备份方案,最后针对系统特点,创新提出了使用同步+差异备份的组合备份方案,既能保证系统的高可用性及单机失效快速切换,又能防止误操作等造成的数据破坏,经实际运行有较好实用效果。
关键词:全媒体新闻传送系统 MySQL 主从同步 差异备份
1 引言 媒体数字化、网络化建设进入高速发展时期,为了提高发稿时效,加强重点稿件的传送保障能力,设计实现了基于SSH2架构的全媒体稿件共享传送系统。 新华社全媒体新闻传送系统主要用于新华社与其他新闻单位间进行文件共享传递,它是为了实现新闻稿件的交互共享及重要稿件即时传递而设计开发的。由于该系统所传输数据的重要性,保障其安全成了重中之重,在建设过程中需要制定有效的方案防止各种原因造成的数据库的数据丢失和破坏,保证数据的安全和系统的平稳运行。这需要建立一套可靠的数据库备份机制。 传送系统使用了MySQL数据库。近年来,MySQL数据库以其安全易用、可移植性、开源性、健壮性、快速性等特点,越来越经常地被用作web应用的后台数据库。在媒体应用网络化、数字化的条件下,结合新建系统研究MySQL的备份策略和实现方法,有较强的实用意义。 本文研究比较了多种数据库备份策略的优缺点和适用场景,结合实际探讨了全媒体新闻传送系统的特点,设计了同步+差异备份的组合备份方案,既能保证系统的高可用性及单机失效快速切换,又能防止误操作等造成的数据破坏。方案经实际运行检验有着很好的实用效果。 2 数据库备份策略 备份是存储保护数据的主要方法,备份主要是将目标数据复制到在线或者近线存储上,在目标数据出现问题时能够快速恢复。[1] 一般来说,备份方式有完全备份、增量备份、逻辑备份、物理备份等,MySQL还提供了在线备份和脱机备份、本地备份和远程备份、快照备份(Snapshot backups)等方式。 2.1 完全备份 完全备份是每次都对数据库服务器上的所有文件内容进行复制,不管自上次备份后这些文件是否被修改过。当数据丢失或被破坏时,只要简单地用相应时间点的全备份数据进行恢复即可。这种备份方式在系统本身数据量很大时,会占用大量的磁盘空间且备份用时会很长。完全备份一般适合数据量不大且备份不必很频繁的系统。 全备份如图1所示,每天都将数据全部复制。
1.1 差异备份 差异备份是在一个周期内以全备份为基础,在周期初进行一次全备份后,每次都备份比起全备份时变化的内容。这种备份方式的数据量比全备份小很多,需要恢复到某时间点时可选取从该时间点之前最近一次的完全备份开始恢复。可以较快地恢复到某个时间点。 以五天为一周期的差异备份如图2所示。
1.1 增量备份 增量备份也是在一个周期内以全备份为基础,备份从上次备份之后,数据变化部分的内容。这种备份数据量最小,备份时间短。但数据恢复时比较麻烦,需要叠加最近的全备份和之前所有的增量备份,恢复的时间比较长。而如果哪个增量备份文件出现问题,都会造成之后所有增量备份文件的失效。 以五天为一周期的增量备份如图3所示。
1.1 逻辑备份[2] 逻辑备份可保存逻辑数据库结构及其存储的数据。MySQL 逻辑备份粒度可支持从服务器级、数据库级到表级的备份。以逻辑格式存储的备份具有机器独立性和高可移植性。
1.2 物理备份[3] 物理备份是由一些数据库目录和文件所组成的副本。通常是 MySQL data 目录下的一部分或全部文件副本。采用物理备份方式进行备份的速度比采用逻辑备份方式进行备份的速度快,产生的备份文件小,备份和恢复粒度可支持从整个数据目录级别到单个文件级别。
1.3 其他备份 有些数据库还提供了在线备份(热备份)和脱机备份(冷备份)、本地备份和远程备份、快照备份等备份方式。 系统选用的MySQL 数据库提供了诸多备份方式,为制定系统的数据库备份策略奠定了基础。
2 MySQL数据库常用备份方法及其在系统中的应用 2.1 MySQL的备份方法和同步功能 MySQL提供了多种备份方式,其中常用的有Mysqldump备份、直接拷贝备份、实用工具备份与恢复、逻辑卷管理器(LVM)快照备份等。另外还提供了Replication功能,可实现两个MySQL数据库的数据同步。
2.1.1 Mysqldump备份 采用命令mysqldump 可将数据库导出至文件中。文件将包括表的create语句以及数据的insert语句,这些语句可以用作重建数据库。 使用这种方法的优点是灵活、方便,可使用备选参数来实现不同需求,不需要其他辅助软件;但缺点是速度慢、需很大的存储空间存储导出文件。
2.1.2 直接拷贝备份 直接拷贝数据库表文件。常见方法是使用 tar、cp、cpio等命令拷贝文件。 这种方法需要保证复制时表不在被使用。一般需要停止服务器,执行完备份后再重启服务器。或者保证没有数据更新的情况下执行表检查同时锁定服务器,然后再进行复制操作。 这种方法比使用mysqldump速度快,但由于需要离线操作,不适用于实时系统。
2.1.3 使用工具备份与恢复 由于近几年的大量使用,出现了许多MySQL客户端管理工具,可以提供方便的备份数据库的功能。 例如InnoDB Hot Backup,是备份InnoDB引擎的商业产品,在备份时保持数据库的查询和更新,无需离线或显示锁定表。 这些工具使用方便,可在线备份,速度比较快,成为许多备份策略的首选。
2.1.4 逻辑卷管理器(LVM)快照备份 逻辑卷管理(LVM)可以给逻辑卷生成快照,在一致的状态下得到此分区的备份。目前备份恢复效率最高的方式就是快照方式对系统数据进行备份,但这种方式对空间要求比较高,因为LVM文件系统快照备份的前提是系统中有不小于当前数据库文件所在卷的空闲磁盘空间。
2.1.5 同步(Replication)功能 Replication是MySQL提供的一种同步功能,能够实现两个MySQL数据库的数据同步。经分析,我们认为这个功能可以用来进行实时备份。这种方式下,系统需要一主一从两台服务器,主从服务器保持同步更新,主服务器出现问题,则立马将从服务器设定为主服务器,实现系统的连续运行。但是这种方式操作的数据量巨大,要保证主从服务器之间有足够的网络资源。
2.2 全媒体新闻传送系统的备份策略及实现
2.2.1 全媒体新闻传送系统业务特点 (1)安全性 全媒体新闻传送系统主要用于传输和存储重要稿件,用户和稿件的重要性决定了系统必须非常注重使用体验和数据的安全。 (2)专网使用,有效保证网络资源 全媒体新闻传送系统采用专网专用的方式,传输速率能得到有效保障,另外同时并发的用户和上传数据量不会太大。 (3)无离线时间 重点稿件随来随传,无固定离线时间,必须采用相应策略,保证系统的7*24小时连续平稳运行和数据的万无一失。
2.2.2 备份策略设计 经过对系统特点的分析,设计采用同步+差异备份的备份策略。首先搭建从服务器,实现双机数据实时同步备份,其次定期进行差异备份操作,以备误操作或者双机同时出问题的极端情况下数据库的及时恢复。 搭建从服务器系统,让从服务器有同主服务器一样的配置,在从服务器上完成数据的备份和同步。在主从服务器上采用了数据库、文件系统两种数据同步技术,当主服务器出现故障时,升级从服务器为主服务器,保证系统的高可用性及单机失效切换。 应用MySQL的同步功能的同时,对整个数据库进行周期差异备份操作,用来防止误操作以及在双机数据库都宕机的极端情况恢复数据库,起到双保险的作用。一旦出现问题,可以做到在最快的时间内恢复系统运行,保证重要稿件的及时传送。完全备份使用MySQL客户端管理工具进行。 主从服务器的网络拓扑图如图4。 1.1.1 主从同步的实现 MySQL主从同步的原理是:主服务器将数据库做的新增操作记录到一个二进制更新日志中去,从服务器定时读取主服务器的二进制更新文件来更新自身的库,从而实现主从同步的功能。 二进制更新文件(binary log),当配置启用时,mysqld会将所有有关更新的操作命令记录到指定Log中,而之后的二进制更新日志将代替现有的更新日志,这种文件格式比传统的更新日志文件更高效,有更多的功能。 在配置同步之前,要将主机的现有数据库迁移到备机。主从机的数据库版本最好相同或者备机版本高于主机。 对于主从同步的具体实现总结如下: 1. 在主机的数据库中建立一个备份帐户,被赋予相应权限(SLAVE,RELOAD,SUPER )。 2. 在北极Slave上做连接测试,可登录则账户分配成功。 3. 在主服务器的配置进行修改,打开my.ini文件,在[mysqld]下面添加: [mysqld] server-id=1 #为主服务器A的ID值 log-bin=mysql-log #二进制更新日值 log-error="D:/mysql/error.log" log="D:/mysql/mysql.log" long_query_time=1 4. 重启A服务器,从现在起,客户对有关数据库的修改将被记载到二进制变更日志中去。 5. 对从服务器的配置进行修改,在[mysqld]下面添加如下内容: [mysqld] server-id=2 replicate-do-db=test #需要同步的数据库 read-only=1 binlog-ignore-db=mysq l #不需要同步的数据库,忽略掉 6. 重启从数据库。 7. 配置从库的相应参数master_host、master_port、master_user、master_password、master-connect-retry、master_log_file、master_log_pos之后重启slave。 8. 查看slave的状态,若Slave_IO_Running: Yes以及Slave_SQL_Running: Yes,则同步成功。 2 总结 在媒体数字化、网络化建设的高速发展时期,随着信息量的增长,如何保障数据库的安全成为大家关注的焦点。系统崩溃、人为错误、电源故障、硬件问题等都可能造成数据的破坏。对于重点系统重要数据,根据系统特性研究制定可靠的数据备份策略十分必要。本文研究比较了多种数据库备份方案,然后针对全媒体新闻传送系统的特点,设计了使用同步+差异备份的组合备份方案,既能保证系统的高可用性及单机失效快速切换,又能防止误操作等造成的数据破坏,经实际运行有较好实用效果,有效保证了重要系统的平稳运行。
参考文献: 1. 王纪奎.《成就存储专家之路》.清华大学出版社. 2. 任晓霞,李笑雄.《校园网信息系统的数据库备份和恢复机制》.《中国教育信息化》,2010年;09期:15-17页. 3. Mysql 参考手册. 4. Paul DuBois.MySQL网络数据库指南.田晓涛,等译. 北京:机械工业出版社,2000.
评论 点击评论