mysql的AB复制

MysqlAB复制

 

MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾、备份、恢复、负载均衡等都是有极大帮助的。

 

 

客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平

 

 

实验环境:masterserver6 slaveserver7

Mysql版本:Ver 14.14 Distrib 5.1.71

 

Master 配置:

vim   /etc/my.cnf

[mysqld]下添加一下参数

log-bin=mysql-bin #启动二进制日志系统

binlog-do-db=test #二进制需要同步的数据库名,如果需要同步多个库,例如要再同步westos,再添加一行“binlog-do-db=westos”,以此类推

server-id=1 #必须为 1232–1之间的一个正整数值

binlog-ignore-db=mysql #禁止同步 mysql 数据库

 

/etc/init.d/mysqld start

 

创建同步账户并授权:mysql> GRANT REPLICATION SLAVE ON *.* TOwestos@'172.25.60.7' IDENTIFIED BY 'westos';

 

mysql> show master status;

 

 

 

 

Slave配置:

 

vim    /etc/my.cnf

 

[mysqld]下添加一下参数

server-id=2

#从服务器 ID,不要和主ID 相同,如果设置多个从服务器,每个从服务器必

须有一个唯一的 server-id ,必须与主服务器的以及其它从服务器的不相同。

可以认为 server-id 值类似于 IP 地址:这些ID 值能唯一识别复制服务器群集

中的每个服务器实例。

 

/etc/init.d/mysqld   start

 

mysql> change master to master_host='172.25.60.6', master_user='westos',

master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=530;

#######此处的 master_log_filemaster_log_posmaster中的数值对应

 

mysql> slave start;

mysql> show slave status\G;

若以下两行都为yes,则表示sql线程开启正确,表明数据库正在同步

注:***同步之前必须保证master端与server端的数据一致性***

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

 

 

 

相关文件作用:

1. mysql-bin.index: 服务器一旦开启二进制日志,会产生一个与二日志文件同名,但是以.index结尾的文件。它用于跟踪磁盘上存在哪些二进制日志文件。MySQL用它来定位二进制日志文件。

2. mysqld-relay-bin.index: 该文件的功能与mysql-bin.index 类似,但是它是针对中继日志,而不是二进制日志。

3. master.info :保存 master的相关信息。不要删除它,否则,slave重启后不能连接 master

4. relay-log.info :包含 slave中当前二进制日志和中继日志的信息。

 

 

 

 

 

 

当设置 log_slave_updates ,你可以让slave 扮演其它slave master。此时,slaveSQL线程执行的事件写进行自己的二进制日志(binary log),然后,其它的slave 可以获取这些事件并执行它,从而有效缓解master的压力。如下:

 

 

*****在同步数据之前须保证ABC三台服务器数据完全同步*****

Master:server6 slave1:server7 slave2:server8

Slave1上:

Vim  /etc/my.cnf

server-id=2

log-bin=mysql-bin

binlog-ignore-db=mysql

binlog-do-db=test

log-slave-updates

/etc/init.d/mysqld restart

mysql> GRANT REPLICATION SLAVE ON *.* TO westos@'172.25.60.8' 

IDENTIFIED BY 'westos';

mysql> show master status;

 

 

slave3上:

vim   /etc/my.cnf

Server-id=3

/etc/init.d/mysqld   start

 

mysql> change master to master_host='172.25.60.7', master_user='westos',

master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=258;

mysql> slave start;

mysql> show slave status\G;

查看线程是否开启正确


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值