自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FaN()

FuxkDB.com

  • 博客(238)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Orchestrator Lastest Slave选择逻辑“不合理“导致的数据丢失问题

首先说明, “不合理"只是站在个人角度的结论. 到底合理不合理, 我说了不算.以我对Orchestrator的了解, Orchestrator目标是追求可用性优先, 而非数据完整性. 很多公司也使用了Orchestrator, 我感觉未必知道有这个问题, 或者说, 别问, 问就是"我们追求可用性”.然而矛盾的点是, 线上主从的复制延迟是大家都要监控和管理的, 不会长期处于高延迟状态, 起码我经历的公司都是这样, 99.9%的集群主从延迟在1s内. 个别集群在高峰期会升高一点, 但很快又会下降;

2022-09-23 16:57:37 529 2

原创 Orchestrator - server_id相同导致graceful-master-takeover-auto失败

其实还没来得及翻代码, 同事就已经发现新加的三个从库server_id与原集群提供备份节点的server_id是一样的, 所以基本猜测就是server_id导致。同事要做一个数据库迁移, 方法就是加从库, 然后主从切换, 再下掉老主库, 完成迁移。继续梳理代码可以发现。这里我部署1主4从, 虽然比线上实际少了一个从库, 但不影响复现问题.原本是一主两从集群, 增加三个从库变为一主无从。使用命令切换时报错(以下是本地测试复现的命令)原生的问题是, 没有输出这段错误信息。通过对日志中关键字的搜索, 发现。

2022-09-03 00:09:36 602

原创 Orchestrator Failover过程源码分析-III

Orchestrator Failover过程源码分析-III书接上文Orchestrator Failover过程源码分析-IIGetCandidateReplica// RegroupReplicasGTID will choose a candidate replica of a given instance, and take its siblings using GTIDfunc RegroupReplicasGTID( masterKey *InstanceKey, // 实参传

2022-05-15 17:01:53 711 4

原创 Orchestrator Failover过程源码分析-II

