随笔分类 - DBA
摘要:MySQL如何控制用户输错密码尝试次数? 一、插件辅助 从官方MySQL5.7.17开始,提供了CONNECTION_CONTROL和CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS插件,该插件又提供了connection_control_failed_connect
阅读全文
摘要:在主从服务器上,同一个表的表空间文件大小相差特别大,可能原因是什么,怎么解决? 可能的原因: 1、MySQL表默认是InnoDB引擎且目前索引只支持B+树索引,在数据的增删改过程中,会导致表产生碎片,主从服务器上同张表的碎片率不同也会导致表空间相差很大。 2、主库整理过碎片,从库是从原先的未整理的物
阅读全文
摘要:MySQL有哪些行锁,是如何解决幻读的? 行锁根据互斥的纬度可以分为: 1、共享锁:当读取当一行记录时为了防止别人修改则需要添加S锁。 2、排他锁:当修改一行记录时为了防止别人同时进行修改则需要添加X锁。 根据锁定的范围可以分为: 1、间隙锁:间隙锁锁定范围是索引记录之间的间隙或者第一个或最后一个索
阅读全文
摘要:为什么long_query_time设置了1秒,slow log中还会记录小于1秒的慢查询? 可能原因如下: 1、设置了全局的long_query_time未对当前连接生效。 2、打开了log_queries_not_using_indexes选项,记录了未走索引的SQL。
阅读全文
摘要:MySQL已启用了slow query log且long_query_time=0.01,为什么有些慢SQL还是没被记录呢? 1、在线动态设置long_query_time=0.01,但该设置对当前已建立的连接不会生效。 2、log_slow_admin_statements=0,因此ALTER、C
阅读全文
摘要:MGR集群中节点间数据一致性如何检查? 按原理上来说,MGR由paxos协议保证数据最终一致性,但是不排除人为因素导致数据不一致,可以采用如下方法来校验数据一致性。 大体思路(主体思想还是学习pt-table-checksum 和 mydumper的多线程备份): 1、由一个协调线程负责协调多个备份
阅读全文
摘要:MySQL错误日志出现 [Note] InnoDB: Discarding tablespace of table db.table: Data structure corruption产生可能的原因及解决办法? 一、产生原因 从错误日志即可判断出表空间ibd文件发生了物理损坏,那么其中的可能包括如
阅读全文
摘要:MySQL常见的主从复制错误有哪些?如何处理? 一、1032错误 1032错误即从库比主库少数据,分为UPDATE场景和DELETE场景。 UPDATE场景处理思路是: 1、主要处理思路是将丢失的数据在从库补上。 2、找到sql_thread停止位置(Relay_Master_Log_File +
阅读全文
摘要:MySQL中InnoDB表自增主键如何从0开始? 1、实际上,MySQL无法真正设置InnoDB表AUTO_INCREMENT=0 2、但是我们可以人为修改SQL_MODE='NO_AUTO_VALUE_ON_ZERO' 3、指定自增列插入0值,如insert into t(id,name) val
阅读全文
摘要:MySQL表中有自增列id,但是表中的id列数据不连续,产生的可能原因是什么? 可能的情况有如下几种: 1、虽然表定义了自增主键,但是插入时从全局ID生成器获取ID,导致每个表分配到的ID并不是连续的。 2、表中数据进行过删除。 3、session A插入了数据,获取了自增id为10,session
阅读全文
摘要:MySQL生产中上亿数据大表怎么在线增加一个字段并设定默认值? 一、MySQL8.0版本 如果满足以下条件: 1、不是压缩表 2、不是data dictionary tablespace 3、不是全文索引表 4、不是临时表 5、新增列在最后位置 满足以上条件,可以通过instant方式完成快速加列,
阅读全文
摘要:MySQL中analyze table的作用是?生产上操作会有什么风险? 一、analyze table的作用 1、analyze table 会统计索引分布信息。 2、对于 MyISAM 表,相当于执行了一次 myisamchk --analyze 3、支持 InnoDB、NDB、MyISAM 等
阅读全文
摘要:MySQL什么情况下DML操作不会记录binlog ? 以下情况可能会造成DML不会记录binlog: 1、并未开启binlog 2、在执行DML之前set sql_log_bin=0; 3、DML操作提交后,未完成binlog写入,此时MySQL crash,MySQL重新启动后,会回滚该操作。
阅读全文
摘要:想把MySQL有变更的数据分发到其他异构数据库,都有什么可选方案。 一、触发器方式(不推荐) 1、触发器处理的方式,在表上建立触发器,将增删改动作捕捉到增量表。 二、基于时间戳 1、表上如果有更新时间/插入时间的时间戳,可以根据时间戳捕捉增量数据。 三、基于binlog方式(推荐) MySQL目前比
阅读全文
摘要:InnoDB在什么情况下会触发检查点 checkpoint ? 一、MySQL的checkpoint分类 1、sharp checkpoint(激烈检查点,要求尽快将所有脏页都刷到磁盘上,对I/O资源的占有优先级高) 2、fuzzy checkpoint(模糊检查点,会根据系统负载及脏页数量适当平衡
阅读全文
摘要:alter table 出现duplicate primary xxx报错的原因及处理? 一、原因分析 1、Online DDL操作时MySQL会将DML操作缓存起来存入到变更日志。 2、等到DDL执行完成后再应用变更日志中的DML操作。 3、在Oline DDL执行期间,并行的DML可能会没先检查
阅读全文
摘要:MySQL 5.6升级到MySQL 5.7都有什么注意事项? 一、升级方式 MySQL升级的方式一般来说有两种 1、通过inplace方式原地升级,升级系统表 2、通过新建实例,高版本作为低版本的从库进行滚动升级 MySQL5.7版本做了非常多的改变,升级5.6到5.7时需要考虑兼容性,避免升级到5
阅读全文
摘要:为什么pt-osc操作表以后中文注释显示???,如何避免? 一般来说,生产环境使用的表都会使用中文注释表信息以及字段信息,但是如果使用pt-osc且未指定字符类型的情况下进行在线变更后,中文注释都会变成"???"。 虽然不影响正常使用,但是对于认为阅读起来会造成困扰,某些平台会依据注释生成数据字典。
阅读全文
摘要:高可用架构MHA有什么样的不足和风险点吗? MHA作为传统复制下的高可用霸主,在今天的GTID环境下,开始慢慢走向没落,更多的人开始开始选择replication-manager或者orchestrator等高可用解决方案 不足及风险点: 1、failover依赖于外部脚本,比如VIP切换需要自己编
阅读全文
摘要:MySQL DBA运维中那些动作属于危险性操作? 1、MySQL无备份、备份无校对。 2、执行rm -rf / tmp 等类似操作,执行rm前要三思。 3、执行kill -9等操作。 4、binlog 非row格式,执行dml操作(update、delete)。 5、在生产环境执行测试命令。或在生产
阅读全文