07 2019 档案

摘要:对于MySQL 5.7版本,可以使用sys.session视图来查看会话最后一次执行的SQL: 其中sys.session视图关联到sys.processlist,而sys.processlist又使用到`performance_schema`.`events_statements_current` 阅读全文
posted @ 2019-07-29 20:35 TeyGao 阅读(3171) 评论(0) 推荐(0) 编辑
摘要:存储问题排查 1、检测磁盘空间使用率 df -lh 注意系统目录的可用空间 2、检查磁盘inode使用 df -i 参考:https://www.cnblogs.com/gaogao67/p/10883049.html 3、检查磁盘IO使用率 iostat -dxk 1 参考:https://www 阅读全文
posted @ 2019-07-28 19:05 TeyGao 阅读(429) 评论(0) 推荐(0) 编辑
摘要:gh-ost工作原理 gh-ost与pt-osc对比 gh-ost工作模式 1、连接主库直接修改 2、连接从库间接应用到主库 两者不同的点就在于,通过连接从库来进行变更,对主库的性能影响最小 数据一致性问题 由于使用binlog获得的数据总是新于或者等于从源表拷贝的数据:1、在应用binlog导出的 阅读全文
posted @ 2019-07-18 21:46 TeyGao 阅读(789) 评论(0) 推荐(0) 编辑
摘要:Xtrabackup介绍 Xtrabackup是由Percona公司研发的开源热备工具,支持MYSQL 5.0 以上版本。 由于Xtrabackup支持备份innodb表,实际生产环境中我们使用的工具是innobackupex,它是对xtrabackup的一层封装。innobackupex 脚本用来 阅读全文
posted @ 2019-07-18 16:00 TeyGao 阅读(304) 评论(0) 推荐(0) 编辑
摘要:BINLOG中的TABLE_ID 在ROW格式的二进制中,事件信息中没有列的信息,需要通过Table_Map将表名对于的表信息加载到cache中,然后根据事件信息中的列下标来定位到数据列,每次表信息加载到Cache中时,会得到一个自增的ID值,即Table_ID: 在基于行的复制模式下,为什么BIN 阅读全文
posted @ 2019-07-17 21:34 TeyGao 阅读(530) 评论(0) 推荐(0) 编辑
摘要:复制工作原理(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);(2) slave将master的binary log events拷贝到它的中继日志(relay log);(3) slave重做中继日志中的事件,将 阅读全文
posted @ 2019-07-17 20:59 TeyGao 阅读(534) 评论(0) 推荐(0) 编辑
摘要:RELAY LOG相关参数 设置如何保存从节点接收到的主库BINLOG 设置如何保存从节点接收主库BINLOG的进度信息 设置如何保存从节点上应用RELAYLOG的进度信息 设置如何恢复RELAY LOG 如果从节点上relay_log_info_repository= file 或sync_rel 阅读全文
posted @ 2019-07-17 18:30 TeyGao 阅读(1653) 评论(0) 推荐(0) 编辑
摘要:MGR复制架构 在MySQL 5.7.17版本正式推出组复制(MySQL Group Repliation MGR),用来解决异步复制和半同步复制可能产生数据不一致的问题,组复制依靠分布式一致性协议(Paxos协议变体)来实现"数据最终一致性",并提供单主模式下自动选主的高可用解决方案。 MySQL 阅读全文
posted @ 2019-07-17 16:09 TeyGao 阅读(6400) 评论(0) 推荐(1) 编辑
摘要:MGR部署 场景描述: 使用三台服务器搭建一个简单MGR集群,使用MySQL 5.7.24版本,服务器列表为: 1、使用普通配置文件启动MySQL服务,安装MGR插件(所有节点执行) 2、调整MySQL各节点的配置文件并重启MySQL服务(所有节点执行) 未安装MGR插件前在配置文件加入MGR配置会 阅读全文
posted @ 2019-07-17 10:29 TeyGao 阅读(2288) 评论(0) 推荐(0) 编辑
摘要:主键索引维护 1、新增主键索引 2、删除主键索引 3、删除并新增主键索引 4、修改主键列类型 二级索引维护 1、新增二级索引 2、删除二级索引 3、修改二级索引名 4、修改二级索引列类型 自增属性修改 1、修改普通主键列为自增主键列 2、修改自增主键列为普通主键列 3、修改表自增开始值 列属性修改 阅读全文
posted @ 2019-07-12 17:58 TeyGao 阅读(1749) 评论(0) 推荐(0) 编辑
摘要:pt-osc和online ddl选择 1、如果表存在触发器,不能使用pt-osc。2、如果新增唯一索引,不建议使用pt-osc,以免数据丢失。3、修改索引、外键、列名时,优先选择使用ALGORITHM=INPLACE的online ddl4、数据量较小的表,优先选择online ddl5、数据量较 阅读全文
posted @ 2019-07-11 16:40 TeyGao 阅读(368) 评论(0) 推荐(0) 编辑
摘要:修改命令参数alter 1、不需要包含alter table关键字,可以包含多个修改操作,使用逗号分开,如"drop clolumn c1, add column c2 int" 2、不支持rename语句来对表进行重命名操作 3、不支持对索引进行重命名操作 4、如果删除外键,需要对外键名加下划线, 阅读全文
posted @ 2019-07-11 16:01 TeyGao 阅读(1221) 评论(0) 推荐(0) 编辑
摘要:pt-osc执行日志 在对数据量为100000的表tb004做DROP COLUMN操作,pt-osc工具日志为: pt-osc工具对MySQL执行的SQL命令为: 常规检查和设置 创建触发器 第一次数据拷贝 在第一次数据拷贝前,先执行下面EXPLAIN语句获取表数据量: 如果表数据量较少,则选择通 阅读全文
posted @ 2019-07-10 19:26 TeyGao 阅读(448) 评论(0) 推荐(0) 编辑
摘要:工作流程 工具限制 ALTER 语句限制 数据一致性与加锁 唯一索引 数据拷贝 拷贝数据Chunk设置 触发器 主机性能影响 从库复制延迟 修改主键 通常情况下,我们会采用自增列来作为主键,优点是主键列长度小且业务无关,假设当前表使用业务主键,需要将业务主键修改为自增主键,并将业务主键修改为唯一索引 阅读全文
posted @ 2019-07-10 16:58 TeyGao 阅读(446) 评论(0) 推荐(0) 编辑
摘要:半同步复制 默认配置下,MYSQL主从库通过binlog来保持一致,主库事务提交后,将binlog日志写入磁盘,然后返回给用户,备库通过拉取主库的binlog来同步主库的操作,无法保证主备节点数据实时一致,只能保证最终一致,因此属于异步复制。 为保证在主备切换时,主备节点数据完全一致,MYSQL提供 阅读全文
posted @ 2019-07-08 18:14 TeyGao 阅读(3622) 评论(0) 推荐(0) 编辑
摘要:事务组提交和多线程复制 在MySQL 5.7版本引入基于LOGICAL_CLOCK的多线程复制,依赖于BINLOG事件中的last_committed属性,该last_committed属性是否与事务组提交特性有关呢? 测试环境: 虽然参数binlog_group_commit_sync_no_de 阅读全文
posted @ 2019-07-08 17:00 TeyGao 阅读(617) 评论(0) 推荐(0) 编辑
摘要:多线程复制 多线程复制MTS(Mult-Threaded Slave Applier)指使用多个线程来并发应用二进制日志。在MYSQL5.6版本中,多线程复制基于schema来实现,将多个数据库下的事务按照数据库拆分到多个线程上执行,保证数据库级别的事务一致性。在MYSQL5.7版本后,多线程复制基 阅读全文
posted @ 2019-07-08 15:40 TeyGao 阅读(1803) 评论(0) 推荐(0) 编辑
摘要:在线主库切换(Online master switch)条件 1、所有节点正常运行,无论时原主还是新主或者其他从库 2、主库正常,能获取到相关主库信息如Server-ID和BINLOG位点信息。 3、MHA Manager/Monitor处于关闭状态 4、主库和从库上没有超大事务(默认参数runni 阅读全文
posted @ 2019-07-06 20:54 TeyGao 阅读(1101) 评论(0) 推荐(0) 编辑
摘要:GTID和非GTID故障切换模式选择 MySQL 5.6版本引入GTID来解决主从切换时BINLOG位置点难定位的问题,MHA从0.56版本开始支持基于GTID的复制,在切换时可以采用GTID模式和非GTID模式两种模式进行切换,如何在发生故障切换时如何判断采用哪种切换方式呢? 在MHA/Maste 阅读全文
posted @ 2019-07-06 18:11 TeyGao 阅读(1967) 评论(1) 推荐(0) 编辑
摘要:问题描述 在系统中发现一条执行时间为为44652.060734秒(12.5小时)的慢SQL,SQL语句为: 对于执行计划为: 由于两个表上都使用全表扫描,需要循环外表ob_internal_task记录1654884次*内表ob_internal_orderstatus记录622596次=10303 阅读全文
posted @ 2019-07-05 11:34 TeyGao 阅读(270) 评论(0) 推荐(0) 编辑
摘要:浮点数(Floating-Point Types) MySQL支持两种浮点数类型来表示近似值:1、FLOAT,单精度浮点数,使用4字节存储,存储数据范围3.402823466E+38 - -1.175494351E-38,0,1.175494351E-38 - 3.402823466E+382、DO 阅读全文
posted @ 2019-07-03 11:29 TeyGao 阅读(727) 评论(0) 推荐(0) 编辑
摘要:自增锁模式 在MYSQL 5.1.22版本前,自增列使用AUTO_INC Locking方式来实现,即采用一种特殊的表锁机制来保证并发插入下自增操作依然是串行操作,为提高插入效率,该锁会在插入语句完成后立即释放,而不是插入语句所在事务提交时释放。该设计并发性能太差,尤其在大批量数据在一条语句中插入时 阅读全文
posted @ 2019-07-02 23:19 TeyGao 阅读(1267) 评论(0) 推荐(0) 编辑
摘要:DECIMAL和NUMERIC MySQL支持两种定点数类型:DECIMAL和NUMERIC,而NUMERIC实现为DECIMAL,因此MySQL中DECIMAL和NUMERIC等价相同。 如使用下面建表语句: 表创建完成后显示的建表语句: 当列被定义为DECIMAL(5,2)时,5为精度,2为刻度 阅读全文
posted @ 2019-07-02 11:25 TeyGao 阅读(680) 评论(0) 推荐(0) 编辑
摘要:Change Buffer功能 当执行INSERT/DELETE/UPDATE三类DML操作需要修改二级索引上数据时,如果需要修改的二级索引页未存在于当前Buffer Pool中,可以先将该"修改操作"进行缓存,等待其他操作加载二级索引页时,再将“修改操作”合并到二级索引页中,以减少二级索引修改产生 阅读全文
posted @ 2019-07-01 00:10 TeyGao 阅读(313) 评论(0) 推荐(0) 编辑