MySQL数据库双机热备份实施方案

2015-06-10 13:23李春玲
卷宗 2015年5期

李春玲

摘 要:本文介绍了采用MySQL数据库自带的Replication功能完成双机热备份的方案,测试结果显示该方案数据同步效率较高,可以为系统运行提供较高的一致性和可靠性。

关键词:MySQL;Replication;双机热备份

1 前言

MySQL数据库以其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,通常被中小型企业所青睐。但随着市场竞争的日趋激烈,各大公司推行成本战略,对一些业务数据量较小的项目也开始使用MySQL数据库,从提高系统运行可靠性的角度考虑,部署MySQL数据库双机是必要的。

2 Replication功能介绍

Replication是一个异步的复制,从一个MySQL Instance(称之为Master)复制到另一个MySQL Instance(称之Slave)。基于该功能,可以实现MySQL数据库的双机热备份。

Replication实现整个复制过程实际上就是Slave从Master端获取该日志,然后再在自己身上完全顺序的执行日志中所记录的各种操作。要实施复制,首先必须打开Master端的binary log(bin-log)功能。

3 双机热备实施

本文的安装及测试过程使用Microsoft Virtual PC创建了两台虚拟机,分别安装及配置软件环境如表1:

MySQL双机热备安装配置步骤如下:

1、在主、备机上安装操作系统Windows Server 2003 Enterprise Edition(SP2),然后安装MySQL 5.1,并创建测试数据库testdb,确保数据库能够正常访问。

2、停止主、备机的MySQL数据库,把主机的data目录拷贝到备机data目录覆盖,实现第一次冷备。

(1)打开主机MySQL配置文件my.ini,在[mysqld]配置项中加入下面配置:

server-id=1

log-bin=“C:\MySQL\log\MySQL”

binlog-do-db=testdb

(2)启动数据库,通过show master status检查主机状态。

(3)再打开主机MySQL配置文件my.ini,在[mysqld]配置项中加入下面配置:

server-id=2

master-host=192.168.1.100

master-user=root

master-password=password

master-port=3306

master-connect-retry=60

replicate-do-db=testdb

(4)启动数据库,通过show slave status检查备机状态。

3、拷贝备机的my.ini至主机,并修改名称为my.ini.slave;拷贝主机的my.ini至备机,并修改名称为my.ini.master。

4、编写以下内容并保存为Switch to Master.bat和Switch to Slave.bat。

Switch to Master.bat:

net stop MySQL

rename C:\MySQL\MySQL Server 5.1\my.ini my.ini.slave

rename C:\MySQL\MySQL Server 5.1\my.ini.master my.ini

del C:\MySQL\MySQL Server 5.1\master.info

netsh interface ip set address name="本地连接" source=static addr=192.168.1.101 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1

net start MySQL

Switch to Slave.bat:

net stop MySQL

rename C:\MySQL\MySQL Server 5.1\my.ini my.ini.master

rename C:\MySQL\MySQL Server 5.1\my.ini.slave my.ini

del C:\MySQL\MySQL Server 5.1\master.info

netsh interface ip set address name="本地连接" source=static addr=192.168.1.100 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1

net start MySQL

然后拷贝Switch to Master.bat和Switch to Slave.bat两个文件至备、主机,并创建快捷方式至桌面,方便发生意外时快速切换主备机。

至此,完成双机系统安装配置。

4 双机热备测试

1、数据同步测试

(1) 在Master的testdb中创建表testtable,然后在Slave上查询数据库,表已同步创建;

(2) 在Master的testtable插入数据,然后在Slave上查询表testtable,数据已同步插入;

(3) 删除Master的testtable数据,然后在Slave上查询表testtable,数据已同步删除;

(4) 删除Master的表testtable,然后在Slave上查询数据库,表已同步删除。

2.主备切换测试

(1)分别在备、主机上执行Switch to Master.bat和Switch to Slave.bat,然后用show master status和show slave status查看状态;

(2)重复步骤1中的数据同步测试;

在测试中发现该方案数据同步效率是比较高的,基本上异步同步时延保持在秒级,还是可以提供较高的一致性和可靠性。

5 总结

通过MySQL自带的Replication功能实施MySQL数据库的双机热备方案简单、可行,而且数据同步效率较高,可以为系统运行提供较高的一致性和可靠性。