mysql|半同步复制

在异步复制中,主库在将事务写入二进制日志后,不会等待从库确认接收到该事务,而是立即继续处理新的事务。

在全同步复制中,主库在提交事务后,必须等待所有从库接收到并应用该事务后,才能继续处理新的事务。

MySQL的半同步复制是一种介于异步复制和全同步复制之间的复制模式。
在半同步复制中,当主服务器执行一个事务并将其写入二进制日志后,它会等待至少一个从服务器确认已接收到该事务的日志记录。只有在收到确认后,主服务器才会继续处理新的事务。如果在指定的超时时间内没有收到确认,复制模式会自动切换回异步复制。

前提:主从架构,参考链接

master配置

修改配置安装插件

vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
#加载插件
plugin-load=rpl_semi_sync_master=semisync_master.so
#开启半同步
rpl_semi_sync_master_enabled=1

重启服务

systemctl restart mysql

查看插件是否激活

mysql -u root -p
select plugin_name,plugin_status from information_schema.plugins where plugin_name like '%semi%';
show status like 'Rpl_semi_sync_master_status';

slave配置

修改配置安装插件

vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
plugin-load = rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1

重启服务

systemctl restart mysql

查看插件是否激活

mysql -u root -p
select plugin_name,plugin_status from information_schema.plugins where plugin_name like '%semi%';
show status like 'Rpl_semi_sync_slave_status';

注意:如果是在高可用架构下启动半同步复制,可以采用以下配置,故障切换后能继续使用半同步复制

plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled=1
rpl-semi-sync-slave-enabled=1
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!