随笔分类 - DBA
摘要:比如一张大表,底层ibd文件大约是50G-100G,或者你理解成一张大表200G以上吧。哈哈!!! 利用硬链接和truncate降低drop table对线上环境的影响 在drop table的时候,所有进程不管是DDL还是DML都被hang起,直到drop结束才继续执行; 这是因为InnoDB会维
阅读全文
摘要:一、前提 1.当数据被误删除/误操作后,第一时间要关闭数据库。业务方需要紧急挂停机公告,避免数据二次污染,用于保护数据的一致性。 2.binlog格式为ROW格式,不讨论其他格式的binlog。 二、数据被误操作(update/delete/drop)造成数据丢失,可以用哪些手段来恢复? 1.bin
阅读全文
摘要:一、生产环境中: 1、几种复制场景都有存在的价值。下面分别描述一下: 2、从成熟度上来选择,推荐:异步复制(GTID+ROW)。 3、从数据安全及更高性能上选择:增强半同步 (在这个结构下也可以把innodb_flush_log_trx_commit调整到非1, 从而获得更好的性能)。 4、对于主从
阅读全文
摘要:MySQL备份,使用xtrabackup备份全实例数据时,会造成锁等待吗?那么如果使用mysqldump进行备份呢? 一、xtrabackup和mysqldump会造成锁等待吗? xtrabackup会,它在备份时会产生短暂的全局读锁FTWL(flush table with read lock),
阅读全文
摘要:MySQL高可用架构应该考虑什么?你认为应该如何设计? 一、MySQL高可用架构应该考虑什么? 1、对业务的了解,需要考虑业务对数据库一致性要求的敏感程度,切换过程中是否有事务会丢失。 2、对于基础设施的了解,需要了解基础设施的高可用的架构。例如 单网线,单电源等情况。 3、对于数据库故障时间掌握,
阅读全文
摘要:你为什么会决定进行分库分表,分库分表过程中遇到什么难题,如何解决的? 一、为什么决定进行分库分表? 1、根据业务类型,和业务容量的评估,来选择和判断是否使用分库分表。 2、当前数据库本事具有的能力,压力的评估。 3、数据库的物理隔离,例如减少锁的争用、资源的消耗和隔离等。 4、热点表较多,并且数据量
阅读全文
摘要:MySQL主从复制什么原因会造成不一致,如何预防及解决? 一、导致主从不一致的原因主要有: 1、人为原因导致从库与主库数据不一致(从库写入)。 2、主从复制过程中,主库异常宕机。 3、设置了ignore/do/rewrite等replication等规则。 4、binlog非row格式。 5、异步复
阅读全文
摘要:用什么方法可以防止误删数据? 以下几个措施可以防止误删数据,如下: 1、生产环境中,业务代码尽量不明文保存数据库连接账号密码信息。 2、重要的DML、DDL通过平台型工具自动实施,减少人工操作。 3、部署延迟复制从库,万一误删除时用于数据回档,且从库设置为read-only。 4、确认备份制度及时有
阅读全文
摘要:MySQL每天产生了多大容量的binlog,用SQL语句能查到吗? 首先,这是个假设性命题(又一个钓鱼题)。 这个需求完全可以通过系统层命令,配合MySQL中的“FLUSH BINARY LOGS”快速完成。 运行SHOW MASTER/BINARY LOGS命令能查看全部binlog列表,但没办法
阅读全文
摘要:你遇到过哪些原因造成MySQL异步复制延迟? 1、master上多为并发事务,salve上则多为单线程回放(MySQL 5.7起,支持真正的并行回放,有所缓解)。 2、异步复制,本来就是有一定延迟的(否则也不叫做异步了,介意的话可以改成半同步复制)。 3、slave机器一般性能比master更弱(这
阅读全文
摘要:为什么说 pt-osc 可能会引起主从延迟,有什么好办法解决或规避吗? 若复制中binlog使用row格式,对大表使用pt-osc把数据从旧表拷贝到临时表,期间会产生大量的binlog,从而导致延时。 pt-osc在搬数据过程中insert...select是有行锁的,会降低事务并行度;且pt-os
阅读全文
主从复制线程均正常(为Yes,也没报错),Master的binlog已到binlog.000100,但slave上看到Master_Log_File却只到binlog.000090,可能的原因有哪些?
摘要:主从复制线程均正常(为Yes,也没报错),Master的binlog已到binlog.000100,但slave上看到Master_Log_File却只到binlog.000090,可能的原因有哪些? 首先要注意,这是Master_Log_File IO线程延迟,并不是Relay_Master_Lo
阅读全文
摘要:明明有个索引“感觉”应该被选中,EXPLAIN时在possible_keys也有它,但最后没被选中,可能的原因有哪些? 一、执行计划如下: desc select * from t1 where c2 >= 2; key: NULL key_len: NULL rows: 14 filtered:
阅读全文
摘要:跑truncate table,4亿条数据会不会造成长时间锁表呢?有什么更好的方法吗? 最好是create新表,然后交叉rename对调,再drop/truncate table或其他方式清除数据。 一、可操作步骤: 创建新的 tmp 表,正式表与tmp表表名交换(注意在一个SQL里完成,并锁表)
阅读全文
摘要:MySQL 8.0相对于5.7的复制改进,都有哪些呢? 一、普通复制功能改进 新增WRITESET并行复制模式,提高并行度,降低延迟。 在多源复制中,可在线动态修改每个channel的filter rule,并且能在P_S中查看/监控。 Binary Log中存储更多元数据,并支持毫秒级别的延迟监控
阅读全文
摘要:MySQL数据导入数据仓库Hadoop有哪几种方式? 1.传统方式,采用mysqldump等工具将数据文件上传至HDFS。 2.使用Sqoop Kettle等ETL工具,将数据表对应导入Hive的数据表。 3.使用kafka+flume方案,将mysql binlog通过流式采集的方式导入Hadoo
阅读全文
摘要:MySQL hang住的原因有哪些? 1.MySQL使用资源过高导致服务器太累扛不住。例如CPU、内存、 I/O等开销。 2.磁盘无可用空间。 3.MySQL频繁的创建和销毁连接。 4.MySQL使用的最大文件打开数和连接数,超过了操作系统的限制。 5.MySQL的锁不能有效的释放。例如持有行锁或者
阅读全文
摘要:MySQL 8.0 InnoDB哪些新特性你最期待,为什么? 1.数据字典全部采用InnoDB引擎存储,支持DDL原子性、crash safe,metadata管理更完善。 2.快速在线加新列(腾讯互娱DBA团队贡献)。 3.并行redo log,并提升redo log的I/O性能。 4.新增倒序索
阅读全文
摘要:如何优化Linux操作系统用于MySQL环境? 一、初级玩法 1. 在BIOS及内核层面关闭NUMA。 2. 在BIOS层面将CPU、内存均设置最大性能模式。 3. 在BIOS层面关闭CPU节能模式。 4. 修改IO Scheduler为deadline 或 noop。 5. 使用xfs文件系统,挂
阅读全文
摘要:在MySQL中如果发现乱码的情况该如何判断原因及应对? 1、直接修改法。alter或者pt-osc等其他工具直接对数据进行修改。 2、备份修改法。利用mysqldump或者其他逻辑备份进行备份,备份的结果集再利用iconv进行转换。 3、跳过字符集备份。利用mysqldump备份的时候跳过字符集-t
阅读全文