ticdc有三个同步,其实中一个报了puller mem buffer reach size limit,导致的问题是:
1,ticdc的其中一台机器cpu居高不下,所有ticdc机器内存也是居高不下,触发监控告警。
2,整个tidb的gc不能工作
3,ticdc已停止往下游同步数据,同步中断
ticdc有三个同步,其实中一个报了puller mem buffer reach size limit,导致的问题是:
1,ticdc的其中一台机器cpu居高不下,所有ticdc机器内存也是居高不下,触发监控告警。
2,整个tidb的gc不能工作
3,ticdc已停止往下游同步数据,同步中断
tiflash列式存储,tikv是行式存储,存储上就占有优势。tidb中创建表,默认都是tikv的。
程序连tidb,概率性报SQLSTATE[HY000]: General error: 9002 TiKV server timeout和SQLSTATE[HY000]: General error: 9002 TiKV server timeout,并且都是同一张表,并且都是select报错。单独把sql copy出来到命令行下运行,非常非常的慢,但是能跑出来。
tidb自带有三个监控工具
tidb dashboard pd,地址:http://10.0.10.17:2379/dashboard
grafana:http://10.0.10.11:3000/?orgId=1
Alertmanager:http://10.0.10.11:9093/#/alerts
这个工具可以帮助我们获取不少信息。
10.0.10.17是pd服务器,10.0.10.11是监控服务器
tidb尚未支持“有损更改”,实验一些,总结一下常用的,同一类型小转大可以,大转小不行,例如:int(2)转int(4)。不同类型不能转换,也有例外int(2)转bigint(2)。
为了测试dm同步数据的准确性,延迟,以及容错性等,会先进行一些测试,测试通过后,就可以修改配置同步正式数据了。
dm从上游mysql同步数据到tidb,如果报错就会导致同步中止。上篇文章写了zabbix 监控ticdc同步,本篇与上篇会有稍许的不同
ticdc往下游mysql同步,如果报错就会导致同步中止,这时提醒就显得很重要了。
前面说到了通过dm server把mysql的数据同步到tidb,现在又为什么要把tidb的数据同步到mysql?
其实还是对tidb不太放心,就算把tidb当做正式数据库使用,也希望用mysql来兜底,观察一段时间后,如果不出问题就可以把同步停掉了,脱离mysql。
通过dm,把mysql的数据同步到tidb中,到目前为止发生二次同步失败的情况