Orchestrator Failover过程源码分析-II书接上文Orchestrator Failover过程源码分析-IDeadMaster恢复流程首先通过getCheckAndRecoverFunction获取"checkAndRecoverFunction"func getCheckAndRecoverFunction(analysisCode inst.AnalysisCode, analyzedInstanceKey *inst.InstanceKey) ( checkAndR

2022-05-15 16:37:16 519 3

原创 Orchestrator Failover过程源码分析-I

模拟故障使用测试环境, 模拟3307集群故障角色IP端口主机名主库172.16.120.103307centos-1从库172.16.120.113307centos-2从库172.16.120.123307centos-3关闭3307主库172.16.120.10:3307[2022-04-25 13:10:56][root@centos-1 13:10:56 ~][2022-04-25 13:11:22]#systemctl stop

2022-05-14 21:22:48 1281 3

原创 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 1482

原创 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 2221

原创 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 2259

原创 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 588

原创 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 333 1

原创 TC命令recipe-1

所有网络请求增加20秒延迟tc qdisc add dev ens33 root netem delay 20000ms执行以下命令的服务器对来自172.16.120.10的网络请求会延迟180毫秒, 来自其他服务器的网络请求不受影响tc qdisc del dev ens33 root # 清除之前的规则tc qdisc add dev ens33 root handle 1: priotc filter add dev ens33 protocol ip parent 1: prio 1

2021-02-23 10:27:55 638

原创 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 380

原创 DorisDB vs ClickHouse vs TIDB 实际业务SQL测试

DorisDB vs ClickHouse vs TIDB的SSB测试可以参考这篇文章DorisDB、TiDB/TiFlash、ClickHouse性能对比-SSB测试-单多表场景环境信息:硬件信息ClickHouse:6台 16vCPUs | 64GB | 超高IO SSDDorisDB:3台 8vCPUs | 16GB | 超高IO SSDTIDB:26台TIKV 8vCPUs | 64GB | 本地NVME SSD3台TIDB 32vCPUs | 256GB3台

2021-02-17 14:15:54 5717 6

原创 DorisDB vs ClickHouse SSB对比测试

DorisDB vs ClickHouse SSB对比测试TL;DR进行本次测试时对DorisDB了解甚微本次测试由于服务器资源有限, 没有严格遵循单一变量原则进行测试本次测试有一定参考意义数据导入速度ClickHouse: 3500sDorisDB: 5160s数据压缩情况(通过磁盘占用空间比较)ClickHouse: 85.2GDorisDB: 132G查询速度单表查询DorisDB1DorisDB2ClickHouse1ClickHouse2

2021-02-12 17:37:02 7188 9

原创 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 240

原创 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 373

翻译 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 142

原创 类MHA高可用方案存在的问题

类MHA高可用方案存在的问题MHA Generaly Available since 2011?MHA在当时主要解决两个问题:自动的数据补偿自动的主从切换还有两个重要的背景需要交代:当时主要使用异步复制当时还没有ProxySQL所以当时基本使用MHA+VIP作为MySQL复制集的高可用方案.不谈vip的脑裂问题, 这种架构的一个关键点在于, MHA是作为一个外部机制检测MySQL复制集状态, 并变更复制集拓扑, 变更后漂移vip, 也就是说MHA既控制了集群拓扑的变化, 又控制了a

2020-12-31 14:12:58 764

原创 使用Canal + ClickHouse实时分析MySQL事务信息

使用Canal + ClickHouse实时分析MySQL事务信息作为DBA, 有时候我们会希望能够了解线上核心库更具体的"样貌", 如:这个库主要的DML类型是什么?这个库的事务大小, 执行时间, 影响行数大概是什么样的?以上信息也许没什么价值, 但大事务对复制的影响不用多说, 并且当我们希望升级当前主从架构到MGR/PXC等高可用方案的场景时以上信息就比较重要了(毕竟用数据说话更有力度).大事务对MGR和PXC都是不友好的, 尤其是MGR(起码在5.7版本)严重时会导致整个集群hang死

2020-12-31 14:02:41 2044 5

转载 MacOS 10.15安装brew 安装openssl1.0.2

3.7.0 import ssl报错, 因为装mysql时装了1.1.1i版本openssl, 3.7.0 要用1.0.2https://stackoverflow.com/questions/59155991/downgrade-to-openssl-version-1-0-from-1-1-on-macDownload the file: https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rbRun brew

2020-12-15 22:49:50 1559

原创 ClickHouse到底应该写分布式表还是写本地表?

TL;DR如果预估自己的业务数据量不大(日增不到百万行), 那么写分布式表和本地表都可以, 但要注意如果选择写本地表, 请保证每次写入数据都建立新的连接, 且每个连接写入的数据量基本相同如果预估自己的业务数据量大(日增百万以上, 并发插入大于10), 那么请写本地表建议每次插入50W行左右数据, 最多不可超过100W行. 总之CH不像MySQL要小事务. 比如1000W行数据, MySQL建议一次插入1W左右, 使用小事务, 执行1000次. CH建议20次,每次50W. 这是MergeTree引擎原

2020-09-22 10:18:20 10792 6

原创 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 1253

原创 ClickHouse查询分布式表LEFT JOIN改RIGHT JOIN的大坑

ClickHouse查询分布式表LEFT JOIN改RIGHT JOIN的大坑由一个慢查询衍生出的问题我们线上有一个ClickHouse集群, 总共6个服务器, 配置均为16C 64G SSD, 集群配置为三分片两副本有两个表这里称为small_table和big_table. 都是ReplicatedMergeTree引擎(三个分片两个副本).small_table有79w数据, big_table有5亿数据(数据在之后的示例中没有任何变化), 在下文中small_table和big_table都

2020-08-29 07:12:45 7874 2

翻译 ClickHouse Materialized Views Illuminated, Part 1

ClickHouse Materialized Views Illuminated, Part 1[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9cwj734-1598180858744)(https://altinity.com/wp-content/uploads/2020/02/4c9e8-stockvault-abstract-background-big-data-concept264047.jpg)]Altinity blog的读者们知道我们喜欢ClickH

2020-08-23 19:08:14 284

翻译 ClickHouse Materialized Views Illuminated, Part 2

ClickHouse Materialized Views Illuminated, Part 2[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nC6EAUZZ-1598180802773)(https://altinity.com/wp-content/uploads/2020/02/d1a1c-stockvault-abstract-glowing-multicolor-wireframe-background268674_small.png)]Read part 1

2020-08-23 19:07:23 296

原创 为什么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 344

原创 ProxySQL升级时对默认部署的实例的影响

ProxySQL升级时对默认部署的实例的影响公司有使用默认安装目录的ProxySQL跑业务. 在升级2.0.8 至 2.0.12的时候发现卸载2.0.8后这些使用默认方式安装的ProxySQL实例就会被关闭.原因是rpm包安装和卸载前后执行了一些动作[root@bj1-mysql-manager-prod-01 tmp]# rpm --scripts -qp /tmp/proxysql-2.0.8-1-centos7.x86_64.rpm preinstall scriptlet (using /

2020-08-23 18:56:57 229

原创 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 1234

原创 MGR单主到底做不做冲突检测?

和同事探讨一个问题, MGR单主做不做冲突检测.我理解是不需要做的, 因为已经明确只有主节点才能写入数据了, 那么必然不会有数据冲突的可能, 没必要再做冲突检测浪费性能了.看了下官方文档In single-primary mode, Group Replication enforces that only a single server writes to the group, so compared to multi-primary mode, consistency checking can be

2020-06-18 22:21:52 619 4

翻译 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 222

翻译 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 304

翻译 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 182

翻译 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 174

翻译 ClickHouse In the Storm. Part 2: Maximum QPS for key-value lookups

ClickHouse In the Storm. Part 2: Maximum QPS for key-value lookups上一篇文章调查了ClickHouse的连接性基准,以估计服务器并发的总体性能。 在本文中,我们将以实际示例为例,并在涉及实际数据时探讨并发性能。MergeTree: Key-value lookup让我们看看MergeTree引擎表如何处理高并发性,以及它能够处...

2020-05-03 12:10:29 417

翻译 ClickHouse In the Storm. Part 1: Maximum QPS estimation - 最大QPS估算

ClickHouse In the Storm. Part 1: Maximum QPS estimation - 最大QPS估算ClickHouse是一个用于分析的OLAP数据库, 因此典型的使用场景是处理相对少量的请求:每小时几个查询到每秒几十甚至几百个查询影响大量数据(gigabytes/millions of rows)但是它在其他情况下表现如何? Let’s try to u...

2020-05-03 12:07:05 1625

原创 ClickHouse集群多实例部署

ClickHouse多实例部署本人刚接触ClickHouse两周, 难免有错误之处, 感谢指正. 另外一些参数我也不甚理解, 大家也可以先不必纠结参数, 先部署起来再说, 我的感触是部署后就会对整体结构有了一遍认识. 如果多实例都可以部署完毕, 那么生产单实例部署当然就不成问题了.生产环境并不建议多实例部署, ClickHouse一个查询可以用到多个CPU, 本例只适用于测试环境部署规划...

2020-05-03 12:04:42 9703 21

原创 Kafka版本升级

Kafka版本升级本文档介绍kafka_2.11_2.1.1升级到2.12-2.4.1的具体操作方法. 其他版本大同小异, 详见1.5 Upgrading From Previous Versions升级前检查项1.确认是否有副本因子是1的Topicbin/kafka-topics.sh --zookeeper localhost:2182 --describe|grep "Replica...

2020-04-15 23:35:34 1720

原创 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 440

原创 使用Ansible自动部署MGR中生成group_replication_group_seeds值的方法

使用Ansible自动部署MGR中生成group_replication_group_seeds值的方法生成group_replication_group_seeds值的方法网卡不统一之前我是通过groups['mfw_test'] | map('extract', hostvars, ['ansible_all_ipv4_addresses'])这种形式, 去一个inventory gro...

2020-03-20 13:00:14 841

原创 使用python消费canal protobuf格式数据

canal -> kafka -> consumer. flatMessage=False参考 canal Python客户端.由于canal Python客户端是作为canal的client直连canal 11111端口消费数据而非消费kafka数据, 所以example不能照搬, 需要做一些修改Python3.7.4requrimentsbackcall==0.1.0b...

2020-03-19 22:51:51 1182

MongoDB实战 Kyle Banker

MongoDB开发者现身说法 由浅入深、注重实践 涵盖MongoDB开发及运维 “作者是10gen的人,对所有细节都了如指掌。读这本书,就好像跟一位领域专家对话,一切都讲得那么简洁明了,浅显易懂。所有MongoDB用户都应该看一看。” “与市面上其他同类主题的书相比,这本书是最好的。” ——亚马逊读者评论 MongoDB是为处理大数据而生的一款面向文档的数据库,由10gen公司开发和维护。本书作者Kyle Banker曾在该公司负责MongoDB驱动程序的维护,对各方面技术细节都了如指掌,本书也是在大量第一手资料的基础上形成的,其权威性毋庸置疑。 本书基于MongoDB 2.0+,全面系统地讲解了设计、实现、安装和维护MongoDB的各方面内容。全书分三部分,第一部分从基于文档的数据与传统关系型数据库的差别讲起,介绍了MongoDB的基本概念及安装使用。第二部分是一个实战式教程,结合示例讲解了MongoDB的CRUD操作,以及实现系统安全、灵活和高效的设计原则及模式。第三部分侧重数据库的维护和管理,深入到MongoDB背后的技术细节,给出了对管理员和开发者都极有价值的建议。 本书篇幅适中,内容深浅得当,文字通俗易懂,再配以直观形象的插图和贴近实战的代码示例,非常适合MongoDB学习者、开发人员及管理员学习参考。 本书内容 MongoDB介绍及其优劣势 MongoDB的Shell界面 使用MongoDB的简单应用 如何通过以文档为中心的方式看待数据 编写查询,以MapReduce方式聚合数据 更新和删除数据及相关性能考量 寻找和改进慢查询 MongoDB的复制与分片 MongoDB的监控、备份及恢复 (作者介绍) Kyle Banker 软件工程师,曾工作于10gen公司,负责维护Ruby及C语言的官方MongoDB驱动、领导MongoDB文档项目并开发培训课程,且为客户提供咨询、商业支持和培训;现任职于Snapjoy(为用户提供默认私有的在线照片备份和自动管理服务)。个人网站http://kylebanker.com/blog。 (译者介绍) 丁雪丰 一线“攻城师”一枚,InfoQ中文站小编,满江红翻译组核心成员,常年混迹于各种社区,业余时间写作、翻译、汉化软件,《RESTful Web Services Cookbook中文版》、《Spring攻略》等多部书的译者。

2016-09-18

Nagios通过飞信发送告警短信配制方法

1.虚拟机联网方法 2.LINUX下安装使用飞信发送短信方法 3.与Nagios结合实现短信报警 4.出现错误无法发送解决

2015-01-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除