首批通过分布式安全可靠测评,为关键业务系统打造
DDL 频繁执行
更新时间:2023-11-16 04:11
本文为您介绍 DDL 频繁执行的原因和解决方法。
适用场景
适用于所有开启增量同步 DDL 的数据迁移项目。
适用版本
适用于 OceanBase 迁移服务(OceanBase Migration Service,OMS)全部版本。
问题描述
已开启同步 DDL 的数据迁移项目出现 workerNum 低、Sink RPS 低、Store 位点不延迟、Connector 位点延迟或位点推进慢等问题。
可能原因
可能存在 DDL 语句在频繁执行。
DDL 语句频繁执行,会阻塞其它 DDL 和 DML 的同步。
执行 DDL 的表会重新构建目标端表缓存,其中查询目标端表的元数据会耗时。
您可以通过以下操作进行确认:
进入目标项目的详情页面。
登录 OMS 控制台。
在左侧导航栏,单击 数据迁移。
在项目列表页面,单机目标项目的名称,进入详情页面。
单击页面右上角的 查看组件监控。
在 查看组件监控 对话框,单击 Incr-Sync 增量同步组件 后的 查看日志。
在 查看日志 对话框,单击 msg/connector_sink_msg.log 页签,查看是否存在一直执行某些表的 DDL 语句。
解决方法
该问题有以下两种解决方法,您可以根据实际情况进行选择。
移除不停执行 DDL 语句的表,操作如下:
进入目标项目的详情页面。
登录 OMS 控制台。
在左侧导航栏,单击 数据迁移。
在 迁移项目列表 页面,单击目标数据迁移项目的名称,进入详情页面。
在目标项目的详情页面,单击右上角的 查看对象。

在 查看对象 对话框,单击 修改对象 > 减少对象。

在 减少对象 对话框的右侧 目标端对象 区域,鼠标悬停至不停执行 DDL 语句的表,单击 移除。

在 减少对象 对话框,单击 移除。
在弹出框中确认需要移除的对象无误后,单击 确定。
返回目标项目的详情页面,单击右上角的 恢复。
将不停执行 DDL 语句的表添加至黑名单,操作如下:
进入目标项目的详情页面。
在目标项目的详情页面,单击右上角的 查看组件监控。
在左侧导航栏,单击 运维监控 > 组件。
单击 Incr-Sync 增量同步组件 后的 更新。
在 更新配置 对话框,鼠标悬停至
root>condition下的参数blackCondition,单击参数配置后显示的编辑图标。
在文本框中输入修改的参数值后,单击确认图标。

在 更新配置 对话框,单击右下角的 确定。