惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
博客园_首页
N
News | PayPal Newsroom
有赞技术团队
有赞技术团队
The Hacker News
The Hacker News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
S
SegmentFault 最新的问题
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
P
Privacy & Cybersecurity Law Blog
AI
AI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Schneier on Security
Schneier on Security
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
量子位
Forbes - Security
Forbes - Security
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
SecWiki News
SecWiki News
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
Recorded Future
Recorded Future
A
About on SuperTechFans
J
Java Code Geeks
The Register - Security
The Register - Security
PCI Perspectives
PCI Perspectives
H
Hacker News: Front Page
V2EX - 技术
V2EX - 技术
S
Secure Thoughts
V
Vulnerabilities – Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Scott Helme
Scott Helme
T
The Exploit Database - CXSecurity.com
Y
Y Combinator Blog
AWS News Blog
AWS News Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
IT之家
IT之家
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
C
CERT Recently Published Vulnerability Notes
L
LangChain Blog
F
Full Disclosure
Application and Cybersecurity Blog
Application and Cybersecurity Blog
The GitHub Blog
The GitHub Blog

MySQL

请教大家一个关于 mysql 服务崩溃的问题 - V2EX 数据库连接数超了如何解决 - V2EX count 的语句优化问题 - V2EX 连接 MySQL 很慢的问题 - V2EX MYSQL UPDATE 在很短的时间内更新相同的语句,就会有告警,导至事务失败,有没有人遇到这问题? MySQL 磁盘读取飙升,导致阿里云服务器卡死 - V2EX 求 Macos 下面 homebrew 安装 mysql 到指定目录的方法 使用 EXISTS 优化 IN 子查询 - V2EX 什么时候可以将 mysql 默认隔离机制改为读已提交 跨平台的 MySQL Parser - V2EX MySQL 大表排序有什么好的方案?只能上 Mongo? Mysql 无法修改自增主键的 AUTO_INCREMENT 值 升级服务器后, mysql 性能反而更慢了,求排查思路 《高性能 MySQL》第三版:是否已经过时? 坑爹的字符集问题:踩到了 MySQL 的 bug 两个人的数据开发团队,被要求从零开始治理企业数据 MySQL 8.4 LTS 与 Metabase 奇怪兼容性问题:降级到 8.0.4 后问题解决 (1Panel and BT Panel 复现) - V2EX 公司内网,怎么搭建主备 mysql,高可用。故障自动切。 不买云服务 mysql 自增 ID 突然变为 int 最大值问题 覆盖还原 data 文件夹后, mysql 无法启动了 - V2EX 生产力工具 - V2EX 各位大佬,有个奇葩的技术问题 - V2EX 关于 mysql trx_id 的疑惑 发帖一问 sql 性能讨论 - V2EX 数据库高频更新问题 谁遇到过没 有啥好的解决方案部 - V2EX 有用过 SyncNavigator 或者类似的简单数据库同步软件吗, - V2EX mysql 遇到最愚蠢的查询性能问题,求解决 - V2EX 有什么优雅的 mysql 增加字段名的方法呢? - V2EX 各位 Mysql 大佬,问一个 8.0 版本 json 的问题 - V2EX mysql online DDL 时间很长,咋整,数据量不多,就 30W - V2EX 数据库中 select for update 和 version 乐观锁各自的适用场景是啥? - V2EX mysql 宿主机没有办法访问的问题 - V2EX mysql 求助 - V2EX mysql 亿级数据,数据筛选和导入导出 - V2EX 大佬们你们 Mysql 的数据库名称怎么分割的? - V2EX mysql 数据增量同步 - V2EX 新项目准备启动, MYSQL 选择 8.4.2 这个版本,有没什么坑? - V2EX mysql 一年新增 800 多万条数据,如果是单表的话请问服务器能支撑吗?各位有什么好的办法吗? - V2EX 新手求个远程数据库稳妥的解决方案~或者实时备份数据库的方法 - V2EX 铁子们,求助 docker 中 MySQL 导入数据库速度问题 - V2EX 大家的 SQL 一般怎么管理? - V2EX 询问一个慢查询的问题 - V2EX 现在用 mysql 的多 还是 mariadb 的多 - V2EX 关于 MySQL 查询咨询 - V2EX 请教个问题,如何快速的删除 mysql 的数据 求助:Mysql 数据文件夹如何被新安装的 Mysql 读取 - V2EX mysql 有没有什么中间件能模拟 mongodb? - V2EX 请问 debian12 mysql5.7 可以通过添加 apt 源安装吗?
MySQL 8.4 MGR 可以上生产吗? - V2EX
vczyh · 2024-12-24 · via MySQL

