Xtrabackup 2.4.18:Unable to obtain lock. Please try again later.
问题描述Xtrabackup 2.4.18 备份报错:Unable to obtain lock. Please try again later.环境信息Xtrabackup 2.4.18MySQL 5.7.21问题总结备份语句指定--ftwrl-wait-timeout=60,备份期间有select语句执行耗时超过60秒,FTWRL等待锁时间大于ftwrl-wait-timeout设置的时间,则
单表文件大小文件系统限制后删除部分数据仍无法插入新数据,报the table is full ...
环境信息 MySQL 5.7.21 文件系统 ext3问题描述 单表idb文件达到2T(ext3文件系统单文件最大限制),当表insert时会报错 the table is full,开发紧急delete掉6万行数据后,ibd文件大小未减小,insert新数据继续报错 the table is full 。(ps:临时应急:在未改变文件系统ext3的情况下,rename 旧表,建同名新表,确
MySQL ib_logfile current_lsn < page_lsn 导致一查询就崩,如何恢复
问题描述MySQL 5.7.21 业务表无法访问,select 业务表直接导致mysql crash,errorlog 里记录 [ERROR] InnoDB: Page [page id: space=49, page number=3] log sequence number 89266322606 is in the future! Current system log sequence nu
MySQL[bug] 子查询含用户变量,派生条件下推将导致不同版本的查询结果不一致
问题描述 相同SQL在不同MySQL版本中查询相同数据的查询结果不一致,高版本3.0.32查询结果符合预期(查询有结果),低版本8.0.25查询结果不符合预期(查询无结果)。 分析:业务SQL包含用户自定义变量赋值,SQL在不同版本的执行计划不一样,推测可能受optimizer_switch的影响。BUG定位参考:https://bugs.mysql.com/bug.php?i
MySQL 一个select把实例搞崩了,原来是表数据异常
问题背景几天前,该环境ibdata1的size被置为0,无法启动,使用传输表空间等特殊恢复手段,恢复数据到新实例。再次收到通知,MySQL无法访问了,来看看。错误日志如下起初,以为是一条关联select触发了mysql bug导致实例崩溃。相关表的表结构,如下所示。既然之前该实例是经过特殊恢复重建的,能不能把数据导出再导入呢?发现导出时 interface_mng 表访问存在异常。select c
MySQL 8.0.25 Bug 报"MY-013132 The table ...is full"
问题现象描述环境概述:MySQL 8.0.25;问题简述:2024/1/31 凌晨3点 应用批量报 The table ’/data_tmp/mysql_xx….’ is full 。表的大小9GB,报错SQL语句如下:SQL执行计划2.问题处理过程业务跑批失败的SQL语句,应用手工重新执行。3. 问题分析3.1 数据库错误日志:数据库mysql.err日志发现有相应的报错信息:错误信
MySQL 8.x ,查询performance_schema.data_locks造成整个实例 hang了?
问题描述MySQL 8.0.25 在 2023/12/22 10:17:36 左右 出现线程堵塞,正常情况下原本执行很快的sql执行效率陡降(比如:原本执行0.001秒的sql执行7秒仍未结束),导致十几笔交易超时。问题分析根据AWR处于非Sleep状态的用户线程,Time由高到低排序,执行耗时第一为Command处于Query执行耗时达30秒,是对 performance_schem
在启用所有PS性能模式工具的情况下,性能损耗过高,怎么办
问题描述启用所有性能模式工具后,会观察到以下一个或多个症状:MySQL的性能比较慢。CPU使用率高于正常水平。InnoDB信号量等待的次数高于正常情况,尽管显示引擎INNODB状态不一定显示任何信号量等待。问题原因这是由于启用了所有性能模式工具和使用者:SELECT ROUND(( &nbs
MySQL 如何重建/恢复删除的 sys Schema
sys模式包括表和触发器、视图以及存储过程和函数。如果需要重建/恢复删除 MySQL sys模式库,可以使用mysqldump从运行相同版本的另一个实例复制sys模式并导入到恢复实例中。参考:https://dev.mysql.com/doc/refman/8.0/en/sys-schema.html1、相同版本的另一个实例导出sys模式 mysq
MySQL innodb buffer pool 命中率以及缓存了哪些 InnoDB Table
本文适用于 MySQL服务器-版本5.7及更高版本逻辑I/O比物理I/O快很多倍。因此,DBA应该努力将物理I/O保持在最低水平。当数据被很好地缓存时,总的系统吞吐量是未被很好地缓存时的许多倍,这并不罕见,对于具有高负载或严格的服务质量目标的系统来说,出色的缓存命中率是非常需要的。InnoDB缓冲区缓存的命中率公式:100 * (1 - (innodb_buffer_pool_reads/inno
如何对xtrabackup 备份限制使用IO大小
场景:既不想备份太慢,又不想备份影响线上业务,有什么办法?在innobackupex 2.4版本中,有两个参数用来限制备份速度:在percoan官方网站上对throttle参数有如下解释:实验:throttle参数设置为2,备份消耗IO速度在40MB/s左右。结论: 设置throttle参数,则备份消耗IO大小为: throttle参数值*20MB/S (经验值)不设置throttle
MySQL什么时候轮换二进制日志
MySQL何时旋转二进制日志?有几种情况会触发二进制日志循环:binlog大小大于max_binlog_sizeMySQL重新启动。执行 FLUSH [BINARY] LOGS 命令 ( 刷新日志关闭并重新打开所有日志文件。如果启用了二进制日志记录,则二进制日志文件的序列号会相对于前一个文件增加1 ) mysqldump --flush-logs (-F)参考:https://dev.
MySQL 缺少主键的表的性能下降的原因
MySQL 为什么缺少主键的表的性能下降?因为每个Innodb表都是一个索引组织的表,每个Innodb表的 leaf level 都由一个键标识。如果表上定义了主键,则该主键标识每一行。对于表上定义的每个附加索引(非主键索引),主键被附加在索引键上,以标识表叶级别的行。当表上没有定义主键时会发生什么?MySQL服务器为每个表行生成一个行ID,称为DB_ROW_ID。DB_ROW_ID的大小是一个6
Mysql 如何限制创建非主键表
表的主键对MySQL性能与稳定有重大影响,表设计强制要求每个表必须有主键,可以规避很多不必要的异常问题。MySQL 主从延迟最常见的情况是,由于相关表上缺少主键,应用RBR event (ROW或MIXED for binlog_format)时出现长时间延迟。这是因为在源上执行事务的SQL可以利用任何可用的键或直接表扫描,而在副本上应用行事件时不使用SQL。相反,来自源二进制日志的行事件逐行应用
MySQL服务器如何获取更改了哪些配置设置
从配置文件或在运行时修改了一些设置(持久化或非持久化),如何向您显示值是什么以及它们是如何设置的。全局变量该变量是从全局选项文件中设置的。首先,让我们列出我们在服务器中配置的所有全局变量:SELECT t1.VARIABLE_NAME, VARIABLE_VALUE, &nbs
MySQL 8.x 不访问OS日志文件,分析 Performance_Schema.error log
使用MySQL DBAAS时,DBA不能直接访问OS文件系统上的文件。希望在MySQL 8.x中,错误日志也可以在性能模式查询。列出了错误日志中的最后10个条目select * from (select * from performance_schema.error_log order by logged&n
Mysql 不开general log与audit log ,如何跟踪用户与数据库的连接记录
如何创建一个简单的审计,检查哪些数据库用户已经成功连接到数据库。MySQL提供了一个名为init_connect的全局变量,每次用户成功连接到正在运行的数据库服务器的模式时,都会执行这个变量。如果在下面的示例中,连接用户没有执行由变量定义的代码的权限,连接将被终止。因为init_connect是一个全局变量,所以无法排除一部分用户(SUPER或CONNECTION_ADMIN权限的用户不执行ini
MySQL复制中源和副本之间数据不匹配的可能原因
什么原因可能导致源和副本之间的数据差异?在错误的位置开始复制。跳过复制错误。副本设置不正确。配置不正确。不正确的维护。基于语句复制的不安全语句。直接在副本上工作的用户。在源上禁用sql_log_bin。复制筛选处理不当。复制限制。数据损坏。软件漏洞。等等。例如,如果在更改复制源命令中使用了不正确的位置,复制副本将会错过一些事件或尝试重新执行一些事件,这可能会导致源和复制副本上的一些表之间存在差异。
MySQL 如何获取执行中的Queries信息?
适用于:MySQL服务器-版本5.6及更高版本目的: 了解MySQL中执行了哪些查询,并获得它们的统计数据。查询信息的主要来源是 performance_schema.events_statements_summary_by_digest 。此表根据规范化查询的前1024个字符以及执行这些查询的默认模式来聚集数据。它包括诸如查询执行了多少次、总/平均/最小/最大执行次数、是否使用了索引等信息。 e
Mysql 如何更改default collation_connection setting
客户端连接到服务器时,如何更改默认的“collation_connection”设置,这会影响文字和函数。按照设计,collation_connection设置为每个客户端指定的字符集的默认排序规则。例如,如果服务器版本为8.0,并且客户端指定了utf8mb4,则在建立连接后,collation_connection将为utf8mb4_0900_ai_ci。客户端只能指定字符集,不能在连接时指定排