FLUSH TABLES WITH READ LOCK

【 TiDB 使用环境】生产环境
DM 做数据同步,上游库出现执行FLUSH TABLES WITH READ LOCK,导致数据库锁死。只读锁怎么会导致数据库锁死呢?

全局读锁,当然对数据库影响比较大了,执行后表只能读取,无法更新了

可以关掉这个操作吗?关了会影响数据的一致性吗?

快照后,才能做数据一致性的比对了

做快照就需要 lock

数据量大了,只读锁是不是阻塞的时间就比较长了。会阻塞数据库中所有的操作?

是在所有备份都执行结束之后才会释放锁吗?

https://docs.pingcap.com/zh/tidb/stable/task-configuration-file-full/

你肯定是自己改了task里面的默认配置。

dm只在dump阶段有可能需要用到FLUSH TABLES WITH READ LOCK

mydumpers: # dump 处理单元的运行配置参数
global: # 配置名称
threads: 4 # dump 处理单元从上游数据库实例导出数据和 check-task 访问上游的线程数量,默认值为 4
chunk-filesize: 64 # dump 处理单元生成的数据文件大小,默认值为 64,单位为 MB
extra-args: “–consistency none” # dump 处理单元的其他参数,不需要在 extra-args 中配置 table-list,DM 会自动生成

注意看黑体的这一段配置,就是指定dump执行的是否需要锁表,以及怎么锁表。

这是其他大佬的相关文章,你可以阅读一下。

1 个赞

是你参数配置文件有问题吧,一般dm基本都不需要读锁表的啊

1 个赞