码迷,mamicode.com
首页 > 数据库 > 详细

mysql主从复制

时间:2016-05-18 22:11:08      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:process   thread   日志记录   下一步   master   

主从复制有利于 数据库架构的健壮性  提升访问速度   易于维护管理

主从互为备份M  ----  S        一主多从  异步同步

技术分享

技术分享

该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。

下一步就是slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。

SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。

此外,在master中也有一个工作线程:和其它MySQL的连接一样,slave在master中打开一个连接也会使得master开始一个线程。复制过程有一个很重要的限制——复制在slave上是串行化的,也就是说master上的并行更新操作不能在slave上并行操作。


 mysql -uroot -p123456  -S /data/3306/mysql.sock

 mysql> show variables like ‘log_bin%‘;

+---------------------------------+-------+

| Variable_name                   | Value |

+---------------------------------+-------+

| log_bin                         | ON    |

server-id = 不一样

mysql> grant replication  slave  on *.*  to ‘rep‘@‘192.168.10.%‘  identified  by ‘123456‘;

mysql> flush privileges;

mysql> flush  table with read lock;   //读锁

mysql> show master status/logs;

+------------------+-----------+

| Log_name         | File_size |

+------------------+-----------+

| mysql-bin.000005 |       338 |

+------------------+-----------+

mysqldump  -uroot -p123456  -S /data/3306/mysql.sock  -A -B  --events  --master-data=2   > /opt/rep.sql

mysql> unlock  tables;  //解锁 

# mysql -uroot -p123456  -S /data/3307/mysql.sock  < /opt/rep.sql

 

 mysql -uroot -p123456  -S /data/3307/mysql.sock

CHANGE MASTER TO

MASTER_HOST=‘192.168.10.10‘,

MASTER_PORT=3306,

MASTER_USER=‘rep‘,

MASTER_PASSWORD=‘123456‘,

MASTER_LOG_FILE=‘mysql-bin.000005‘,

MASTER_LOG_POS=417;

/data/3307/data/master.info               //生成的文件

mysql> start slave;

mysql> show slave status\G;

      Slave_IO_Running: Yes

      Slave_SQL_Running: Yes

relay-bin.index

/data/3307/relay-bin.000001

/data/3307/relay-bin.000002

relay-log.info                    /中继日志

427

mysql-bin.000005

591

技术分享技术分享


--master-data=1


本文出自 “何全” 博客,请务必保留此出处http://hequan.blog.51cto.com/5701886/1774806

mysql主从复制

标签:process   thread   日志记录   下一步   master   

原文地址:http://hequan.blog.51cto.com/5701886/1774806

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!