好的白癜风专家 http://www.yimingjj.com/m/1.主从复制简介
主从复制(sourc-rplication)是将一台MySQL实例(sourc),发生的DML、DDL等修改操作记录到binlog中,源源不断传输到一个或多个副本库,副本库应用日志,达到一个和主库数据接近一致的状态。
复制是默认异步的从库不需要永久连接以接收来自主库的更新。
根据配置,可以复制数据库中的所有数据库,也可以选择某个数据库甚至某个库下的某张表。
MySQL中复制的优点包括:
横向扩展解决方案-在多个从库之间分配负载以提高性能。在此环境中,所有写入和更新都必须在主服务器上进行。但是,读取可以在一个或多个从设备上进行。该模型可以提高写入性能(因为主设备专用于更新),同时显着提高了越来越多的从设备的读取速度。
数据安全性-因为数据被复制到从站,并且从站可以暂停复制过程,所以可以在从站上运行备份服务而不会破坏相应的主数据。
分析-可以在主服务器上创建实时数据,而信息分析可以在从服务器上进行,而不会影响主服务器的性能。
远程数据分发-您可以使用复制为远程站点创建数据的本地副本,而无需永久访问主服务器。
.主从复制的前提
需要两台或两台以上的数据库实例
主库必须开启二进制日志
主库必须有复制用户
主库的srvr_id和从库不同
3.应用场景
迁移、备份。
高可用。
读写分离
分布式架构
4.主从复制原理
从库执行changmastrto,所有信息被保存到mastr_info;
从库执行startslav,启动IO和SQL线程;
从库IO线程工作,获取mastr_info信息,生成指针(MI)。
从库IO线程连接主库。
主库连接层接收请求,验证用户、权限,连接成功后,连接层生成BinlogDump线程。
IO线程和binlog_dump交互,验证srvr_id、srvr_uuid、clock。从库正式注册到主库中。
IO线程通过最新MI指针提取mastr_info中的位置点信息循环请求dump线程监控的mysql-bin.最新日志,dump线程响应,进行交互二进制事件;---- 第一次主从同步
当主库有新的数据写入TRX,mysql-bin.记录下最新数据变化,通过给dump线程,IO线程获取到最新位置点;----第一次数据写入
binlog_dump线程一直监控着mysql-bin.的位置点状态,有新的日志就返回从库IO线程。
从库IO线程接收主库binlog_dump发送的新的日志,MI指针自动更新,同步到mastr_info中;
IO线程线程最终会将接收到的binlog,写入到rlay-bin.的磁盘上永久存储;
SQL线程获取rlay-log-info信息(上次回放(执行)过的位置点),生成RI指针,whr循环与rlay-bin中继日志中的pos进行对比;
如果有新的中继日志生成,就进行回放,回放完成更新RI指针,并更新到rlay-log.info中保存。
5.主从复制搭建过程
5.1台以上数据库实例
MySQL详细搭建过程