wordpress国外主题网站模板在什么网站做兼职
news/
2025/10/4 12:52:38/
文章来源:
wordpress国外主题网站模板,在什么网站做兼职,百度百科官网,做娱乐网站异步复制
MySQL 默认的复制即是异步的#xff0c;主库在执行完客户端提交的事务后会立即将结果返给给客户端#xff0c;并不关心从库是否已经接收并处理#xff0c;这样就会有一个问题#xff0c;主节点如果 crash 掉了#xff0c;此时主节点上已经提交的事务可能并没有传…异步复制
MySQL 默认的复制即是异步的主库在执行完客户端提交的事务后会立即将结果返给给客户端并不关心从库是否已经接收并处理这样就会有一个问题主节点如果 crash 掉了此时主节点上已经提交的事务可能并没有传到从库上如果此时强行将从提升为主可能导致新主上的数据不完整。 全同步复制
指当主库执行完一个事务所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回所以全同步复制的性能必然会收到严重的影响。 半同步复制 半异步复制
是介于全同步复制与全异步复制之间的一种主库只需要等待至少一个从库节点收到并且 Flush Binlog 到 Relay Log 文件即可主库不需要等待所有从库给主库反馈。同时这里只是一个收到的反馈而不是已经完全完成并且提交的反馈如此节省了很多时间。 时间阈值概念如果主节点服务器仅同步数据到其中一个从节点速度也很慢。 比如设置超时阈值 10S 从节点 10S 没有数据同步完成并反馈结果主节点会直接将结果返回客户端。不等你从节点完成同步了。 范例CentOS8 在 MySQL8.0 实现半同步复制
注意每个数据库版本半同步复制的方法有所不同 建议 二进制日志格式 ROW 行类型 所有节点都开启二进制日志功能 并将二进制日志文件分开存放 所有从节点开启只读功能 read-only // 前置工作
yum install mysql-server -y
systemctl enable --now mysqld// 创建二进制日志目录
mkdir /data/log/mysql -p
chown -R mysql:mysql /data/log/mysql// 关闭防火墙 and SELinux
setenforce 0
systemctl disable --now firewalld
# 查看插件文件 ( 库文件 )
[rootmaster ~] rpm -ql mysql-server | grep semisync
/usr/lib64/mysql/plugin/semisync_master.so
/usr/lib64/mysql/plugin/semisync_replica.so
/usr/lib64/mysql/plugin/semisync_slave.so
/usr/lib64/mysql/plugin/semisync_source.so// master 服务器配置
[rootmaster ~] vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id8
log-bin
rpl_semi_sync_master_enabledON # 修改此行, 需要先安装 semisync_master.so 插件后, 再重启, 否则无法启动 ( 开启主节点的半同步功能 )
rpl_semi_sync_master_timeout3000 # 超时阈值: 设置 3s 内无法同步, 也将返回成功信息给客户端 ( 默认: 10S )// 创建账户并授权
mysql show master logs; # 查看位置
-------------------------------------
| Log_name | File_size | Encrypted |
-------------------------------------
| binlog.000001 | 156 | No |
-------------------------------------
1 row in set (0.00 sec)# 创建账户并授权
mysql create user repluser192.168.80.% identified by 123456;
mysql grant replication slave on *.* to repluser192.168.80.%;// slave1 服务器配置
[rootslave1 ~] vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id18
rpl_semi_sync_slave_enabledON # 修改此行, 需要先安装 semisync_slave.so 插件后, 再重启, 否则无法启动 ( 插件开机自启 )// slave2 服务器配置
[rootslave2 ~] vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id28
rpl_semi_sync_slave_enabledON # 修改此行, 需要先安装 semisync_slave.so 插件后, 再重启, 否则无法启动 ( 插件开机自启 )// 主服务器配置
mysql SHOW PLUGINS; # 查看插件
mysql INSTALL PLUGIN rpl_semi_sync_master SONAME semisync_master.so; # 永久安装插件
mysql SET GLOBAL rpl_semi_sync_master_enabled1; # 临时修改变量
mysql SET GLOBAL rpl_semi_sync_master_timeout 3000; # 超时长 3S, 默认值为 10s
mysql SHOW GLOBAL VARIABLES LIKE %semi%;
-------------------------------------------------------
| Variable_name | Value |
-------------------------------------------------------
| rpl_semi_sync_master_enabled | ON |
| rpl_semi_sync_master_timeout | 3000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_for_slave_count | 1 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_master_wait_point | AFTER_SYNC |
-------------------------------------------------------
6 rows in set (0.00 sec)// 从节点连接主节点 ( 注意: 两台从节点都配置连接主节点 )
mysql CHANGE MASTER TOMASTER_HOST192.168.80.8,MASTER_USERrepluser,MASTER_PASSWORD123456,MASTER_PORT3306,MASTER_LOG_FILEbinlog.000001,MASTER_LOG_POS156;// 从服务器配置 ( 注意: 两个从节点都需要安装好插件 )
mysql INSTALL PLUGIN rpl_semi_sync_slave SONAME semisync_slave.so;
mysql SET GLOBAL rpl_semi_sync_slave_enabled1; # 临时修改变量
mysql SHOW GLOBAL VARIABLES LIKE %semi%; # 验证从服务器插件启用状态
----------------------------------------
| Variable_name | Value |
----------------------------------------
| rpl_semi_sync_slave_enabled | ON |
| rpl_semi_sync_slave_trace_level | 32 |
----------------------------------------
2 rows in set (0.02 sec)// 从节点重启数据库服务
[rootslave1 ~] systemctl restart mysqld
[rootslave2 ~] systemctl restart mysqld// 从节点启用复制线程
# 注意: 如果之前已经实现主从复制 需要 stop slave;start slave; mysql start slave; # 两台从节点都启用复制线程
mysql SHOW GLOBAL STATUS LIKE %semi%; # 验证状态
-----------------------------------
| Variable_name | Value |
-----------------------------------
| Rpl_semi_sync_slave_status | ON |
-----------------------------------
1 row in set (0.01 sec)// 主节点查看从节点状态
mysql SHOW GLOBAL STATUS LIKE %semi%;
---------------------------------------------------
| Variable_name | Value |
---------------------------------------------------
| Rpl_semi_sync_master_clients | 2 | # 数量
| Rpl_semi_sync_master_net_avg_wait_time | 0 |
| Rpl_semi_sync_master_net_wait_time | 0 |
| Rpl_semi_sync_master_net_waits | 0 |
| Rpl_semi_sync_master_no_times | 0 |
| Rpl_semi_sync_master_no_tx | 0 |
| Rpl_semi_sync_master_status | ON |
| Rpl_semi_sync_master_timefunc_failures | 0 |
| Rpl_semi_sync_master_tx_avg_wait_time | 0 |
| Rpl_semi_sync_master_tx_wait_time | 0 |
| Rpl_semi_sync_master_tx_waits | 0 |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0 |
| Rpl_semi_sync_master_wait_sessions | 0 |
| Rpl_semi_sync_master_yes_tx | 0 |
---------------------------------------------------
14 rows in set (0.00 sec)// 从节点验证线程
mysql show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for source to send eventMaster_Host: 192.168.80.8Master_User: repluserMaster_Port: 3306Connect_Retry: 60Master_Log_File: binlog.000001Read_Master_Log_Pos: 689Relay_Log_File: centos8-relay-bin.000003Relay_Log_Pos: 854Relay_Master_Log_File: binlog.000001Slave_IO_Running: Yes # 运行中Slave_SQL_Running: Yes# 运行中// 验证半同步复制
mysql create database db1; # 主节点
mysql show databases; # 从节点
mysql show databases; # 从节点 // 测试效果
stop slave; # 两个从节点停止复制线程
stop slave; # 两个从节点停止复制线程
create database db2; # 主节点创建数据库 ( 三秒后自动完成创建 因为超过了阈值 ) start slave; # 两个从节点启用复制线程
start slave; # 两个从节点启用复制线程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927144.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!