Mysql
文章平均质量分 77
Data & safety
这个作者很懒,什么都没留下…
展开
-
pt-archive使用
pt-archive使用转载 2022-08-07 18:06:46 · 1793 阅读 · 0 评论 -
聊一聊 MySQL 中的数据编辑过程中涉及的两阶段提交
MySQL 数据库中的两阶段提交,不知道您知道不?这篇文章就简单的聊一聊 MySQL 数据库中的两阶段提交,两阶段提交发生在数据变更期间(更新、删除、新增等),两阶段提交过程中涉及到了 MySQL 数据库中的两个日志系统:redo 日志和 binlog 文件。redo 日志前面已经介绍过了,就不再介绍了,简单的聊一聊 binlog 文件,binlog 是 MySQL server 层提供的二进制文件,因此所有的存储引擎都可以使用 binlog 功能,binlog 是追加写的逻辑日志,记录了执行语句的原始转载 2022-04-05 15:15:39 · 586 阅读 · 1 评论 -
MySQL innoDB 中的锁升级
什么是锁升级?锁升级是指将当前锁的粒度降低,如一把行锁升级唯一把页锁,或者将页锁升级为表锁,如果在数据库设计中认为锁是一中稀有资源,哪么就会频繁有锁升级的现象发生锁升级的现象当一条SQL语句对一个对象上持有的锁数量超锁了阈值,默认这个阈值为5000,但是对于不同对象不会发生锁升级锁资源占用的内存超过激活内存的百分之40 就会发生锁升级但是!!!!!innoDB 引擎不存在锁升级的问题,因为其不是根据每个记录来产生啊行锁的,是根据每个事务访问的每个页对锁进行管理的。其实吧,这个根据页.转载 2022-03-28 22:10:23 · 857 阅读 · 0 评论 -
MySQL自增锁模式innodb_autoinc_lock_mode参数理解调优
前段时间某数据表运行过程中,出现自增字段突然跳跃式增长的问题,潜心研究发现,问题导致原因可能是因为并发写入导致于是通过各种途径查阅是因为innodb_autoinc_lock_mode参数设置的不同表现所在,于是进行了调整,在此对该参数的理解记录一二。官方原文地址:https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html#innodb-auto-increment-initialization中文翻译地转载 2021-07-10 20:44:04 · 1666 阅读 · 0 评论 -
MySQL自增锁模式innodb_autoinc_lock_mode参数详解
innodb_autoinc_lock_mode这个参数控制着在向有auto_increment 列的表插入数据时,相关锁的行为;通过对它的设置可以达到性能与安全(主从的数据一致性)的平衡【0】我们先对insert做一下分类 首先insert大致上可以分成三类: 1、simple insert 如insert into t(name) values('test') 2、bulk insert 如load data | insert into ... select .... from.转载 2021-07-10 20:35:30 · 462 阅读 · 0 评论 -
MySQL高可用探索之orchestrator
摘要:使用orchestrator实现mysql主从自动切换、故障转移、拓扑管理。部署MySQL环境(一主两从)IP:端口 角色 版本 192.168.30.113:4406 master Percona 5.7.24-27-log CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 192.168.30.118:4406 slave Percona 5.7.24-27-log CentOS转载 2021-02-22 10:42:26 · 1329 阅读 · 0 评论 -
orchestrator基础和安装
orchestrator是一款开源对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。 orchestrator后台依赖于MySQL存储元数据,能够提供Web界面展示MySQL集群的拓扑关系及实例状态,可以通过Web界面可更改MySQL实例的部分配置信息,同时也提供命令行和api接口,以便更加灵活的...转载 2021-02-22 10:40:59 · 1024 阅读 · 0 评论 -
MySQL5.6 PERFORMANCE_SCHEMA 说明
背景: MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。MySQL5.5默认是关闭的,需要手动开启,在配置文件里添加:[mysqld]performance_schema=ON查看是否开启:mysql>show variables like 'performance_schema'...转载 2021-02-19 17:53:50 · 349 阅读 · 0 评论 -
分析Mysql表读写、索引等操作的sql语句效率优化问题
上次我们说到mysql的一些sql查询方面的优化,包括查看explain执行计划,分析索引等等。今天我们分享一些 分析mysql表读写、索引等等操作的sql语句。闲话不多说,直接上代码:反映表的读写压力 1 2 3 4 5 6 7 8 SELECT file_name AS file, count_read, sum_number_of_bytes_read AS total_re...转载 2021-02-19 17:48:11 · 270 阅读 · 0 评论 -
应用示例荟萃 | performance_schema全方位介绍(下)
3. 查看最近的SQL执行信息3.1 查看最近的top sql使用performance_schema中的语句当前事件记录表和语句事件历史记录表可以查询数据库中最近执行的一些SQL语句,以及语句相关的信息,这里我们以events_statements_history表为例,查询结果按照语句完成时间倒序排序,如下:root@localhost:performance_schema04:33:33>selectTHREAD_ID,EVENT_NAME,SOURCE...转载 2021-02-19 13:55:51 · 356 阅读 · 0 评论 -
应用示例荟萃 | performance_schema全方位介绍(上)
经过前面6个篇幅的学习,相信大家对什么是performance_schema,已经初步形成了一个整体认识,但我想很多同行看完之前的文章之后可能还是一脸懵逼,今天就为大家带来performance_schema系列的最后一个篇章(全系共7个篇章),在这一期里,我们将为大家列举数十个performance_schema应用示例。下面,请跟随我们一起开始performance_schema系统的学习之旅吧。1.利用等待事件排查MySQL性能问题通常,在生产服务器上线之前, 我们会对数据库服务器的硬件.转载 2021-02-19 13:54:33 · 327 阅读 · 0 评论 -
复制状态与变量记录表 | performance_schema全方位介绍
不知不觉中,performance_schema系列快要接近尾声了,今天将带领大家一起踏上系列第六篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解performance_schema中的复制状态与变量统计表。下面,请跟随我们一起开始performance_schema系统的学习之旅吧~01复制信息统计表通常,DBA或相关数据库运维人员在查看从库的复制相关的信息,都习惯性的使用show slave status语句查看。也许你会说,我也会用performance_schema下的表查看转载 2021-02-19 09:29:49 · 300 阅读 · 0 评论 -
数据库对象事件与属性统计 | performance_schema全方位介绍
上一篇《事件统计 | performance_schema全方位介绍》详细介绍了performance_schema的事件统计表,但这些统计数据粒度太粗,仅仅按照事件的5大类别+用户、线程等维度进行分类统计,但有时候我们需要从更细粒度的维度进行分类统计,例如:某个表的IO开销多少、锁开销多少、以及用户连接的一些属性统计信息等。此时就需要查看数据库对象事件统计表与属性统计表了。今天将带领大家一起踏上系列第五篇的征程(全系共7个篇章),本期将为大家全面讲解performance_schema中对象事件统计表..转载 2021-02-19 09:25:14 · 543 阅读 · 0 评论 -
事件记录 | performance_schema全方位介绍
导语在上一篇《配置详解 | performance_schema全方位介绍》中,我们详细介绍了performance_schema的配置表,坚持读完的是真爱,也恭喜大家翻过了一座火焰山。相信有不少人读完之后,已经迫不及待的想要跃跃欲试了,今天将带领大家一起踏上系列第三篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解performance_schema中事件原始记录表。下面,请跟随我们一起开始performance_schema系统的学习之旅吧。等待事件表...转载 2021-02-18 20:29:59 · 350 阅读 · 0 评论 -
配置详解 | performance_schema全方位介绍
| 导语在上一篇《初相识 | performance_schema全方位介绍》中粗略介绍了如何配置与使用performance_schema,相信大家对performance_schema能够为我们提供什么样的性能数据已经有一个初步的认识,今天将带领大家一起踏上系列第二篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解performance_schema配置方式以及各个配置表的作用。下面,请跟随我们一起开始performance_schema系统的学习之旅吧。| ...转载 2021-02-18 20:19:58 · 859 阅读 · 0 评论 -
利用performance_schema进行故障诊断(mysql金字塔法则读书笔记)
instrunments:生产者,用于采集mysql中各种操作产生的事件信息,对应配置表中的配置项,我们可以称之为采集配置项。consumers:消费者,对应的消费者用于存储来自instruments采集的数据,对应配置表的配置项,我们可以称之为消费存储配置项。启用所有等待事件的instruments:use performance_schemaupdate setup_instruments set enabled='yes',timed='yes' where name like 'w.转载 2021-02-18 17:45:50 · 1285 阅读 · 0 评论 -
简单理解什么是数据库CDC?(以mysql为例)
一、数据库CDC是什么CDC 是change data capture,即变化数据捕捉。是数据库进行备份的一种方式,常用于大量数据的备份工作。分为入侵式的和非入侵式的备份方法,入侵式的有基于触发器备份、基于时间戳备份、基于快照备份,非入侵式的备份方法是基于日志的备份。mysql 基于日志的CDC就是要开启mysql binary log。二、Mysql基于日志的CDC配置1、查看mysql是否开启Binlogshow variables like 'log_bin';若变量log_bi转载 2021-02-04 09:48:07 · 9165 阅读 · 0 评论 -
mysql实现高可用架构之MHA
目录一、简介 二、MHA 服务 2.1 服务角色 2.2提供的工具 2.3工作原理 三、实现过程 3.1 准备实验 Mysql 的 Replication 环境 3.1.1 相关配置 3.1.2 初始主节点 master 的配置 3.1.3 所有 slave 节点依赖的配置 3.1.4 配置一主多从复制架构 3.2 安装配置MHA 3.2.1 在 master 上进行授权 3.2.2 准备 ssh 互通环境 3.2.3 安装 MHA..转载 2021-01-21 22:00:41 · 307 阅读 · 0 评论 -
MySQL MHA部署实战
MySQL MHA部署环境:CentOS7master 192.168.1.4slave1 192.168.1.5slave2 192.168.1.2mha 192.168.1.7安装依赖yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN安装转载 2021-01-20 21:58:40 · 350 阅读 · 0 评论 -
MySQL主备库切换(MHA)演练与总结
演练包括被动切换和主动切换两部分。被动切换是主库宕机,主动切换是人工手动触发。演练步骤大致如下: 1 先停掉主库,模拟主库宕机 2 mha将vip切到备库,备库变成主库,应用可以正常读写数据库 3 重新启动宕机的原主库 4 在原主库上建立同步关系(根据宕机时,日志记录的binlog的文件名和偏移量,恢复从这里开始) 5 mha手动切换主库,还原到最初状态,应用可以正常读写数据库 6 演练结束演练过程问题总结:...转载 2021-01-19 22:00:16 · 674 阅读 · 0 评论 -
MySQL高可用方案MHA在线切换的步骤及原理
在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小。MHA就提供了这样一种优雅的方式,只会堵塞业务0.5~2s的时间,在这段时间内,业务无法读取和写入。集群信息角色 IP地址 ServerID 类型Master ...转载 2021-01-19 21:53:53 · 711 阅读 · 0 评论 -
PostgreSQL与MySQL版权比较
前言作为开源数据库的杰出代表,主要来对比PostgreSQL与MySQL的版权。版权可以理解为许可(License),直接与开源协议的描述相关,下面来看一下两者的许可表述。PostgreSQL许可PostgreSQL许可是一种自由的开源许可,与BSD或MIT许可证类似。1994年之前的部分版权属于加利福尼亚大学董事会;1996年-2020年,部分版权属于PostgreSQL全球开发小组;全球开发小组主要成员分散在世界各地,其背后不受任何公司实体控制,这使其成为一个真正的开放项目。BSD.转载 2021-01-14 11:38:34 · 698 阅读 · 0 评论 -
Mysql的收费方式
网络上多数朋友担心甲骨文会对MySQL软件采用收费模式,多数朋友也不清楚MySQL开源到底是什么模式,开源=免费嘛?是很多的疑问,MySQL是遵守双重协议的,一个是GPL授权协议,一个是商用授权协议(注释:为解决其他企业用MySQL软件牟利或引用了MySQL的源代码而不想开源),虽然www.mysqlops.com也有写关于MySQL版权的来龙去脉,但是这篇文章写更透彻与详尽,特转载ITPUB上的帖子,希望大家能够更加清晰!最近刚把MySQL和GPL的玩法搞明白,很是惭愧,居然花了这么久的时间才想通。不.转载 2021-01-14 11:24:07 · 3777 阅读 · 0 评论 -
Mysql查看连接数(连接总数、活跃数、最大并发数)
1 2 show variables like'%max_connection%'; 查看最大连接数 setglobal max_connections=1000; 重新设置最大连接数 1 2 3 4 5 6 7 8 9 10 11 mysql> show status like'Threads%'; +-...转载 2021-01-11 11:29:53 · 819 阅读 · 0 评论 -
mysql 查哪些表建了唯一索引
select a.table_id,a.name,b.name,b.type frominformation_schema.INNODB_SYS_TABLES a left outer join information_schema.INNODB_SYS_INDEXES b on a.table_id=b.table_id and b.type in (2)where a.name like 'smart_park%'order by a.name转载 2021-01-10 20:35:18 · 598 阅读 · 0 评论 -
从库并行回放死锁问题分析
一、背景生产环境有一套 MySQL 集群,架构为一主两从,其中一个从库设置了延迟复制,延迟时间为 1 天。某天在巡检实例时,发现这个延迟从库延迟时间已经超过 1 天,且延迟不停的在增加,在监控上查看数据库状态是正常的,其他两台实例也没有出现问题。登录数据库show slave status查看状态发现 IO 线程和 SQL 线程的状态都是YES,但实际上 SQL 线程已经出现了报错,信息如下(部分信息已省略):Slave_IO_Running:YesSl...转载 2021-01-10 10:43:35 · 676 阅读 · 0 评论 -
MySQL slave相关参数
init_slave设定每次SQL thread启动时执行的语句。log_slave_updates是否将复制线程执行的内容记录到binlog。log_slow_slave_statements如果从库开启慢日志,是否将复制线程执行的慢SQL记录到慢日志。注意如果master的binlog格式是row,则无论log_slow_slave_statements是否开启都不会记录复制相关的慢日志。slave_allow_batchingNDB引擎参数,控制是否开启复制线程批量更新。sla转载 2021-01-08 19:36:19 · 534 阅读 · 0 评论 -
MySQL 8.0能彻底解决困扰运维的复制延迟问题!
MySQL 8.0可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前Generally Available版本已经已经发布,在此将介绍8.0版本中引入的一个重要的新特性——基于WriteSet的并行复制方案,此方案号称是彻底解决困扰MySQL运维人员多年的复制延迟问题。说到并行复制,这里简单的回顾一下各个版本的MySQL复制的演进,以帮助理解8.0版本中对并行复制MTS的优化。一、MySQL主从复制模型一切都要从MySQL的主从复制模型开始说起,下图是最经典的MySQL主从转载 2021-01-04 20:41:26 · 1214 阅读 · 1 评论 -
MySQL 8.0复制新特性
MySQL 8.0 复制功能有很大改进提升,并行复制性能与5.7相比可能提高数倍,是不是很期待?翻译团队:知数堂藏经阁项目 - 琅琊阁团队成员:琅琊阁-小剑伯、 琅琊阁-江b 、琅琊阁-简小鹿原文出处:https://severalnines.com/blog/what-s-new-mysql-replication-mysql-80原文作者:Krzysztof Ksiazek备注:发稿时,小编发现作者修改了原文,略尴尬哈截止目前(2017年8月),MySQL 8.0 仍然是 b.转载 2021-01-04 20:38:57 · 353 阅读 · 0 评论 -
mysql进阶(二十六)并行复制策略
如果备库执行日志的速度持续低于主库生成日志的速度,那这个延迟就有可能成了小时级别。而且对于一个压力持续比较高的主库来说,备库很可能永远都追不上主库的节奏。按表分发策略(略)按行分发策略(略)MySQL 5.6版本的并行复制策略官方MySQL5.6版本,支持了并行复制,只是支持的粒度是按库并行。MySQL 5.7的并行复制策略在MariaDB并行复制实现之后,官方的MySQL5.7版本也提供了类似的功能,由参数slave-parallel-type来控制并行复制策略: 配置.转载 2021-01-04 20:33:17 · 298 阅读 · 0 评论 -
binlog_transaction_dependency_tracking
控制事务依赖模式,让从库根据主库写入binlog中的 commit timestamps 或者 write sets 并行回放事务(引入该参数之后,binlog的格式记录的内容中增加了时间戳和write sets信息) 有三个取值: COMMIT_ORDERE:使用 5.7 本来就支持的Group commit 的方式决定事务依赖 WRITESET:使用 WriteSet 的方式决定判定事务直接的冲突,发现冲突则依赖冲突事务,否则按照 COMMIT_ORDERE 方式决定依赖 WRITES转载 2021-01-04 20:30:45 · 2161 阅读 · 0 评论 -
What’s New With MySQL Replication in MySQL 8.0
What’s New With MySQL Replication in MySQL 8.0MySQL复制从问世到现在已经经历了多个年头,它的稳定性和可靠性也在稳步的提高。这是一个不停进化的过程,由于MySQL的很多重要功能都是依赖于复制,所以复制的快速发展也是很容易理解的。在MySQL的上一个版本当中,MySQL通过实现真正意义的并行复制将复制的性能提升到了一个新的层面,因为在MySQL 5.6的版本中,虽然号称是实现了并行复制,但是并行复制是schema级别的,即如果binlog row eve转载 2021-01-04 20:28:04 · 230 阅读 · 0 评论 -
MySQL8.0.19 禁用Binlog,保留副本上的提交顺序
MySQL 8.0.19引入了无Binlog副本(保留事务提交顺序),这意味着用户可以在不启用二进制日志的情况下部署异步副本,并保留相同的顺序提交事务。用户可以禁用Binlog(skip-log-bin)和回放线程产生的日志(log-slave-updates = FALSE)进行的更改,同时保留相同提交顺序(slave-preserve-commit-order = TRUE)。对于基于writeset的依赖跟踪来实现事务并行化的用户来说,保持提交顺序是非常有用的。因此,用户现在可以在没有二进制...转载 2021-01-04 19:17:12 · 466 阅读 · 0 评论 -
MySQL binlog_transaction_dependency_tracking=commit_order和slave_preserve_commit_order的区别
binlog_transaction_dependency_tracking是设在主库,可以取commit_order,writeset,writeset_session,主要是控制binlog文件中last_committed的计算方式:commit_order即group commit,同在prepare阶段的事务,在binlog中last_committed数值一样,传到从库之后可以并行执行;writeset,会对事务处理的行数据哈希出一个writeset值,放到一个哈希表里,如果两个事务先后提交转载 2021-01-04 17:03:40 · 536 阅读 · 0 评论 -
谈谈MySQL的WriteSet并行复制
【历史背景】 岁月更迭中我已经从事MySQL-DBA这个工作三个年头,见证MySQL从“基本可用”,“边缘系统可以用MySQL”,“哦操!你怎么不用MySQL”; 正所谓!“一个数据库的境遇既取决于历史的进程,取决于它的自我奋斗!”,关于“历史的进程”在此不表,关于“自我奋斗”这里也只想谈一下 并行复制的几个关键时间结点 总的来说MySQL关于并行复制到目前为止经历过三个比较关键的时间结点“库间并发”,“组提交”,“写集合”;真可谓是江山代有人才出,前 浪死在沙滩上;总的.转载 2021-01-04 16:31:54 · 385 阅读 · 0 评论 -
MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化
MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一个重要的新特性————基于 WriteSet 的并行复制方案,此方案号称是彻底解决困扰MySQL运维人员多年的复制延迟问题。说到并行复制,这里简单的回顾一下各个版本的MySQL复制的演进,以帮助理解8.0版本中对并行复制MTS的优化。MySQL 主从复制模型一切都要从MySQL的主从复制..转载 2021-01-04 15:54:59 · 362 阅读 · 0 评论 -
datax 从mysql到mysql
需求:把a服务器上mysql数据迁移到b服务器上mysql中。1、下载datax: https://github.com/alibaba/DataX2.解压tar -zxvf datax.tar.gz3.编辑作业文件 diag.json{ "job": { "content": [ { "reader": { "name": "mysqlreader", ...转载 2020-12-31 17:58:49 · 711 阅读 · 0 评论 -
MySQL 二进制日志 数据同步
在当今互联网行业,大多数人互联网从业者对"单元化"、"异地多活"这些词汇已经耳熟能详。而数据同步是异地多活的基础,所有具备数据存储能力的组件如:数据库、缓存、MQ等,数据都可以进行同步,形成一个庞大而复杂的数据同步拓扑。 本文将先从概念上介绍单元化、异地多活、就近访问等基本概念。之后,将以数据库为例,讲解在数据同步的情况下,如何解决数据回环、数据冲突、数据重复等典型问题。1 什么是单元化 如果仅仅从"单元化”这个词汇的角度来说,我们可以理解为将数据划分到多个单元进行存储。"单元"是一个抽象的转载 2020-12-31 17:25:00 · 567 阅读 · 0 评论 -
mysql 优化之 is null ,is not null 索引使用测试
关于mysql优化部分,有很多网友说尽量避免使用is null, is not null,select * 等,会导致索引失效,性能降低?那是否一定收到影响呢?真的就不会使用索引了吗?本文的测试数据库版本为5.7.18,不同版本得出的结果可能会有所不同:本文测试的两张表数据如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE...转载 2020-12-27 10:35:33 · 584 阅读 · 0 评论 -
MySQL优化原理剖析
前言:MySQL架构体系首先分享实验前的基础知识,MySQL主要分为Server层与存储引擎层。Server层主要包含连接器、检索内存、分析器、优化器、执行器等,所有跨存储引擎的功能均于这一层构建,例如存储过程、触发器、视图,函数等,有一个标准化的binglog日志模块。存储引擎负责数据的存储与存取,使用可更换的插件式架构,拥有InnoDB、MyISAM、Memory等多个存储引擎,其中InnoDB引擎有redo log日志模块。如下图所示(图片来自网络,侵权联系...转载 2020-12-26 20:30:18 · 374 阅读 · 0 评论