购物网站开发的背景介绍,可以做网站背景音乐的英文歌曲,重庆物流最新消息,wordpress网站商务通概述
1.什么是主从复制
主从复制是指将主库的 DDL 和 DML 操作通过二进制日志传到从库服务器中#xff0c;然后在从库上对这些日志重新执行#xff08;也叫重做#xff09;#xff0c;从而使得从库和主库的数据保持一致。
2.主从复制作用 数据备份#xff1a;通过主从复…概述
1.什么是主从复制
主从复制是指将主库的 DDL 和 DML 操作通过二进制日志传到从库服务器中然后在从库上对这些日志重新执行也叫重做从而使得从库和主库的数据保持一致。
2.主从复制作用 数据备份通过主从复制可以将主数据库的数据复制到一个或多个从数据库中以实现数据备份和灾难恢复。当主数据库出现故障时可以快速地将从数据库提升为主数据库并继续提供服务。 负载均衡通过主从复制可以将读操作分发到从数据库上从而减轻主数据库的负载提高系统的并发能力和性能。 数据分析通过主从复制可以将主数据库中的数据复制到从数据库中进行分析避免对主数据库产生影响。 高可用性通过主从复制可以实现数据库的高可用性当主数据库出现故障时可以快速地将从数据库提升为主数据库保证系统的持续可用性。
3.原理
1、主从同步的过程中主库会将所有的操作事件记录在 binlog 中 2、如果binlog 日志发生了变化主库生成一个 binlog dump 线程向从库 I/O 线程传送 binlog 3、从库上的 I/O 线程将 binlog 复制到自己的 relay log 中 4、最终由从库中的 SQL 线程读取 relay log 中的事件重放到从库上 4.同步策略
异步复制默认同步方式客户端在向服务端发送请求后master 处理完之后直接返回客户端结果接着在将对应的 log 信息发送给 slave 节点。主库不会等待从库的确认因此效率较高。但在主库故障时可能会丢失一部分数据。半同步复制master 处理完自身操作将对应的 binary log 发送给从服务器从服务器通过 io thread 写入到 relay log 中然后将结果返回给 mastermaster 在收到 salve 的响应之后在返回给客户端。这样可以减少数据丢失的可能性但会增加主库的延迟。同步复制主库将变更写入二进制日志后等待所有从库确认已收到并应用了这些变更主库才会认为事务提交成功。这样可以确保所有从库与主库的数据完全一致但会显著增加主库的延迟并且如果有任何一个从库出现故障或网络延迟整个系统的性能都会受到影响。并行复制在MySQL 5.6及以后的版本中引入了并行复制的功能可以通过多线程并发地将变更发送给多个从库从而提高复制性能。
选择适合的主从同步策略需要根据具体的业务需求和系统性能来进行权衡。异步复制适用于对数据一致性要求不高但对性能要求较高的场景半同步复制适用于对数据一致性和性能都有一定要求的场景同步复制适用于对数据一致性要求非常高的场景但会带来较大的延迟。并行复制可以在高负载情况下提升复制性能。
部署
1.安装
首先安装两台数据库这里我是采用的虚拟机进行实现就不过多叙述安装过程可以参考另外一篇博客Linux(centos)安装 MySQL 8 数据库(图文详细教程)。
2.主数据库修改配置信息
选择一台为主机修改配置文件信息
vim /etc/my.cnf
添加配置内容
#服务器 id随意但要唯一
server-id 1
#二进制文件存放路径
log-bin mysql-bin
#参数用于排除自带的数据库。
binlog-ignore-db mysql
binlog-ignore-db information_schema
binlog-ignore-db performance_schema
#二进制日志格式建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format ROW 重启主机服务器
systemctl restart mysqld
配置一个从机连接账户
配置权限账号
CREATE USER test% IDENTIFIED BY 123456;
#授权账号复制权限
GRANT REPLICATION SLAVE ON *.* TO test%;
#刷新配置
FLUSH PRIVILEGES;
获取当前二进制日志文件的名称和位置
SHOW MASTER STATUS;
结果需要记录一下后面从机连接的时候需要使用 3.从数据库配置信息
修改配置文件信息
vim /etc/my.cnf
添加配置信息
#注意和主库的id不一致并且唯一就可以
server-id 2
#不同步相关的库
replicate-ignore-db mysql
replicate-ignore-db information_schema
replicate-ignore-db performance_schema
重启从数据库
systemctl restart mysqld 连接主从数据库 参数解释 MASTER_HOST : 设置要连接的主服务器的ip地址 MASTER_USER : 设置要连接的主服务器的用户名 MASTER_PASSWORD : 设置要连接的主服务器的密码 MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称即第2步得到的信息 MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置即第2步得到的信息这里注意最后一项不需要加引号。否则配置失败 change master to master_host192.168.137.100,master_usertest,master_password123456,master_log_filebinlog.000006,master_log_pos155; 开启同步 start slave
查看启动状态
show slave status\G; 下面两项必须都是yes才表示配置成功否则必须stop slave,检查配置修改正确后再次start slave 直到都是yes为止。
测试
在主表增删改从表也会对应的相关操作表示成功搭建主从复制。