这是一个创建于 537 天前的主题,其中的信息可能已经有所发展或是发生改变。

pigeon2049

2

pigeon2049      2024 年 12 月 24 日

用就不要怕
9.1.0 直接冲 哪里报错改哪里

realpg

3

realpg      2024 年 12 月 24 日

不用 innodb cluster 的话 没必要上 lts
用 innodb cluster 的话 router 坑不少 但是都能解决

qW7bo2FbzbC0

4

qW7bo2FbzbC0      2024 年 12 月 24 日   ❤️ 3

8.4 版本 master/slave 关键词因为政治正确,改成了 primary/replica 了吧,之前工具可能都不适配,可以从 8.0 开始用,慢慢等生态工具支持新关键词

hetal

5

hetal      2024 年 12 月 24 日

我们公司就用的 8.4 的 innodb cluster+mysql router ,另外还是用的 docker+swarm 运行的~~~

flyqie

6

flyqie      2024 年 12 月 24 日 via Android

@qW7bo2FbzbC0 #4

没关注。。还以为这股风气结束了。。没想到居然还在。。

这下难受了,不知道得等多久。

vczyh

8

vczyh      2024 年 12 月 25 日

@realpg 我看 8.4 相比 8.0 没多什么特性,请问 innodb cluster router 有什么坑吗?

realpg

9

realpg      2024 年 12 月 25 日

@vczyh #8
router 可靠性比较差
经常自己就无了
而且 router 默认生成器是 init.d 启动 不会自己重启 不知道什么草台班子写的 甚至不是 systemd

router 得日志功能形同虚设 崩了 死了 都不会写日志
有时候进程正常 内存也没泄露 对外服务就不好使了 然后自身还正常上报自己正常

反正这个 router 的可靠性和逻辑 像是大专生课程作业

从 8.3 到现在 一直这样 版本我们一直滚动升级 问题常态存在

realpg

10

realpg      2024 年 12 月 25 日

@hetal #5
你们 router 自己改造没 router 的可靠性如何
其他都好 就 router 的坑我们踩了几百次了
现在甚至已经整了一帮人研究 router 结构 自己重写一个 router

vczyh

11

vczyh      2024 年 12 月 25 日

@realpg 多谢,不过我们还在调研

1. 如果不使用 router 可以不,我直连 Primary(RW)和 Replica(R)
2. 相比简单的主从,单 primary MGR 的性能如何

hetal

12

hetal      2024 年 12 月 25 日

@realpg 用了 1 年了官方 docker 版本,没有发现啥问题

hetal

13

hetal      2024 年 12 月 25 日

@vczyh 我们在正式使用前做了很多压力测试,主要实测如下:
1. Docker 的版本会比普通版本 qps 少 10%左右
2. MGR 比普通单台性能平均少 30%左右,写入和读取平均一下

好处是:
1. 解决了单点故障问题,高可用性
2. 扩容、迁移、升级更简单了

realpg

14

realpg      2024 年 12 月 25 日

@hetal #12
大概是我们的 mysql 负载太重的原因 轻负载可能无法复现

@vczyh #11
你不使用 router 那就不要用这个 cluster 直接回归原始主从

另外看我问#12 的 因为用这玩意生产的企业真的不多 我们的 mysql 集群是充分设计利用效能的,负载非常重,并发很高,数据量也非常大,但是不会搞死数据库引擎

可能只有到很重负载的 很高并发的规模才会 router 不稳定
这个仅供参考

hetal

15

hetal      2024 年 12 月 26 日

@realpg 你说的 router 不稳定,有什么现象,错误,或者具体一点的错误日志么

hetal

16

hetal      2024 年 12 月 26 日

@realpg 或者具体的版本号,操作系统,部署方式,配置文件的参数,服务器的参数等

kapr1k0rn

18

kapr1k0rn      2024 年 12 月 26 日

