win配置mysql双机热备_Mysql 数据库双机热备的配置(Windows)

mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。

1. 热备份的条件:

a.mysql的版本都要高于3.2;

b.作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。

2. 设置方法:

a. 范例环境:

(1).操作系统: windows XP professional

(2).MySQL版本: 5.1.45

(3).服务器A的IP: 192.168.1.26服务器B的IP: 192.168.1.15

b.增加一个用户账号(backup)作为同步用户账号.

A: mysql> Grant replication slave on *.* to backup@'192.168.1.15' identified by '1234';

B: mysql> Grant replication slave on *.* to backup@'192.168.1.26' identified by '1234';

注: (1). mysql> Grant 权限  on *.* to 用户账号@'允许访问的IP' identified by '用户密码';

(2). 4.0.2以前的版本, 因为不支持replication slave, 要改为 file,例如下面的语句:

mysql>  Grant file on *.* to backup@'192.168.1.15' identified by '1234';

c.增加一个数据库(news)作为同步数据库.

A & B : create database news;

d.主从模式:A->B.(主要是设置mysql配置文件---my.ini,以下红色部分是直接从A&B服务器的my.ini文件里copy的)A 为 master:

server-id=1

log-bin=backuplog   #设置需要记录log 可以设置log-bin=backuplog 设置日志文件的名称,

#日志文件在mysql数据库文件夹根目录下,mysql将建立不同扩展名,文件名为backuplog的几个日志文件。

binlog-do-db=news   #指定需要日志的数据库

重起数据库服务。

用show master status命令看日志情况

B 为 slave:

server-id=2

master-host=192.168.1.26

master-user=backup      #同步用户帐号

master-password=1234

master-port=3306

master-connect-retry=60 #预设重试间隔60秒

replicate-do-db=news    #告诉slave只做news数据库的更新

#在mysql数据库文件夹根目录下,会自动生成一个master.info的日志文件,

#获取master服务器数据库的更新信息。

重起数据库

用show slave status/G看同步配置情况。

如果显示waiting for master to send event 的话就表示已经启动了,反之就运行mysql>start slave #启动slave

在show slave status/G的命令输出后,应该包含Slave_IO_Running对应的值为YES,Slave_SQL_Running对应的值为YES.只有这样才保证主从机能正常备份。

注:由于设置了slave的配置信息,mysql在数据库目录下生成master.info。

所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。

e.双机互备模式:AB

如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。

A加入设置:

master-host=192.168.1.15

master-user=backup

master-password=1234

replicate-do-db=news

master-connect-retry=10

#在mysql数据库文件夹根目录下,会自动生成一个master.info的日志文件,

#获取master服务器数据库的更新信息。

B加入设置:

binlog-do-db=news #只做news数据库的更新

log-bin=backuplog   #设置需要记录log 可以设置log-bin=backuplog 设置日志文件的名称,

#日志文件在mysql数据库文件夹根目录下,mysql将建立不同扩展名,文件名为backuplog的几个日志文件。

#重起AB机器,则可以实现双向的热备。

注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave start

另外,对数据库数据进行操作时,要选中某个数据库,不能跨数据库操作,否则无法同步数据。

本人就因用MySQL  Query Browser(一个操作MySQL的工具)跨数据库操作,两边数据库一直没能同步更新。后来才在网上找到了这个原因。

===========================================================

* 要清理日志,需按照以下步骤:

1 在每个从属服务器上,使用show slave status来检查它正在读取哪个日志。

2 使用show master logs获得主服务器上的一系列日志。

3 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志

4 制作您将要删除的所有日志的备份。(这个步骤是自选的,但是建议采用。)

5 清理所有的日志,但是不包括目标日志。

# 必须拥有RELOAD权限,此 命令将删除列于索引文件中的所有binlog,把 binlog 索引文件重新设置为空,并创建一个新的 binlog (在以前版本中,被称为FLUSH MASTER)

RESET MASTER;

#清除指定的 binlog

PURGE MASTER LOGS TO 'mysql-bin.010';

# 清除指定日期之前的binlog,BEFORE变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式

PURGE MASTER LOGS BEFORE '2006-06-06 06:06:06';

# 清除3天前的 binlog

PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

本文内容参考网络上的资料以及自己测试和实践中总结的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值