TiDB Syncer不同表名库名同步且支持pt-osc改表
mysql端库名叫sysbench, 表名sbtest11
tidb端库名ptosc_sysbench,表名ptosc_sbtest11
1 | [[replicate-do-table]] |
mysql端库名叫sysbench, 表名sbtest11
tidb端库名ptosc_sysbench,表名ptosc_sbtest11
1 | [[replicate-do-table]] |
尝试将10.133.1.46加入192.168.2.224的集群失败
需要设置参数group_replication_ip_whitelist
此参数虽然是动态参数, 但是要使之生效需要节点重新加入集群
To specify a whitelist manually, use the
group_replication_ip_whitelist
option. You cannot change the whitelist on a server while it is an active member of a replication group. If the member is active, you must issue aSTOP GROUP_REPLICATION
statement before changing the whitelist, and aSTART GROUP_REPLICATION
statement afterwards.
中控机是10.152.x.133
1 | [tidb_servers] |
因为MGR多主DDL和DML不能并发在不同节点执行, 而我们又存在即通过KO又通过ProxySQL访问的数据库的情况, 为了避免在发生故障, 我们决定将ProxySQL中配置的集群真实ip删除, 改为使用KO的vip.
本文介绍如何平滑下线ProxySQL节点, 从而做到对业务无感知.
KO我司自研php中间件
10.133.x.59 | 跑sysbench |
---|---|
10.133.x.52:3307 | 测试集群节点 |
10.133.x.53:3307 | 测试集群节点 |
10.133.x.54:3307 | 测试集群节点 |
VIP | 访问类型 | 所在服务器 |
---|---|---|
10.133.x.202 | KO | 10.133.x.202 |
10.133.x.203 | ProxySQL | 10.133.x.203 |
ProxySQL版本1
2
3
4
5
6
7admin@127.0.0.1 23:12:02 [(none)]> select version();
+-------------------+
| version() |
+-------------------+
| 2.0.8-67-g877cab1 |
+-------------------+
1 row in set (0.00 sec)
MySQL版本1
2
3
4
5
6
7root@localhost 23:17:56 [(none)]> select version();
+------------+
| version() |
+------------+
| 5.7.26-log |
+------------+
1 row in set (0.00 sec)
昨天PMM Data Container和PMM Server Container 都不小心被误删了, 还好是使用的docker rm container_id
删的, 没有加-v
. 本人docker渣渣, 后来找运维同时帮忙终于恢复了
首先找到宿主机volumes路径1
2
3
4
5
6
7
8
9
10
11
12
13
14[root@node1 volumes]# pwd
/var/lib/docker/volumes
[root@node1 volumes]# ll
total 32
drwxr-xr-x 3 root root 26 Aug 3 2018 4430beeb61fbc26802dc1b31d9fe3a02772482d8ae31bd50110957f16256f02e
drwxr-xr-x 3 root root 26 Jul 19 18:29 47ce712fd5e32abcf60e9650f349ac1304e0c20d062bd54724123f6cb700a79e
drwxr-xr-x 3 root root 26 Aug 3 2018 6ecf1c674f9f8e6f3dda7f7da352b70860125147b4489c6a8fe00fa59892436f
drwxr-xr-x 3 root root 26 Aug 3 2018 83db182943136c354bf95c0b4d07a8272017fd1698557d27b97dae49c82a8e76
drwxr-xr-x 3 root root 26 Jul 19 18:29 c9e3a964fd76dcad88ac992933ca97ac920c41239f9807f1ca91f939bd71ea03
drwxr-xr-x 3 root root 26 Jul 19 18:29 e92a37881c9b378bc4b00094b3f7e38ace3ae3655c33677a79da1be5652a318a
drwxr-xr-x 3 root root 26 Aug 3 2018 fcddf90d2cb64035c8c69165f69c5d7a780ac580c991f02af801bc65fa2ca609
-rw------- 1 root root 65536 Jul 19 18:29 metadata.db
drwxr-xr-x 3 root root 26 Jul 19 18:26 sentry-data
drwxr-xr-x 3 root root 26 Jul 19 18:26 sentry-postgres
Filebeat读取slow log 到kafka , logstash从kafka消费后解析成出各个列, 然后写入MySQL, 但是这样的问题是查询语句是这样的select * from A where id=1
. 而我们需要去除谓词的SQL, 也就是select * from A where id=?
这样的, 这样才好对SQL进行聚合分析
于是用Canal拉binlog, 再写到kafka, 然后python消费, 获取id, sql文本, 使用pt-fingerprint去除谓词后再更新回去.
这个架构看起来蛮高大上 想了想还是复杂了写, 环节太些, 容易出问题.
有人说为什么不用Filebeat ingest直接到ES, 这要图标用Kibana就好了. 我的考虑是:
1.还要做谓词去除
2.这样做出的图没法和我们业务的服务数关联, 业务人员查询就必须知道数据库的IP端口
详细方案可以参考下面的文档
https://www.jianshu.com/p/f3be9cce9b77
https://www.jianshu.com/p/3cf0e2a8d23d
自己写了一些和整理了些filter, 百度是搜不到的哈, 除了最后那俩anemometer的
不输出Database 为 mysql|performance_schema|information_schema|sys|db_monitor 的查询1
((\$event->{db} || '') =~ m/^(?!(mysql|performance_schema|information_schema|sys|db_monitor))/