高可用 | 关于 Xenon 高可用的一些思考

原创:知数堂

上一篇文章,我们详细介绍了 Xenon 实现 MySQL 高可用架构的常用操作。本篇将对关于 Xenon 高可用的一些思考及高频问题进行解答。

问题 1:宕机时 binlog 有 gap 会补日志吗?

Xenon 不会补日志,Xenon 只会从包含最大 GTID 的所有 Follower 中选举一个 Follower,使之成为 Leader 。重新配置主从复制,并把 VIP 切换到新的主节点上。

注意: 如果此时主从有延时,当主库异常,新主上存在还未应用的 Relay Log 时,新主将会被置为 Read-Only 状态,等待 Relay 应用完毕后,才会开启 Read-Write 状态。这样可保障数据强一致性。

问题 2:宕机节点如何恢复?

Xenon 会自动把恢复的节点以 Follower 角色加入集群,也可以用 rebuildme 命令重建。

问题 3:3 个节点允许几个节点宕机?

3 个节点最多允许 1 个节点宕机。

关于节点个数,Xenon 目前不支持 2 节点,最少 3 个节点,最多没有明确上限,可配置超过 13 个节点。但考虑到从节点的数据来自主节点,因此建议配置 3 或 5 个节点。

问题 4:Xenon 主节点宕机后,会出现主从切换异常的场景吗?

除非集群 3 个节点之间网络互相不通,或者超过半数节点的 MySQL 宕机了,否则肯定能完成选主切换。

若出现主从切换异常,请优先排查集群间网络连通情况。

问题 5:Xenon 推荐使用哪个版本,受 MySQL 版本影响吗?

推荐使用 Xenon 最新的 Release 版本,当前是 v1.1.4 版本

  1. 优化了高可用选举逻辑,可更快选出主节点;
  2. 新增按指定角色启动特性,以确保升级 Xenon 期间不会触发 MySQL 主从切换。

参考链接:https://github.com/radondb/xenon/blob/Main/docs/how_xenon_upgrades.md

问题 6:目前 Xenon 支持 MySQL 哪些版本,支不支持 MySQL 8.0?

Xenon 同时支持 MySQL 5.6、5.7、8.0 版本,而 MySQL 官方预计在 2021 年 10 月后将不再维护 5.7 版本。

因此选择使用 Xenon 时,优先推荐 MySQL 8.0 版本。

问题 7:主节点宕机又恢复是如何运行的,会自动加入集群吗?

例如,主节点 a 正常时,a->b,a->c。若 a 宕机了,切换成了b为主节点,则有 b->c。a 恢复后,会自动作为从节点加入集群,则有 b->a。

问题 8:为适配 Xenon,MySQL 哪些参数需要特别设置?

为适配 Xenon 性能,MySQL 部分参数需提前配置,特别是在金融业务应用场景下。以下提供部分 my.cnf 参数配置作为参考。

[client]
socket = /data/mysql/mysql.sock
[mysqld]
federated
basedir = /opt/mysql
datadir = /data/mysql/
socket = /data/mysql/mysql.sock
log-error = /data/mysql/mysql-error.log
slow_query_log_file = /data/mysql/mysql-slow.log
read_only = ON
binlog_format = row
log-bin-index=mysql-bin.index
log-bin=/data/mysql/mysql-bin
innodb_open_files=655360
open_files_limit=655360
core-file

#semi-sync, validate-password, audit-log
plugin-load="semisync_Main.so;semisync_Follower.so"
rpl_semi_sync_Main_enabled=OFF
rpl_semi_sync_Follower_enabled=ON
rpl_semi_sync_Main_wait_no_Follower=ON
rpl_semi_sync_Main_timeout=1000000000000000000

#repl
skip-Follower-start
gtid-mode = ON
enforce-gtid-consistency = ON
Follower_parallel_type = LOGICAL_CLOCK
log-Follower-updates

#relay log
relay_log=/data/mysql/mysql-relay-bin
relay_log_index=mysql-relay-bin.index
Main_info_repository=TABLE
relay_log_info_repository=TABLE

#fixed config
slow_query_log=1
tmp_table_size=32M
tmpdir=/data/mysql
server_id = 197039727
innodb_log_files_in_group=2
skip-name-resolve=1
innodb_ft_max_token_size=84
innodb_use_native_aio=1
innodb_ft_min_token_size=3
interactive_timeout=3600
transaction-isolation=REPEATABLE-READ
character_set_server=utf8mb4
Follower_parallel_workers=8
max_connect_errors=655360
autocommit=1
innodb_flush_method=fsync
sync_Main_info=1000
lower_case_table_names=0
default-time-zone=+08:00
innodb_log_file_size=50331648
log_timestamps=system
log_bin_trust_function_creators=1
wait_timeout=3600
long_query_time=3
expire_logs_days=3

问题 9:Xenon 集群中与时间相关的参数有哪些?

请参考:

{
"log": {
"level": "DEBUG"
},
"server": {
"endpoint": "192.168.0.5:8801"
},
"replication": {
"passwd": "Qc0_499f273e",
"user": "repl_926fb44"
},
"rpc": {
"request-timeout": 1000
},
"mysql": {
"admit-defeat-ping-count": 3,
"admin": "root",
"basedir": "/opt/mysql",
"defaults-file": "/etc/mysql/my.cnf",
"ping-timeout": 1000,
"passwd": "",
"host": "localhost",
"Main-sysvars": "tokudb_fsync_log_period=default;sync_binlog=default;
innodb_flush_log_at_trx_commit=default",
"Follower-sysvars": "tokudb_fsync_log_period=1000;sync_binlog=1000;innodb_
flush_log_at_trx_commit=1",
"port": 3306
},
"raft": {
"leader-start-command": "sudo ip a a 192.168.0.253/32 dev eth0 && sudo
arping -c 3 -A 192.168.0.253 -I eth0",
"election-timeout": 5000,
"leader-stop-command": "sudo ip a d 192.168.0.253/32 dev eth0",
"admit-defeat-hearbeat-count": 5,
"heartbeat-timeout": 1000,
"meta-datadir": "/data/raft/",
"purge-binlog-disabled": true
},
"backup": {
"ssh-host": "192.168.0.5",
"ssh-user": "ubuntu",
"ssh-passwd": "",
"mysqld-monitor-interval": 5000,
"backup-use-memory": "3072M",
"ssh-port": 22,
"xtrabackup-bindir": "/opt/xtrabackup/bin",
"backup-parallel": 2,
"backupdir": "/data/mysql/",
"backup-iops-limits": 100000
}
}

相关阅读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容