我帮客户在 k8s 上用官方 mgr operator 部署的集群,跑了一年了目前没什么问题。不过要让我再选,一律不建议 mysql 集群,遇到问题明明官方文档有解决方案但是因为没有买 oracler 服务还看不了,太恶心人了。
router 确实坑多,最好不要用,我是换成 proxysql 了。

vczyh

19

vczyh      2024 年 12 月 26 日

@realpg 多谢多谢

1. 目前发现 cluster 好处是自带数据 clone 、failover 、节点管理
2. 你们多个 router 前面挂了 LB 吗?

vczyh

20

vczyh      2024 年 12 月 26 日

@hetal MGR 对于客户端使用(比如一些 SQL )上有什么限制吗?

realpg

22

realpg      2024 年 12 月 26 日

@vczyh #19

router 前面为啥要挂 lb 啊
router 是跟 client 绑定的末端设施 他自身是分配的

@hetal #15
无任何日志 它自己根本不输出任何东西

router 的日志是我二十多年运维生涯见过的最干净的日志 跟没有日志没啥区别

包括但不仅限于 自己就 exit 了 日志里啥也没有
还有它跟 cluster 的通讯一切正常 keepalive 什么都正常发 然后对下面的应用就不提供服务了

还有它提供服务 socket 正常 tcp 就 connection refused 以及反过来

当然我们自己在 router 以外做了一些东西去解决这个事情 暂时影响不大了

----------
router 的版本,我们最开始跑这个集群时候 是 8.3 那时候第一个 lts 还没发布 我们每一个小版本都跟着滚动更新
现在是 8.4 lts 最新 lts 更新我们延迟两周就跟着滚动更新
这些问题在任何版本都是一样的发生
其实看了他们 router 代码 这玩意压根也没怎么更新过多少代码

我们现在从 router 以外的 app 侧做了很多处理
同时对 router 外挂了检测机制 基本 2 秒内解决 router 的故障

目前 router 的抽风频率大概是一个 6 个 backend 6 个 router 的系统 每 55 小时左右 大概就会有一只 router 莫名其妙进入一个随机的故障状态

hetal

24

hetal      2024 年 12 月 26 日

@realpg 你可以看看 router configure 的配置,你说的问题我们都没有碰到

hetal

25

hetal      2024 年 12 月 26 日

我们生产是 8.4.2 ,测试环境是 8.4.3

hetal

26

hetal      2024 年 12 月 26 日

@realpg router 的配置参数可以发出来看看,有一此参数是不能随便配置的,会影响事务相关的操作等

vczyh

27

vczyh      2024 年 12 月 26 日

@realpg 意思是多个 router 挂个 VIP 吗?所有请求发送到一个 router 这样好吗?还有就是其中一个 router 挂了怎么办

realpg

28

realpg      2024 年 12 月 26 日

@vczyh #27
额。你看看文档吧,你没理解 innodb cluster 的架构。

@hetal #26
随便找一个
256G 内存 3TB 左右存储空间 每日高峰综合负载 40%左右 日产生新行数约千万 删除也差不多这么多 写占比 78%
90%字段整数类型 索引充分 非 DDL 慢查询阈值 1 秒

[DEFAULT]
name=system
user=mysqlrouter
keyring_path=/var/lib/mysqlrouter/keyring-39-1
master_key_path=/etc/mysqlrouter/mysqlrouter-39-1.key
connect_timeout=3
read_timeout=45
dynamic_state=/var/lib/mysqlrouter/state-39-1.json
client_ssl_cert=/var/lib/mysqlrouter/router-cert-39-1.pem
client_ssl_key=/var/lib/mysqlrouter/router-key-39-1.pem
client_ssl_mode=PREFERRED
server_ssl_mode=PREFERRED
server_ssl_verify=DISABLED
unknown_config_option=error
max_idle_server_connections=240
router_require_enforce=1

[logger]
level=INFO

[metadata_cache:bootstrap]
cluster_type=gr
router_id=44
user=node-router-main-39-1
metadata_cluster=HB2DB39
ttl=0.5
auth_cache_ttl=-1
auth_cache_refresh_interval=2
use_gr_notifications=0

