Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21863
  • 博文数量: 4
  • 博客积分: 96
  • 博客等级: 民兵
  • 技术积分: 127
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-27 20:11
文章分类
文章存档

2013年(2)

2012年(2)

我的朋友

分类: Mysql/postgreSQL

2012-12-28 11:48:24

mysql实现两台服务器双向备份(window系统)

假设有两台服务器ABIP地址如下:

192.168.10.122A

192.168.10.123B

先保证这mysql的版本是一致的

 

1.在两台mysql上创建用户,设置权限,我这里用的是root用户

A上添加:

以下是代码片段:
grant all privileges on *.* to root@'
192.168.10.123' identified by 'root' with grant option;//用于B访问

B上:

以下是代码片段:
grant all privileges on *.* to root@'
192.168.10.122' identified by 'root' with grant option;//用于A访问

2.1修改A上的配置文件my.ini,加入以下代码:

server-id=1;

log-bin=mysql-bin;

binlog-do-db=mysql; #表示要备份的数据库

replicate-do-db=mysql  #表示要同步的数据库

replay-log=mysql-relay-bin;

 

注意:以下这些建议在mysql控制台用命令输入,因为直接在配置文件里面加入以下内容,可能导致mysql无法启动,至于是不是不识别的原因就不知道了
master-host     = 192.168.10.123

master-user     = root

master-password = root

MASTER_LOG_POS  =  0

mysql控制台:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.123',

    -> MASTER_USER='root',

    -> MASTER_PASSWORD='root',

-> MASTER_LOG_POS=0;

运行SHOW MASTER STATUS,输出如下:

2.2修改B上的配置文件my.ini,加入以下代码:

server-id=2;

log-bin=mysql-bin;

binlog-do-db=mysql;

replay-log=mysql-relay-bin;

replicate-do-db=mysql



mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.122',

    -> MASTER_USER='root',

    -> MASTER_PASSWORD='root',

-> MASTER_LOG_POS=0;

运行SHOW SLAVE STATUS\G

             Slave_IO_State: Waiting for master to send event

                Master_Host: 192.168.10.122

                Master_User: root

                Master_Port: 3306

              Connect_Retry: 60

            Master_Log_File: mysql-bin.000001

        Read_Master_Log_Pos: 164

             Relay_Log_File: mysql-relay-bin.000001

              Relay_Log_Pos: 164

      Relay_Master_Log_File: mysql-bin.000001

           Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

                             ...omitted...

Seconds_Behind_Master: 0

 

                  3.   双向同步测试

Ø    检查当在两台机器的任何一台mysql中修改数据时,另外的那台的数据是否也修改

Ø       关闭其中一台mysql的服务后,更新另一台mysql的数据,再启动已停止的那台mysql服务器,查看数据是否修改

Ø       4.   特别注意事项:

Ø       请在任何时候都不要非法关机,否则将会造成同步数据的错乱。

       如果因为非法关机或其他原因导致数据已经完全错乱,请先在两台机器上停止slave服务,然后将数据正常的服务器上的数据导入到不正常的服务器上,保证两边的服务器数据一致。然后到数据正常的服务器的mysql控制台下输入:

Show master status;

获取其状态后,根据这个状态到数据不正常服务器上,通过命令

CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx;

修改其参数后,再重新启动mysql,查看其状态

同步一旦配置好后,请不要修改服务器机器名

 

 

阅读(1458) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:HTTP 错误500.19 -Internal Server Error 错误代码

给主人留下些什么吧!~~