1.MYSQL的主从复制(异步复制)的基本信息
特别提醒:在数据库中进行操作时,事实上大小写都是通用的,但是作为一个专业人士 ,尽量还是使用大写
异步复制(主从复制)master节点不会关心slave节点的状态,只需要写自己的数据即可
能不能完成复制看slave节点的io线程和sql线程是否开启
主从复制的要求:
(1)主库开启binlog日志(设置log-bin参数)
(2)主从server-id不同
(3)从库服务器能连同主库
主从复制的原理:
mysql的主从配置又叫replication,AB复制,基于binlog二进制日志,主数据库必须开启binlog二进制日志才能进行复制
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2)从库生成两个线程,一个i/o线程,一个SQL线程,i/o线程去请求主库的binlog,sql线程进行日志回放来复制
(3) slave将master的binary log events拷贝到它的中继日志(relay log);
(4)slave重做中继日志中的事件,将更改应用到自己的数据上。
mysql的主从复制(异步复制)(基于position)把一个事件拆开来复制,并不是以一个完整的事件为单位来进行复制
一开始两个mysql必须一模一样,否则会报错
master自己做自己的,写在自己的日志里
slave能否同步成功取决于IO线程,和SQL线程回放日志
IO通过联系master拿到master的二进制日志,SQL回放日志
slave节点的数据总比master节点的数据慢
异步复制:在主节点写入日志即返回成功,默认情况下MySQL5.5/5.6/5.7和mariaDB10.0/10.1的复制功能是异步的
异步复制可以实现最佳的性能,主库把binlog日志发送给从库,这一动作就结束了,并不验证从库,会造成主从库数据不一致
2.搭建实验环境
两台7版本的虚拟机+一台7版本的真机
主机信息 | 主机的功能 |
---|---|
server1(172.25.12.1) | 数据库的master节点 |
server2(172.25.12.2) | 数据库的slave节点 |
真机(172.25.12.250) | 测试 |
到这里,实验环境已经搭建好,接下来进行基于position的数据库异步复制
以上就是为了保证一个纯净的实验环境
3.基于position的主从复制
异步复制:顾名思义就是两个数据库不是同步的,创建数据的时候肯定有前有后,并不是两个同时创建起数据
先创建数据的数据库叫做master节点,后面复制master节