AskTUG Weekly (20191111-20191118) 动态表单的场景 TiDB 是否适用?TiDB 对清除数据有没有最佳实践?

问答

Q1:【DM】1、task配置

2、» start-task task/db_test.yaml 启动之后,看 Worker 的日志,Mydumper 没有备份指定的库:

--regex="mall_order.*|mall_swo.*|saos_crm.*|saos_op.*|saos_tur.*"

下面是 worker 节点的日志,tables-list 没有指定,不知道是从哪里读取的。

请问是什么原因呢?查看详情:DM 的 Mydumpers 选项不生效

Q2:【TiDB】在用中间表做数据中转的时候,每次都需要 TRUNCATE TABLE tableName,发现如下报错信息:

The error occurred while setting parameters

SQL: TRUNCATE TABLE tableName

Cause: java.sql.SQLException: Information schema is changed. [try again later]

; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1105]; Information schema is changed. [try again later]; nested exception is java.sql.SQLException: Information schema is changed. [try again later]

把这条sql语句复制出来,单独执行没有问题。中间表的数据量不大,每个小时只执行一次

TRUNCATE TABLE ,不存在多个线程去执行的问题。请问下为什么会 Cause: java.sql.SQLException: Information schema is changed. [try again later] ?之前在 MySQL 从未发现此问题,以及 TRUNCATE TABLE 执行时间有点长,现在在项目中有用到分页去 delete 数据,当数据量很大(几十万级别),删除要耗时 5min 以上,请问下 TiDB 对删除数据、清除数据有没有什么具体最佳实践?查看详情:TRUNCATE TABLE tableName 报错

Q3:【TiDB】使用 Mydumper 向TiDB中导入大量的数据。修改操作系统的内存使用策略,防止 TiDB 使用内存过大导致机器宕机。

sysctl -w vm.overcommit_ratio=90
sysctl -p
echo 2 > /proc/sys/vm/overcommit_memory

在导入数据的同时,进行修改内存策略的配置,导致 TiDB 客户端自动下线;

然后在重启 TiDB 就会失败。

请问是什么原因呢?查看详情:修改内存使用策略导致 TiDB 自动下线后 无法启动

Q4:【TiDB】测试环境下,原来 Tidb 版本是 V2.1.0 Docker 部署,现在 TiDB 版本是 V3.0.0 Docker容器部署。部署过程:将原来数据备份后,然后倒入到新 TiDB 中。问题:现在发现有一个联合查询出来的数据(中文)是乱码,单独查这张表是正常显示,请问有什么排查方向呢?查看详情:联合查询,中文乱码

Q5:【TiDB】TiDB 使用 insert select 的方式插入 10 万行数据,过了 20 分钟再次插入 10 万行数据触发 OOM,等 TiDB 自动重启后之前插入的 10 万行数据显示为 0。

请问是什么原因呢?查看详情:插入数据问题

Q6:【DM】DM 数据同步过程中只能保证数据的最终一致性,而不能保证数据的事务,目前我们两个需求有问题:

需求1:
基于 TiDB 做数据分析:
MySQL 数据同步到 TiDB,TiDB 通过 Binlog 将数据发送到 Kafka,然后使用StructuredStreaming 进行流式处理。在流式处理的时候,需要进行表关联,关联主表和明细表进行数据分析。在此过程中,若不能保证事务中 SQL 的执行顺序和数据可见性,可能导致主表之关联部分明细表,导致数据出错(以主表数据变更判断是否执行分析)。
需求2:
基于 TiDB 做数据同步:
线下产品将数据提交到云库,然后将云库同步到 TiDB,线下产品再将查询 TiDB 到本地数据库。不能保证数据的事务性,关联查询数据时,可能会导致数据同步有误。

基于这两个需求,是否有什么方案解决?查看详情:关于 DM 数据保证同步原事务一致性

Q7:【TiDB】测试。单机单实例模式-TiDB(3)+ PD(3)+TiKV(3)3 台机器,每台机器 1 个 PD,1个 TiKV,1个 TiDB。如图,程序在 217 上新建的表 ,其他两个 TiDB 都看不到。

![%40K%5DZ%5B5LV%7D%60T)8MI%7B(%7B%407A~H|658x450]

请问是什么原因呢?查看详情:多个 TiDB,新建表不同步

Q8:【TiDB】为了满足动态定制的需求,需要能够支持动态表单,也就是说表单的定义是可以根据需求进行定制,后继还可以增加或者删除字段,同时一个比较重要的能力是可以根据任何一个或者多个字段进行组合筛选。请问这种场景 TiDB 是否适用,如果适用需要注意什么?查看详情:动态表单的场景 TiDB 是否适用?

文章

TiDB 是一个很有希望和前景的开源分布式 HTAP 数据库,本人有幸参加了 PingCAP 公司组织的 TiDB DBA 培训和认证考试。通过老师的授课以及自己的课余学习和及时复习,最后能够一次通过 PCTA 和 PCTP 的笔试,感到很高兴。下面,我就跟大家分享一些有关学习和备考 TiDB DBA 认证考试的经验体会,希望对大家有所帮助。

入门 TiDB 应该怎么学习,有哪些学习资源?这里有一份初学笔记,包括上手部署、升级、扩容、监控等方面的 TIPS,欢迎参考。

TiDB 追番手帐(上)
TiDB 追番手帐(中)
TiDB 追番手帐(下)


更多阅读:

AskTUG Weekly (20191103-20191110) SQL 跨库查询很慢如何优化?KV 节点的磁盘大于 2T 会怎样?TiDB 集群升级到 V3.0.5 遇到的问题

1赞