新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前言
创新互联公司,是成都地区的互联网解决方案提供商,用心服务为企业提供网站建设、重庆APP开发、成都微信小程序、系统按需定制和微信代运营服务。经过数十余年的沉淀与积累,沉淀的是技术和服务,让客户少走弯路,踏实做事,诚实做人,用情服务,致力做一个负责任、受尊敬的企业。对客户负责,就是对自己负责,对企业负责。数据库实时备份的需求很常见,MySQL本身提供了 Replication 机制,摘译官方介绍如下:
MySQL Replication 可以将一个主数据库中的数据同步到一个或多个从数据库中。并且这个同步过程默认以异步方式工作,不需要保持主从数据库的实时连接(即允许连接中断)。同时允许自定义配置需同步的数据库及数据表。
MySQL Replication 的优点及应用场景如下:
1、通过 MySQL Replication 实现负载均衡与读写分离(主数据库仅更新,从数据库仅读取),提升数据库性能。
2、通过 MySQL Replication 实现数据的实时备份,保证数据安全。
3、通过 MySQL Replication 实现数据的离线分析(主数据库生成数据,从数据库分析计算不影响主数据库性能)。
4、数据分发。
MySQL Replication完整的官方文档请参阅:https://dev.mysql.com/doc/refman/5.7/en/replication.html
工作原理
1111
1、Master中的所有数据库变更事件写入Binary Log文件
2、当在Slave中执行“SLAVE START”命令时,开启Slave I/O Thread,并连接Master
3、Master侦测到Slave I/O Thread的连接,开启Log Jump Thread进行响应
4、Master Binary Log经Master Log Jump Thread和Slave I/O Thread传输至Slave Relay Log
5、Slave SQL Thread将Relay Log还原至数据,同步完成
注:可使用“SHOW PROCESSLIST”命令在Master和Slave中查看对应线程的运行情况
配置Master
开启Binary Log并设置ServerID,ServerID必须唯一,取值范围1至232-1
[mysqld] # 开启Binary Log log-bin=mysql-bin # 设置全局ID server-id=1 # 指定需同步的数据库(因为数据库名称可能包含逗号,因此多个数据库必须重复配置多次而不能以逗号分隔) binlog-do-db=database_name # 指定禁止同步的数据库 binlog-ignore-db=database_name # 指定Binary Log格式 binlog_format=MIXED