mysql双机互备 数据同步_Mysql的实时同步 - 双机互备.

的实时同步-双机互备.

一.方案描述:

Mysql数据库的双机热备方案,主要是配合linux系统的热备方案,因为pluswell热备软件(linux版)没有数据镜像的功能,所以只有用mysql自带的热备功能。

二.Mysql的数据库热备配置方法如下:

1,测试环境:

A机器(双网卡)

系统:Fedora7+mysql5.0.37(系统自带)+SER

主IP地址:192.168.20.201

心跳ip地址:10.1.1.201

B机器(双网卡):

系统:Fedora7+mysql5.0.37(系统自带)+SER

主IP地址:192.168.20.202

心跳ip地址:10.1.1.202

2,设置方法:

第一步:

我们用心跳ip地址,且确定同步的数据库为SER数据库。在这两台机器上创建复制数据帐号。

A机器:

Mysql>grant replication slave on *.* to ‘repl’@10.1.1.202 identified by ’123456’;

B机器:

Mysql>grant replication slave on *.* to ‘repl’@10.1.1.201 identified by ’123456’;

第二步:配置mysql.cnf

A机器

【mysqld】

#Replication master

server-id = 1

log-bin

binlog-do-db=ser

binlog-ignore-db=mysql

# Replication slave

master-host=10.1.1.202

master-user=repl

master-password=123456

master-port=3306

master-connect-retry=60

replicate-do-db=ser

B机器

【mysqld】

#Replication master

server-id = 2

log-bin

binlog-do-db=ser

binlog-ignore-db=mysql

# Replication slave

master-host=10.1.1.201

master-user=repl

master-password=123456

master-port=3306

master-connect-retry=60

replicate-do-db=ser

第三步:最后重新启动两台机器的mysql.

#service mysqld restart

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

附,解释:

1)binlog-do-db=ser表示需要备份的数据库是ser这个数据库,

如果需要备份多个数据库,那么应该写多行,如下所示:

binlog-do-db=backup1

binlog-do-db=backup2

binlog-do-db=backup3

2) server-id=2表示本机器的序号, A,B的server-id不能相同;

3)log-bin表示打开binlog,打开该选项才可以通过I/O写到Slave的relay-log,也是可以进行replication的前提;

其中mysql_binary_log是日志文件的名称,mysql将建立不同扩展名,文件名为mysql_binary_log的几个日志文件.

4) master-host=10.1.1.201表示A做slave时的master为10.1.1.201;

5) master-user=repl这里表示master上开放的一个有权限的用户,使其可以从slave连接到master并进行复制;

6) master-password=123456表示授权用户的密码;

7) master-port=3306 master上MySQL服务Listen3306端口;

8) master-connect-retry=60同步间隔时间;

9) replicate-do-db=ser表示同步ser数据库;

三.查看状态及调试

1,查看master的状态

SHOW MASTER STATUS;

Position不应为0

2,查看slave的状态

show slave status;

Slave_IO_Running | Slave_SQL_Running这两个字段应为YES|YES.

show processlist;

会有两条记录与同步有关state为Has read all relay log; waiting for the slave I/O thread to update it和s Waiting for master to send event .

3,CHANGE MASTER TO

如果A的Slave未启动,Slave_IO_Running为No.

可能会是B的master的信息有变化,

查看B SHOW MASTER STATUS;

记录下File,Position字段.假设为'test202-bin.000001',98 ;

在A下执行:

mysql>Stop Slave;

mysql>CHANGE MASTER TO

mysql>MASTER_LOG_FILE = ' test202-bin.000001',

mysql>MASTER_LOG_POS = 98 ;

mysql>Start Slave;

5,SET GLOBAL SQL_SLAVE_SKIP_COUNTER =n;

如果A的Slave_SQL_Running为No.

Err文件中记录:

Slave: Error 'Duplicate entry '1' for key 1' on query....

可能是master未向slave同步成功,但slave中已经有了记录。造成的冲突.

可以在A上执行

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;

start salve;就可以了。

如果Slave_SQL_Running仍然为No.可以考虑试一下如下步骤:

1,把B机器上的ser数据库中删除上面Err文件中提到的表中的数据。

2,把两台机器上的/var/lib/mysql/文件夹中的master.info,relay-log.info,机器名开头的文件删除。

3,重启mysql。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值