MySQL 数据库备份的一些想法

2014年07月20日 陈鑫杰

首先,简单介绍下MySQL,它是目前主流的一款免费开源的数据库。因为免费和开源的关系,所以目前很多项目都使用它作为数据源。
在项目的开发过程中,我们会遇到很多数据库备份、拷贝等情况,便于在不同的电脑上建立起开发环境。然而,在生产环境(正式环境,且叫它生产环境吧。)中,我们却很少会遇到数据库备份、拷贝之类的情况,这是因为客户会提供专业的数据库服务器,所以并不需要我们再配置。
现在,我的问题是:如果没有专业的数据库服务器,以及 DBA(数据库管理员),那么当遇到服务器宕机、磁盘损坏等情况,我们该如何保障数据的安全呢?
对此,我拍了下脑袋想出了一下方案:

硬件方面

硬件的重要性就不用多说了,所有数据都是存放在硬件上,所以可靠的品质很重要!
使用2块以上的硬盘,组建磁盘阵列(Redundant Arrays of independent Disks,RAID)。磁盘阵列采用的是数据冗余的原理,将数据切开放在不同的硬盘上,来达到保证数据安全性的效果。同时,也可以实现多块廉价的、容量小的、可靠性高的硬盘组合成一块大的硬盘,以减少费用。
磁盘阵列水很深,在写本文之前。我有幸在 IBM 机架式服务器上实际安装过一次,只不过也就是在安装是选择 raid5 选项而已。在遇到这问题之后,我又 google 探索了下,磁盘阵列有硬件和软件之分。硬件需要专业的磁盘阵列卡,软件就相对简单,只需配置即可(当然,安全性、可靠性硬件要更高些)。
总结:硬盘做了磁盘阵列后,除非所有硬盘同时损坏之外,数据的安全性可以得到相对的保证。

软件方面

一种是常规的定时备份,还有一种是主从复制。
常规备份,也就是需要人手动操作的,排除操作失误等人为因素,基本上是不存在任何困难或问题的。然而,定期备份在实现上就略有难度了,需要通过写系统(Linux)脚本去实现。
为了数据安全性,建议使用外部存储进行备份,例如:移动硬盘等。
主从复制,就是通过修改配置信息,将数据库与另一个数据库进行绑定,当主数据库数据发生改变时,从数据库自动更新数据。这也称为热备份。
同样,为了数据安全性,建议使用另一台服务器热备份。
总结:通过软件的方式,将数据拷贝到其他外部存储器上,可以是移动硬盘,也可以是另一台服务器。这样当主服务器宕机或硬盘损坏时,可以确保数据的安全。

吐槽

最后,考虑到电脑病毒的因素,推荐使用 Ubuntu、CentOS 等 Linux 系统充当服务器操作系统,同时配置防火墙,仅限指定端口可以访问。当然,这样的安全性,只能是相对而言的。例如:数据库服务器即配置了磁盘阵列,也配置了热备份和自动备份,但是如果有人跑进去把所有服务器和外部存储设备都抱走了,那…除了设置一个超级长的密码,给他制造点难度之外,只能祈祷他对你的数据不感兴趣了。

(转载本站文章请注明作者和出处 FoamValue – www.foamvalue.com ——=== 访问 404页面 寻找遗失儿童。 ===——