
MySQL
文章平均质量分 90
Fan_-_
菜的不行
展开
-
Orchestrator Lastest Slave选择逻辑“不合理“导致的数据丢失问题
首先说明, “不合理"只是站在个人角度的结论. 到底合理不合理, 我说了不算.以我对Orchestrator的了解, Orchestrator目标是追求可用性优先, 而非数据完整性. 很多公司也使用了Orchestrator, 我感觉未必知道有这个问题, 或者说, 别问, 问就是"我们追求可用性”.然而矛盾的点是, 线上主从的复制延迟是大家都要监控和管理的, 不会长期处于高延迟状态, 起码我经历的公司都是这样, 99.9%的集群主从延迟在1s内. 个别集群在高峰期会升高一点, 但很快又会下降;原创 2022-09-23 16:57:37 · 672 阅读 · 2 评论 -
orchestrator配置参数详解-III
配置参数详解-IIIApplyMySQLPromotionAfterMasterFailover类型: bool默认值: true当为true 时, orchestrator 将在选举出的新主库上执行reset slave all 和set read_only=0 . 默认: true . 当该参数为true 时, 将覆盖MasterFailoverDetachSlaveMasterHost .Should orchestrator take upon itself to apply MySQL原创 2022-02-07 22:24:54 · 1819 阅读 · 0 评论 -
orchestrator配置参数详解-Ⅱ
配置参数详解-ⅡClusterNameToAlias类型: map[string]string默认值: make(map[string]string)就是可以定义集群的别名. 配置文件示例是这样的 "ClusterNameToAlias": { "127.0.0.1": "test suite" // 感觉例子不好, 集群名字怎么会是127.0.0.1呢 },map between regex matching cluster name to a human friendly原创 2022-02-07 22:23:43 · 2399 阅读 · 0 评论 -
orchestrator配置参数详解-Ⅰ
配置参数详解-Ⅰorchestrator/conf 下有几个实例配置文件orchestrator-ci-env.conf.jsonorchestrator-ci-upgrade.conf.jsonorchestrator-raft-env.conf.jsonorchestrator-sample.conf.jsonorchestrator-sample-sqlite.conf.jsonorchestrator-simple.conf.jsonsimple和sample区别不大.参数的解原创 2022-02-07 22:22:09 · 2626 阅读 · 1 评论 -
MySQL page cleaner占用CPU较高问题
文章目录背景说明问题产生问题原因定位占用CPU真凶pc_sleep_if_needed是否持续缓慢刷脏sync flushnormal flushidle flush这里就是问题的关键:如何处理?背景说明众所周知, Seconds_Behind_Master 无法准确反应复制延迟. 为了准确的反应复制延迟, 业界的办法是, 创建一个延迟监控表, 周期性(往往是每秒)更新这个表的时间戳字段, 计算当前时间与该字段差值, 因此判断复制延迟. 典型的例子是Percona的pt-heartbeat. 另外TID原创 2021-10-15 15:30:48 · 833 阅读 · 0 评论 -
Percona 8.0 bug: Subquery returns more than 1 row
这是一个Percona Server8.0.22下使用MGR+ProxySQL时遇到的bug使用mydumper备份mgr时发现ProxySQL报错了# cat proxysql.log | grep -i subquery2021-04-28 15:14:22 MySQL_HostGroups_Manager.cpp:3875:update_group_replication_set_offline(): [WARNING] Group Replication: setting host 172.1原创 2021-04-28 21:08:33 · 406 阅读 · 1 评论 -
skeema简单使用
skeema简单使用Skeema is a tool for managing MySQL tables and schema changes in a declarative fashion using pure SQL. It provides a CLI tool allowing you to:Export CREATE TABLE statements to the filesystem, for tracking in a repo (git, hg, svn, etc)Diff cha原创 2021-02-18 13:16:10 · 512 阅读 · 0 评论 -
MHA Failover测试-下
MHA Failover测试-下[用例测试] master挂了, 且slave也有问题1(部分slave宕机)master挂了, 在此之前slave-1宕机了ping_type=CONNECT启动manager后, 关闭slave-1Sat Oct 10 10:28:35 2020 - [info] MHA::MasterMonitor version 0.58.Sat Oct 10 10:28:37 2020 - [info] GTID failover mode = 1Sat Oct原创 2021-02-07 22:25:13 · 286 阅读 · 0 评论 -
MHA Failover测试-上
TL;DR用例ping_type=CONNECTping_type=INSERTmaster too many connection不会触发failover不会触发failovermaster hang不会触发failover会触发failover且成功仅manager无法连通master不会触发failover不会触发failovermanager无法连通master, 且无法ssh slave1不会触发failover不会触发failover原创 2021-02-07 22:24:21 · 442 阅读 · 0 评论 -
Streaming MySQL Backups with Percona XtraBackup – Another Alternative
文章目录[Streaming MySQL Backups with Percona XtraBackup – Another Alternative](https://www.percona.com/blog/2021/01/08/streaming-mysql-backups-with-percona-xtrabackup-another-alternative/)以下示例操作中的环境信息步骤Streaming MySQL Backups with Percona XtraBackup – Anothe翻译 2021-01-09 09:59:13 · 189 阅读 · 0 评论 -
类MHA高可用方案存在的问题
类MHA高可用方案存在的问题MHA Generaly Available since 2011?MHA在当时主要解决两个问题:自动的数据补偿自动的主从切换还有两个重要的背景需要交代:当时主要使用异步复制当时还没有ProxySQL所以当时基本使用MHA+VIP作为MySQL复制集的高可用方案.不谈vip的脑裂问题, 这种架构的一个关键点在于, MHA是作为一个外部机制检测MySQL复制集状态, 并变更复制集拓扑, 变更后漂移vip, 也就是说MHA既控制了集群拓扑的变化, 又控制了a原创 2020-12-31 14:12:58 · 953 阅读 · 0 评论 -
使用Canal + ClickHouse实时分析MySQL事务信息
使用Canal + ClickHouse实时分析MySQL事务信息作为DBA, 有时候我们会希望能够了解线上核心库更具体的"样貌", 如:这个库主要的DML类型是什么?这个库的事务大小, 执行时间, 影响行数大概是什么样的?以上信息也许没什么价值, 但大事务对复制的影响不用多说, 并且当我们希望升级当前主从架构到MGR/PXC等高可用方案的场景时以上信息就比较重要了(毕竟用数据说话更有力度).大事务对MGR和PXC都是不友好的, 尤其是MGR(起码在5.7版本)严重时会导致整个集群hang死原创 2020-12-31 14:02:41 · 2141 阅读 · 5 评论 -
innodb_status_file,innodb_status_output,innodb_status_output_locks和innodb_show_verbose_locks.md
innodb_status_file,innodb_status_output,innodb_status_output_locks和innodb_show_verbose_locks.mdinnodb_status_file这个参数官方文档https://dev.mysql.com/doc/refman/5.7/en/server-system-variable-reference.html 中没有在https://dev.mysql.com/doc/refman/5.7/en/innodb-par原创 2020-09-13 10:37:08 · 1391 阅读 · 0 评论 -
为什么pt-osc和gh-osc在拷贝源表数据时要使用insert IGNORE into select lock in share mode
为什么pt-osc和gh-osc在拷贝源表数据时要使用insert IGNORE into select lock in share modeinsert IGNORE into select lock in share mode 的作用pt-osc和gh-osc在拷贝旧数据时逻辑是一样的, 都是用insert ignore into 影子表 select * from 原表force index (PRIMARY) where chunk范围 lock in share modept-oscIN原创 2020-08-23 19:02:16 · 392 阅读 · 0 评论 -
MySQL动态行转列
MySQL动态行转列通过max行转列不是动态的, 你还是要知道所有列名才可以root@localhost 17:46:56 [fanboshi]> select * from t3;+----+---------+------+-----------+| id | title | env | progress |+----+---------+------+-----------+| 1 | 工单1 | 1 | 完成 || 2 | 工单1 | 2原创 2020-08-23 18:53:39 · 1301 阅读 · 0 评论 -
Galera 4 Streaming Replication in Percona XtraDB Cluster 8.0
文章目录Galera 4 Streaming Replication in Percona XtraDB Cluster 8.0What Is Streaming Replication, in One Sentence?Will Streaming Replication Decrease This Delay?Why Could It Be Slower With Streaming Replication?Does the Fragment Size Matter?LockingMetrics/Mon翻译 2020-05-16 23:05:25 · 277 阅读 · 0 评论 -
New Feature in Percona XtraDB Cluster 8.0 – Streaming Replication
文章目录New Feature in Percona XtraDB Cluster 8.0 – Streaming ReplicationWithout Streaming ReplicationWith Streaming ReplicationNew Feature in Percona XtraDB Cluster 8.0 – Streaming ReplicationPercona XtraDB Cluster 8.0附带了一个升级的Galera 4.0库, 它提供了一个新特性—Streamin翻译 2020-05-16 23:03:48 · 348 阅读 · 0 评论 -
Group Replication and Percona XtraDB Cluster: Overview of Common Operations
Group Replication and Percona XtraDB Cluster: Overview of Common Operations在这篇博客文章中,我将概述使用MySQL Group Replication 8.0.19 (aka GR 国内爱叫MGR发现国外还是习惯叫GR)和Percona XtraDB Cluster 8 (PXC)(基于Galera)时最常见的故障转移场...翻译 2020-05-03 12:25:00 · 238 阅读 · 0 评论 -
A Simple Approach to Troubleshooting High CPU in MySQL
A Simple Approach to Troubleshooting High CPU in MySQL我们的一位客户最近问,是否有可能从MySQL方面识别导致系统CPU使用率高的查询。 PostgreSQL和Oracle DBA长期以来一直使用简单的OS工具查找罪魁祸首,但是它对MySQL无效,因为历史上我们一直缺乏将OS线程与内部线程进行匹配的工具 - 直到最近。Percona添加了支...翻译 2020-05-03 12:24:19 · 220 阅读 · 0 评论 -
sysbench修改输出格式2
sysbench修改输出格式2之前<<修改sysbench输出格式为csv或json, 添加自定义指标>>介绍了如何修改输出格式为csv和json以及如何加hook自定义增加压测输出指标然而我每次还都是用默认的输出然后自己用了一堆屎命令去格式化, 类似这样原始输出[ 5s ] thds: 16 tps: 1269.60 qps: 25437.17 (r/w/o: 1...原创 2020-04-07 16:12:25 · 543 阅读 · 0 评论 -
Canal dynamicTopic问题续
Canal dynamicTopic问题续最近在新公司搭了一套canal. 按照<<dynamicTopic问题>>设置了canal.mq.topic和canal.mq.dynamicTopic意图将一些不符合dynamicTopic匹配的语句的消息发送到一个默认的topic而避免报错INVALID_TOPIC_EXCEPTION# table regexcanal...原创 2020-03-07 21:39:05 · 3746 阅读 · 0 评论 -
Canal dynamicTopic问题
Canal dynamicTopic问题未来同事跑了几个月的canal突然报下面的错, 使用了dynamicTopic. 其实我没有用过dynamicTopic, 只能搜一搜issue关于dynamicTopic和partitionHash的说明canal.mq.dynamicTopic 表达式说明canal 1.1.3版本之后, 支持配置格式:schema 或 schema.table...原创 2020-03-07 21:37:59 · 4986 阅读 · 0 评论 -
canal.mq.flatMessage参数
canal.mq.flatMessage是否为json格式如果设置为false,对应MQ收到的消息为protobuf格式需要通过CanalMessageDeserializer进行解码canal.mq.flatMessage = true 生产到kafka的消息就是json的, 否则就是protobuf二进制的$bin/kafka-console-consumer.sh --bootst...原创 2020-03-07 21:36:24 · 4323 阅读 · 1 评论 -
0.58 MHA 基于GTID的恢复不会从原Master拉取差异日志且不再需要relay_log_purge=0!
MySQL MHA–故障切换模式(GTID模式和非GTID模式)MHA with binlog server这两篇文章结论就是MHA has changed failover procedure when turn on GTID.1.If you want to use binlog server you must open GTID (I don’t know why Yoshi d...原创 2020-03-01 21:52:35 · 798 阅读 · 0 评论 -
MHA 一个slave宕机的影响
文章目录环境说明运行前有节点宕机运行中有点节点宕机环境说明IP角色备注mha4mysql-nodemha4mysql-manager192.168.98.11master读写√192.168.98.10slave只读√192.168.98.12slave只读√192.168.98.13manager节点N/A√√...原创 2020-03-01 17:23:49 · 849 阅读 · 0 评论 -
master_ip_failover_script脚本何时被调用
文章目录master_ip_failover_script脚本调用启动masterha_manager时Failover时调用两次master_ip_failover_script脚本调用master_ip_failover_script脚本是failover时用的. 默认的示例脚本其实就一个main函数, 判断--command的值做操作, 就收三种:stop || stopsshst...原创 2020-03-01 17:22:32 · 675 阅读 · 0 评论 -
MHA向send_report传递的参数
文章目录何时被调用接收到的参数何时被调用failover最后调用接收到的参数这个比较好搞, 我们在配置文件中定义脚本report_script=/etc/masterha/scripts/send_report然后写一个shell脚本[root@localhost 21:19:04 /etc/masterha/scripts]#cat send_reportecho "1:$1...原创 2020-03-01 17:21:04 · 941 阅读 · 0 评论 -
Mysql数据类型介绍
#写的不好轻喷整数类型Mysql中提供多种对于数值的数据类型不同的数据类型取值范围不同取值范围越大,需要的存储空间也越大日期和时间类型Mysql中提供多种用于存储日期和时间的类型根据需要选择,并注意格式YEAR(M) M可以选择2或4 分别对用YY和YYYY 。 如果是2位数的年份,存储范围为1970-2069,如果是4位数的原创 2015-01-27 13:39:41 · 576 阅读 · 0 评论 -
Mysql存储引擎简介
#写的不好轻喷被ORACLE收购以后默认是INNODB引擎MyISAMMysql5.5.5之前的默认存储引擎支持大文件,通常认为是256TB适合读多写少的应用场景每个MyISAM表的最大索引数是64,可以通过编译改变BLOB和TEXT类型可以被索引支持全文索引仅支持表锁非事务性引擎不支持事务性操作.frm文件存储表定义、.MYD数原创 2015-01-27 13:41:12 · 980 阅读 · 0 评论 -
Mysql向表中循环插入数据
今天学习Mysql,做实验时想向一个标准插入1000行数据,在oracle中类似于这样beginfor i in 1..1000 loopinsert ..end loop;end;/但是Mysql中不支持匿名块百度了一下,方法如下:首先设置delimiter delimiter的作用:告诉解释器,这段命令是否已经结束了,mysql是否可以执行了 默认情况下,delimiter是原创 2015-06-20 18:27:23 · 39172 阅读 · 1 评论 -
Mysql事务隔离级别
scott@PROD>select * from dept1; DEPTNO DNAME LOC---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAG原创 2015-06-28 23:04:24 · 727 阅读 · 0 评论 -
Mysql最简单的复制环境部署方法
最简单的复制环境部署方法 这里环境如下: Master一直没有写操作 Master和Slave在一台虚拟机中,端口号分别为3306和3307 1.关闭Master数据库服务mysqladmin -umysql -p -S /data/mysqldata/3306/mysql.sock shutdown2.复制数据文件cp -r /data/mysqldata/原创 2015-07-08 17:35:47 · 923 阅读 · 0 评论 -
Mysqldump
查看帮助mysqldump --help-?,--help帮助信息-u,--user指定连接的用户名-p,--password指定用户的密码,可以只指定参数,mysqldump随后将提示输入密码-S,--socket指定socket文件连接,本地登录才会使用-h,--原创 2015-07-07 09:03:37 · 705 阅读 · 0 评论 -
Mysql 异常处理--condition和handler
定义条件和处理条件的定义和处理可以用来定义在处理过程中遇到问题时相应的处理步骤。1.条件的定义 DECLARE condition_name CONDITION FOR condition_value condition_value: mysql_error_code | SQLSTATE [VALUE] sqlstate_valuedeclare..cond原创 2016-08-05 10:52:42 · 5493 阅读 · 0 评论 -
Mysql -流程控制
流程控制 Flow Control StatementsMySQL支持 IF, CASE, ITERATE, LEAVE LOOP, WHILE, 和 REPEAT 语句进行流程控制 MySQL不支持FOR LOOPS循环1.CASE语句 CASE case_value WHEN when_value THEN statement_list [WHEN when_原创 2016-08-05 16:40:48 · 786 阅读 · 0 评论 -
Mysql --prepare statement
Prepared Statementsfile:///Volumes/SamSung%20SD/Material/Mysql/refman-5.6-en.html-chapter/sql-syntax.html#sql-syntax-prepared-statements MySQL 5.6 provides support for server-side prepared statements翻译 2016-08-06 12:59:28 · 2648 阅读 · 0 评论 -
Mysql --Auto_increment详解
Auto_increment1.Innodb表的自动增长列可以手工插入,但是插入的值如果是空或者0,则实际插入的将是自动增长后的值mysql> create table t1(id int not null auto_increment primary key,name varchar(10));Query OK, 0 rows affected (0.06 sec)mysql> desc t1;原创 2016-08-06 21:51:21 · 21315 阅读 · 0 评论 -
query cache
The MySQL Query Cache query cache缓存了select(查询)语句和它对应的结果集。当相同语句再次执行时,Mysql服务端会从query cache中取出结果返回给客户端,而不需要再去解析和执行这条sql语句了。query cache在会话间是共享的,通过一个会话缓存的结果集可以被另一个会话使用。 每一个cached query需要最少两个blo原创 2016-08-07 01:07:08 · 717 阅读 · 0 评论 -
mysql启动
Mysql启动配置文件夹在路径Mysql启动方式Mysql启动的内部流程常见启动故障及分析过程Mysql启动配置文件加载路径 Mysql可以读取到的配置文件 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/原创 2016-08-07 01:07:40 · 699 阅读 · 0 评论 -
keepalived
如果只有LVS那么只可以实现负载均衡,但可能会出现一种情况: 当lvs集群中某个节点出现故障,此时如果分配请求给该节点,会出现错误 比如web服务器,正常的节点可以访问页面,而故障节点无法打开页面 此时就需要keepalived,从集群中剔除故障节点keepalived主要实现三个功能:1.实现ip地址飘移。比如有A和B两个节点,默认前端应用连接的是A节点的IP地址原创 2016-08-07 01:08:47 · 1941 阅读 · 0 评论