[routing:bootstrap_rw]
bind_address=127.0.0.1
bind_port=6446
socket=/run/mysqlrouter/mysql-39-1-main.sock
destinations=metadata-cache://HB2DB39/?role=PRIMARY
routing_strategy=first-available
protocol=classic

[routing:bootstrap_ro]
bind_address=127.0.0.1
bind_port=6447
socket=/run/mysqlrouter/mysql-39-1-ro.sock
destinations=metadata-cache://HB2DB39/?role=SECONDARY
routing_strategy=round-robin-with-fallback
protocol=classic

[http_server]

[rest_api]

realpg

30

realpg      2024 年 12 月 26 日

@vczyh #29
挂了就不用了啊 你的程序都不是分布式的 就没必要上这个

你没发现他们这个设计图都没给你做交叉吗

或者换句话说 router 是不应该挂的 只有 app 能挂

这也是我遇到的问题 这个 router 高负载下是真的不稳

vczyh

31

vczyh      2024 年 12 月 26 日

@realpg

这个和应用程序是否是分布式没关系,mysql 高可用就是要求每个组件有一定的容错能力,比如 master 挂了,slave 后变成新主,多个 router 只要有一个没挂就能继续为应该程序提供服务。

如果 router 挂了应用程序就不可用的话,为什么要用 MGR ,我用单节点不行吗,不会只是为了多一份数据备份吧。

hetal

33

hetal      2024 年 12 月 26 日

@realpg 我没有配置[routing:xx],让其内部操作,可以禁用连接池试式

[DEFAULT]
max_idle_server_connections=0
router_require_enforce=0

[metadata_cache]
use_gr_notifications=1

hetal

34

hetal      2024 年 12 月 26 日

@vczyh 我们是用的 docker swarm ,启动的多个 mysql router replicas ,只启用了 use-gr-notifications 这个参数,其它都是默认参数,比较稳定

vczyh

35

vczyh      2024 年 12 月 26 日
realpg

37

realpg      2024 年 12 月 27 日

@hetal #36
内部操作?
你不指定,默认就所有读写操作都在 PRIMARY 上面 除非你指定 SPLIT 的入口

我们现在不考虑副本 最小的集群上是 1 个 PRIMARY4 个 SENCONARY ,最多的 1 个 PRIMARY 三十多个 SENCODARY 才能扛得住请求数
都扔给 PRIMARY 启动后 100 毫秒整个集群就死了

realpg

38

realpg      2024 年 12 月 27 日

@vczyh #32
额 别把野鸡攻略当回事吧
你要是认定一种做法 什么地方都找得到跟你想法一样的人

@hetal #36
补充一下 我用的根本不是你给的 changlog 里说的 Read-Write splitting
那玩意指的是

[routing:bootstrap_rw_split]
destinations=metadata-cache://HB2DB161/?role=PRIMARY_AND_SECONDARY

而我用的只是指定连接 PRIMARY 还是 SENCODARY

因为 INNODB CLUSTER 是不保证一致性的,甚至可以说,高负载下他是一定不一致的。
冷数据才可以连 SENCODARY

而且 spilit 这玩意纯属娱乐功能 源代码写的一坨屎

----
从 8.3.0 到 8.4.4 router 基本就没修复过任何正经的 bug

我公司有 oracle 的商业支持(mysql) 不过是比较便宜的 已经不再续了
他们商业支持认为我们反馈的问题是在骗他们 是在 joking 然后就不管了
他们认为 router 能自己 exit 还没有日志是我们在骗他

他们给我们这个问题定的结论是: 我们没管理好服务器 被人登上去手动 service mysqlrouter stop 了

hetal

40

hetal      2024 年 12 月 27 日

@realpg 默认 mysql router 的 max_connections 为 512 ,如果负载大,连接不释放,不仅仅要调 router 的参数,mysql 的很多参数也要调整;随你吧,你说问题多就多呗,用不用也你们的选择。

vczyh

41

vczyh      2024 年 12 月 27 日

@realpg 我发现你真是不会好好说话,router 挂了一个后,整个 MySQL 不能用了你管这叫高可用?

hetal

42

hetal      2024 年 12 月 27 日

@hetal 默认端口配置 6446 只会连 primary ,6447 只会连 secondary ,所以,默认情况下 router 已经做了主从/读写分离了