
MySQL
文章平均质量分 72
喝醉酒的小白
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL Group Replication 单主模式的多云部署(云 A/B/C)
优点缺点官方集成的高可用方案,支持自动主备切换跨云网络延迟高可能导致写延迟增加数据一致性保证,支持强一致性读写配置和运维复杂,需专门监控集群状态和网络稳定性支持自动故障切换,无需外部 orchestrator不支持多主写入,单主模式写性能瓶颈应用连接透明切换,MySQL Router 或 ProxySQL 支持跨云故障切换时延较长,可能会导致部分写请求失败或阻塞。原创 2025-06-04 21:39:10 · 993 阅读 · 0 评论 -
MGR 的多主 vs 单主 模式澄清
在多主模式下,执行 DDL 操作时需要特别小心,避免在不同节点上同时进行 DDL 和 DML 操作,以防止数据不一致。原创 2025-06-04 21:34:44 · 463 阅读 · 0 评论 -
使用 Kubernetes Operator 部署 MySQL 多云高可用架构
维度1 套 K8s(混部)2 套 K8s(跨集群)运维复杂度较低高网络延迟较低(内网)高(公网或专线)主从同步本地同步(快)需公网访问或专线切换机制Operator 自动高可用性容灾有限更强(区域级)推荐场景混合云 / 多 AZ跨云容灾,企业级要求。原创 2025-06-04 21:25:23 · 647 阅读 · 0 评论 -
跨多云环境下的数据一致性保障与故障自动切换 # MySQL
目标实现方式跨云一致性保障Semi-sync 复制、GTID、binlog row 模式、事务完整性配置故障自动切换Orchestrator + ProxySQL,实现故障检测、角色切换、连接更新高可用 + 读写分离ProxySQL 或 MySQL Router + 主从读写策略强一致性(可选)MySQL MGR(需稳定网络,适合企业专线)最终一致性 + 容灾优先异步复制 + relay log 回放 + 数据校验工具(pt-table-checksum)原创 2025-06-04 21:20:14 · 812 阅读 · 0 评论 -
故障场景 - 影响 - 解法 - 验证
此结构适用于企业内部知识库沉淀,可直接作为运维团队故障处理手册条目,或嵌入云监控告警的自动化响应流程中。原创 2025-06-02 18:08:33 · 640 阅读 · 0 评论 -
MySQL 架构体系梳理与技术演进笔记
经典主备架构,MySQL 最初期最常见的部署模式,适用于对数据一致性要求不高的中小型系统。主节点负责写操作,从节点负责读操作,实现读写分离,提高系统吞吐能力。每个主节点都可以执行读写操作,并维护完整数据副本,适用于多活部署、高可用和灾备场景。通过多主复制协议与冲突检测机制实现数据一致性。通过中间件(如 ShardingSphere)将数据水平分片到多个存储节点(DN),再通过计算节点(CN)统一管理,实现 Shared-Nothing 架构。原创 2025-05-29 13:56:46 · 857 阅读 · 0 评论 -
MySQL:性能瓶颈与高可用异常切换的排查思路、步骤、常用工具与命令
数据库的性能瓶颈与高可用异常切换的排查手段、步骤、常用工具与命令的详细清单,结构清晰、可操作性强。MySQL 常见高可用架构:主从复制(Async)、:发现“是否真的慢”、“慢在哪”、“慢多久了”原创 2025-05-21 21:11:49 · 756 阅读 · 0 评论 -
MySQL:参数是否合理&计算公式
依据底层存储设备并行 I/O 能力(磁盘通道或 NVMe 队列深度)及 CPU 核心数,适当提升线程数。如果你有 16 个核心且平均有 8 个并发事务,则可将其设为 8–12,视复制滞后情况再做微调。对于 8 GB 池,实例数 ≈ 8。:并行复制线程数不要超过从库 CPU 核心数减 1,同时结合复制事务的类型及数量。:页清理器数量应 ≥ 缓冲池实例数,以确保每个实例都有专属后台线程来刷新脏页。如果你只有 3 个池实例,将清理器设为 3 或更高,避免某些实例缺乏刷盘线程。原创 2025-05-19 18:33:50 · 771 阅读 · 0 评论 -
MySQL参数:崩溃恢复时的数据完整性与在线事务性能相关
以上参数协同工作,共同决定了 MySQL 在崩溃恢复时的数据完整性与在线事务性能。根据业务对数据安全与吞吐的侧重点,合理组合上述参数,即可实现最佳效果。两个参数的核心作用及其对事务持久性和性能的影响,随后介绍了与之相关的其他关键参数,帮助你在配置时进行权衡与优化。)可最大化事务与二进制日志的持久性,但也会增加 I/O 开销,导致事务延迟上升 (确保事务与二进制日志的最高持久性,适用于对数据安全要求极高的场景 (在高并发环境中,可结合以下相关参数调优,平衡性能与安全性。启用上述两项参数(均设为。原创 2025-05-19 18:25:10 · 879 阅读 · 0 评论 -
MySQL:慢 SQL和长事务
定义:单条 SQL 语句从开始执行到结束的时长超过配置项(通常设置为 1 秒)。日志记录:当启用慢查询日志 () 后,符合阈值的 SQL 会被写入日志文件或表中,便于后续分析与优化。原创 2025-05-19 17:48:07 · 1363 阅读 · 0 评论 -
MySQL 中间件+主备 读延迟问题说明
对于需要强一致性的业务,如银行转账、证券交易等,必须从主节点读取数据,以确保读取到的是最新的、准确的数据。同时,为了满足客户对读取最新数据的需求,可以通过事务提示(hint)的方式,让实时性要求高的读请求访问主节点,而将实时性要求不高的读请求分发到从节点,从而实现负载均衡和数据一致性之间的平衡。通过读写分离,可以将TP业务的读写操作集中在主节点,保证数据的一致性和事务的完整性,而将AP业务的读操作分发到只读的从节点,实现负载均衡,提高系统的整体性能和可用性。在分布式数据库中,通过。原创 2025-05-16 16:41:52 · 1097 阅读 · 0 评论 -
MySQL:异步、半同步、同步、异步
增强半同步复制(Enhanced Semi‐Synchronous Replication)依然属于半同步复制范畴,但用更现代的插件架构及更多可调参数来克服传统半同步的性能瓶颈与可用性限制。原创 2025-05-08 10:59:59 · 1020 阅读 · 0 评论 -
按照月份执行备份脚本
可以写一个脚本,每个月执行一次导入 SQL 文件的操作,并在导入前备份数据库。替换为实际的数据库用户名、密码、备份目录路径和 SQL 文件路径。:根据需要,可以扩展脚本以包含更详细的错误处理和日志记录功能。:确保脚本文件具有可执行权限。:在设置定时任务之前,手动运行脚本以确保其按预期工作。来设置每月执行一次脚本。打开终端并输入以下命令编辑。原创 2025-04-30 16:32:35 · 305 阅读 · 0 评论 -
MySQL 实例恢复问题:冷备恢复
数据库中,记录了数据库的元数据信息,如用户账户信息、权限、服务器配置参数等。仅拷贝某个库的文件恢复MySQL数据库是不可行的,但如果是完整恢复实例,且在特定条件下(如数据库完全相同版本且未运行),可拷贝整个数据目录下的文件。很可能是因为这种不恰当的文件拷贝操作破坏了 InnoDB 表空间的一致性,导致 MySQL 实例启动失败。定期备份整个MySQL实例,包括所有数据库和系统表,以确保在发生数据丢失或损坏时能够快速恢复。如果系统表丢失,可以使用备份的。在MySQL数据库中,系统表扮演着至关重要的角色。原创 2025-04-30 09:51:22 · 584 阅读 · 0 评论 -
MySQL 数据目录中各子目录
存储内容:存放 MySQL 的配置文件,常见的如my.cnf或my.ini。作用:这些配置文件定义了 MySQL 服务器的各种运行参数,包括端口号、字符集设置、存储引擎配置、缓冲区大小等,对 MySQL 的性能和功能有重要影响。示例:在my.cnf文件中,可以通过设置port=3306指定 MySQL 服务器的端口号。在 MySQL 中,redo目录下的。原创 2025-04-29 18:14:43 · 593 阅读 · 0 评论 -
MySQL 5.7 -> MySQL 8.x
是一个常见的 MySQL 错误,通常发生在从 MySQL 5.7 迁移到 8.0 时,尤其是在使用 InnoDB 存储引擎时。这通常发生在从 MySQL 5.7 或更早版本升级到 MySQL 8.x 时,因为 MySQL 8.x 对系统表的操作有更严格的限制。这种方法会忽略导入过程中出现的错误,但可能会导致数据不完整,不推荐用于重要数据的恢复。可能会避免一些严格的行大小检查,但这并不推荐,因为它可能会导致其他潜在问题。行格式可以允许更大的行大小。命令查看表的结构,找出可能导致行大小过大的列,并进行优化。原创 2025-04-29 10:32:58 · 1341 阅读 · 0 评论 -
查看MySQL导入进度
最推荐的方法是使用pv命令,因为它可以直接显示导入进度条。如果无法使用pv,可以通过查看 MySQL 进程状态、磁盘 IO 或日志文件来间接判断导入进度。pv是一个命令行工具,用于在数据流传递时显示进度条。它可以在终端中直观地显示数据传输的进度、速度、剩余时间等信息。pv命令特别适用于监控大文件的传输、数据管道中的数据流动等场景。原创 2025-04-28 15:18:41 · 909 阅读 · 0 评论 -
MySQL:备库 relay log的一些问题
MySQL 本身没有对 relay log 文件的数量进行直接限制,但在实际使用中, relay log 文件的数量会受到磁盘空间以及 relay_log_space_limit 参数的影响。)记录了所有 Relay Log 文件的列表和当前正在使用的文件。可以通过查看该索引文件来确定当前 Relay Log 文件。命令查看当前 Relay Log 文件中的事件,该命令默认会显示当前正在使用的 Relay Log 文件中的事件。字段,分别表示当前正在使用的 Relay Log 文件名和当前事件处理的位置。原创 2025-04-28 14:37:33 · 1258 阅读 · 0 评论 -
MySQL:InnoDB: Database page corruption on disk or a failed
InnoDB 数据库页面是 InnoDB 存储引擎用于存储数据和索引的物理单位。InnoDB 将数据存储在表空间中,而表空间由多个数据库页面组成。每个页面通常具有固定的大小(默认为 16KB)。数据库页面是 InnoDB 进行 I/O 操作的最小单位。综上,InnoDB 数据库页面是 InnoDB 存储引擎的底层存储单位,用于物理存储数据和索引,其正常运行对数据库的稳定性和数据完整性至关重要。原创 2025-04-26 17:24:18 · 955 阅读 · 0 评论 -
MySQL: 主库数据页损坏后使用快照和归档 binlog 解析 sql 进行恢复的详细步骤
通过以上步骤,可以有效地恢复 MySQL 主库数据页损坏后的数据,确保业务系统的正常运行。如果数据库启动失败,检查 MySQL 错误日志以确定问题原因。如果已知具体的 binlog 起始位置和结束位置,可以使用。参数代替时间参数,精确地提取所需的 binlog 内容。确保备份文件完整且可用。原创 2025-04-26 17:16:17 · 698 阅读 · 0 评论 -
MySQL server PID file could not be found
从日志信息来看,MySQL 服务启动失败,主要问题包括:MySQL 无法找到 PID 文件(错误日志通常会记录更详细的启动失败原因。如果问题仍然无法解决,建议提供更详细的错误日志信息以便进一步分析。如果日志中提到 InnoDB 相关错误,可能需要进行数据库修复。),以及启动过程中服务进入失败状态(原创 2025-04-26 17:11:47 · 890 阅读 · 0 评论 -
MySQL 主库中查看连接的指定用户
命令可以显示当前所有连接到 MySQL 服务器的会话详细信息,包括用户、主机、数据库等。是 MySQL 提供的一个系统表,存储了当前所有连接的会话信息。这将显示指定用户的连接信息,包括连接 ID、用户、主机、数据库、执行的查询等。这些方法可以帮助你实时监控和管理 MySQL 数据库中的用户连接情况。这种方法提供了更灵活的查询方式,可以结合 SQL 的过滤和排序功能。这将显示来自指定主机的连接信息,包括用户、主机、数据库等。这将返回当前所有连接的用户和主机信息。原创 2025-04-26 17:09:43 · 268 阅读 · 0 评论 -
MySQL 8.0+ :WITH 语法和 LOAD 数据命令
通过查看这两个参数的值,就可以确定当前 MySQL 实例是否已经正确配置以支持相关的 LOAD 数据命令功能。而 WITH 语法在 MySQL 8.0+ 中默认是支持的,无需额外的参数配置来启用它。如果你只是需要确认已经建好的数据库中是否支持 WITH 语法和 LOAD 数据命令相关的两个参数是否正确配置,那么不需要进行创建数据库的操作,只需要查看相关参数即可。:用户需要有对表的 INSERT 权限以及 FILE 权限,才能使用 LOAD DATA INFILE 命令将数据加载到表中。语句来赋予相应权限。原创 2025-04-24 20:19:16 · 938 阅读 · 0 评论 -
MySQL 主备架构
来监控备库的同步状态,也可以借助第三方的监控工具如 Nagios、Zabbix、Prometheus 等,对主备库的性能指标(如 CPU 使用率、内存使用率、磁盘 I/O、网络带宽等)、数据库状态(如主备延迟、连接数、QPS、TPS 等)进行实时监控和告警,及时发现并处理潜在的问题。:在主库上对数据库进行一些简单的数据修改操作,例如在某个表中插入、更新或删除数据,然后立即查询备库中相应的表,确认数据是否能够及时同步过来。在实际操作过程中,需要根据具体的业务场景和系统环境进行适当的调整和优化。原创 2025-04-22 14:12:21 · 1082 阅读 · 2 评论 -
MySQL:备库切换为主库日志
从日志可以看出,整个流程依赖分布式锁(如Raft协议)和GTID来保证数据一致性和高可用性。:MySQL服务尚未启动或监听地址配置错误,导致组件无法完成初始化。:通过选举机制(如Raft或ZooKeeper),备库获得主库身份。:这是组件启动时的基础配置阶段,主要设置日志输出方式和存储路径。:触发备库切换流程的关键事件,系统检测到原主库无法继续履行职责。:备库进入就绪状态,开始监控自身及上游主库的健康状况。:保证主库的稳定性,并及时处理潜在的复制或连接问题。:备库完成切换流程,正式成为主库并对外提供服务。原创 2025-04-21 20:54:51 · 929 阅读 · 0 评论 -
MySQL:主备库的 GTID 差异,从而判断主备库的同步状态
通过这种方式,你可以快速提取并对比主备库的 GTID 差异,从而判断主备库的同步状态。原创 2025-04-17 19:42:34 · 472 阅读 · 0 评论 -
Error 1062 (23000): Duplicate entry ‘‘ for key ‘id‘`
NULL:表示“没有值”或“未知值”。'':表示“存在但为空”。在数据库设计中,选择使用NULL还是空字符串取决于具体需求。如果字段可以没有值,通常使用NULL;如果字段必须存在但可以为空,使用空字符串。原创 2025-04-08 22:40:03 · 964 阅读 · 0 评论 -
MySQL响应慢是否由堵塞或死锁引起?
如果问题持续,建议提供具体日志或查询语句以便进一步分析。重启MySQL后,慢查询会被记录到日志中。原创 2025-03-30 17:43:32 · 411 阅读 · 0 评论 -
MySQL内存使用率高问题排查与解决方案:
进程虚拟内存(VIRT)96.2G,物理内存(RES)56.5G。通过以上步骤,可显著降低MySQL内存占用并提升稳定性。:THP处于开启状态(可能导致内存分配效率低下)。:视图和触发器数量较少,非主要内存消耗源。:多个业务库存在大量存储过程和函数(如。:总内存使用约1933.69MB。原创 2025-03-30 17:43:14 · 1626 阅读 · 0 评论 -
MySQL内存管理机制详解
示例:若Buffer Pool=8GB,10个连接各占50MB,则RSS≈8GB + 10×50MB + 其他组件。Buffer Pool、Log Buffer等全局组件由所有线程共享,通过。记录,确认是否因内存不足被终止。(如Buffer Pool)和。进程实际占用的物理内存,包含。MySQL内存管理可分为。可查看共享内存分布。原创 2025-03-30 17:42:47 · 1004 阅读 · 0 评论 -
MySQL :参数修改
在 MySQL 中对参数进行修改时,常常会碰到各种报错,下面为你详细整理并说明之前遇到的报错以及 MySQL 参数修改的全面信息。原创 2025-03-18 19:57:57 · 1454 阅读 · 0 评论 -
关系型数据库主备高可用方案对比笔记
在构建关系型数据库主备高可用方案时,需要从多个维度综合考量,以选出最契合业务需求的方案。综上所述,每种方案各有优劣,企业在选择时,务必结合自身业务需求、预算、技术栈以及维护能力等因素,进行全面、细致的考量。自动故障转移需额外配置。原创 2025-02-09 10:42:12 · 778 阅读 · 0 评论 -
mysql_global_status_queries
这段代码是一个,用来监控 MySQL 的查询速率指标。原创 2025-01-06 19:11:23 · 544 阅读 · 0 评论 -
执行更新操作时发生了锁等待超时
为了安全起见,你应该避免在命令行中直接传递密码,可以使用配置文件或环境变量来存储密码,或者使用。这通常意味着另一个事务已经锁定了你试图更新的行,而你的事务在等待这个锁释放时超出了允许的时间限制。你可以重新执行你的更新语句,有时候这可以解决问题。:如果可能,减少锁定的粒度,比如使用行级锁而不是表级锁。:如果你的事务中包含多个语句,确保在事务开始时使用。子句中的列有适当的索引,这可以减少锁定的行数。:确保你的事务尽可能短,减少锁定资源的时间。来锁定特定的行,这可以减少锁定的范围。:在更新之前,你可以使用。原创 2025-01-04 17:46:20 · 588 阅读 · 2 评论 -
MaxScale不支持maxadmin?| 权重? 路由模块!
权重的移除是为了更好地利用动态负载均衡。尽管无法手动设置静态权重,但通过合理的配置和实时监控,你可以实现类似甚至更优的效果。如果需要特定的流量分配逻辑,推荐根据场景选择合适的路由模块并微调参数。原创 2024-12-31 11:48:22 · 1024 阅读 · 1 评论 -
InnoDB: Encryption algorithm support missing: N
当你遇到的错误时,这通常意味着你的 MySQL/MariaDB 服务器不支持加密或者没有正确配置加密。原创 2024-12-16 18:11:14 · 399 阅读 · 0 评论 -
mysqlbinglog如何查看进度呢
要查看 MySQL binlog 的进度,通常是指查看 binlog 文件的当前位置,这对于了解复制进度或者进行恢复操作非常重要。)包含了所有 binlog 文件的列表。这个命令会显示 binlog 缓存的大小,这对于了解 binlog 缓存的使用情况很有帮助。这个命令会显示 binlog 文件的过期时间,即 binlog 文件在多少天后会被自动删除。这将显示从服务器的复制状态,包括它正在读取的主服务器的 binlog 文件和位置。这个命令会显示 binlog 的配置,包括 binlog 文件的路径。原创 2024-12-11 22:52:29 · 410 阅读 · 0 评论 -
MySQL排它锁
可以查询当前锁等待的关系,包括请求事务的ID、事务所等待的锁定的ID、阻塞事务的ID和阻塞锁的ID。使用合适的锁策略:使用合适的锁策略,如行锁、表锁等,以减少锁冲突。MySQL中的排它锁(Exclusive Lock),也称为独占锁,是一种确保在事务期间,其他事务无法对锁定数据进行读取或修改的锁机制。• 优化锁策略:根据应用场景和性能需求,可能需要调整锁的粒度或使用不同的隔离级别来优化锁策略,以提高并发性能。可以查看当前出现的锁,包括锁的类型(行级锁或表级锁)和具体位置(如表名、索引名等)。原创 2024-11-27 13:54:22 · 701 阅读 · 0 评论 -
MySQL中,使用XtraBackup进行备份锁
在MySQL 5.7中,XtraBackup默认会获取全局的READ LOCK,这会阻塞所有写操作。在MySQL 8.0中,XtraBackup支持并行备份,这允许在不获取全局锁的情况下进行备份,从而减少了对数据库性能的影响。在两个版本中,都可以使用选项来避免全局锁定,但这可能会增加数据不一致的风险。在MySQL 8.0中,使用--parallel选项可以进一步提高备份效率。在进行备份时,应该根据你的具体需求和数据库的负载情况来选择合适的锁定策略。原创 2024-11-10 10:36:13 · 792 阅读 · 0 评论 -
MySQL的主从复制架构
MySQL的主从复制架构是一种常见的数据库高可用性和数据冗余解决方案。在这种架构中,主数据库(Master)负责处理所有的写操作,而从数据库(Slave)则负责复制主数据库的数据变更。这种架构可以扩展为多级复制,以支持更大规模的读操作负载。原创 2024-11-10 10:35:20 · 901 阅读 · 0 评论