主从复制的原理,以及配置

主从复制的原理
1首先是从服务器的一个IO进程读取从服务器上的master.info中的一个user password port 以及上次读取的位置(position)(就是binlog的一个特性能够查看数据修改的位置)
2然后去主数据库中去查看是否需要更新
3 主库查看二进制文件需要更新,需要更新通过dump thread 将数据发送给从库
4.从库通过IO进程来接收发送过来的二进制日志,存到tcp/IP缓存中,并且返回ACK给我们的一个主库,主库继续工作
5.从库更新master.info数据,(二进制日志更新为新的位置)
6.IO 进程将TCPIP 缓存中的日志信息存放到我们的relay-log.info中去。
7.从库sql进程读取relay-log的获取上次更新的位置,以这个位置为起点继续更新。
8.SQL进程更新完之后,将新的位置给relay-log中去。

binlog 设置为row模式指记录行的变化,不记录表的关联

[mysqld]
binlog_format=row
log-bin=/data/3307/mysql-bin
server-id=3307
port=3307
socket=/data/3307/mysql.sock
[mysqld]
binlog_format=row
log-bin=/data/3308/mysql-bin
server-id=3308
port=3308
socket=/data/3308/mysql.sock
[mysqld]
binlog_format=row
log-bin=/data/3309/mysql-bin
server-id=3309
port=3309
socket=/data/3309/mysql.sock

mysqld_safe --defaults-file=/data/3309/my.cnf
mysql -S /data/3307/mysql.sock
grant replication slave on . to repl @‘10.0.0.%’ identified by ‘centos’;

[root@localhost backup]# mysqldump -A -R --triggers --master-data=2 --single-transaction -S /data/3307/mysql.sock >/tmp/full.sql
[root@localhost backup]# sed -n ‘22p’ /tmp/full.sql
– CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000006’, MASTER_LOG_POS=325;

登录到从库:

help  CHANGE MASTER TO  将信息写道我们的msater info中去了
CHANGE MASTER TO
  MASTER_HOST='10.0.0.52',
  MASTER_USER='repl',
  MASTER_PASSWORD='centos',
  MASTER_PORT=3307,
  MASTER_LOG_FILE='mysql-bin.000006',
  MASTER_LOG_POS=325,
  MASTER_CONNECT_RETRY=10; #重试次数
start slave;
show slave status \G;
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值