---
title: 如何跳过 DDL-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 如何跳过 DDL相关的常见问题和使用技巧，帮助您快速解决 如何跳过 DDL的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 如何跳过 DDL

更新时间：2023-12-19 09:16

适用版本： V4.2.x、V4.1.x、V4.0.x、V3.4.x、V3.3.x、V3.2.x 内容类型：How-to  

本文为您介绍如何跳过 DDL。

## 背景信息

对于导致增量同步项目报错的 DDL 语句，您可以通过更新组件配置进行跳过。操作流程如下：

1. 在 `error.log` 中定位报错的 DDL 语句。
 2. 在 `ddl_msg.log` 中复制 `receive ddl` 关键字冒号后面的 DDL 语句。
 3. 新增或更新参数。

   #### 说明

      - OMS V3.2.2-BP 及之后版本至 V3.3.1 之前版本，需要在 `root` 下新增或更新 `JDBCWriter.coordinatorFile.skipDdl` 参数。
      - OMS V3.3.1 及之后版本，需要在 `coordinator` 下新增或更新 `skipDdl` 参数。

## OMS V3.2.2-BP 及之后版本至 V3.3.1 之前版本

1. 找到源端接收的 DDL 语句。

      1. 登录 OMS 控制台。
      2. 在左侧导航栏，单击 **数据迁移**。
      3. 在 **数据迁移** 页面，单击目标数据迁移项目的名称，进入详情页面。
      4. 单击页面右上角的 **查看组件监控**。
      5. 在 **查看组件监控** 对话框，单击 **组件** 后的 **查看日志**。
      6. 单击 `msg/ddl_msg.log` 页签，复制 `receive ddl` 关键字冒号后面的 DDL 语句，该语句是从源端接收到的。

        ![ddl-msg-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/ddl-msg-zh.png)
 2. 更新 JDBCWriter 组件的配置。

      1. 进入 **查看组件监控** 对话框。
      2. 单击 JDBCWriter 组件后的 **更新**。
      3. 在 **更新配置** 对话框，鼠标悬停至 root 参数旁边的空白处，单击添加图标。
      4. 输入需要新增的 **Key Name** 为 `JDBCWriter.coordinatorFile.skipDdl`，单击对号。
      5. 在 **更新配置** 对话框，找到新增的 Key Name，其默认值为 NULL。
      6. 鼠标悬停至新增参数，单击显示的编辑图标，修改参数值为复制的 `receive ddl` 关键字冒号后面的 DDL 语句。

        OMS 支持参数值中包含换行符，并在 JDBCWriter 组件将 skipDdl 和接收的 DDL 语句中的空格、回车、Tab 和分号去除后进行匹配过滤。

        例如，接收的 DDL 语句为：

        ```sql
        CREATE TABLE my_table (
        id INT,
        name VARCHAR(50)
        );

        ```

        `JDBCWriter.coordinatorFile.skipDdl` 参数值匹配为 `"CREATE TABLE my_table(id INT,name VARCHAR(50))"`。

        如果有多个 DDL 语句想跳过，请使用 & 符号分隔。例如，`"CREATE TABLE my_table(id INT,name VARCHAR(50))&create table test(id int not null)"`。
      7. 在文本框中输入修改后的参数值后，单击确认图标。
      8. 在 **更新配置** 对话框，单击 **更新**。

## OMS V3.3.1 及之后版本

1. 找到源端接收的 DDL 语句。

      1. 登录 OMS 控制台。
      2. 在左侧导航栏，单击 **数据迁移**。
      3. 在 **数据迁移** 页面，单击目标数据迁移项目的名称，进入详情页面。
      4. 单击页面右上角的 **查看组件监控**。
      5. 在 **查看组件监控** 对话框，单击 **Incr-Sync 增量同步组件** 后的 **查看日志**。
      6. 单击 `msg/ddl_msg.log` 页签，复制 `receive ddl` 关键字冒号后面的 DDL 语句，该语句是从源端接收到的。

        ![ddl-msg-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/ddl-msg-zh.png)
 2. 更新 Incr-Sync 组件的配置。

   #### 注意

   从 OMS 4.0.1 版本开始，JDBCWriter 组件的名称更改为 Incr-Sync，其它操作不变。本文以 Incr-Sync 组件作为示例。

      1. 进入 **查看组件监控** 对话框。
      2. 单击 Incr-Sync 组件后的 **更新**。
      3. 在 **更新配置** 对话框，鼠标悬停至 `coordinator` 参数旁边的空白处，单击添加图标。
      4. 输入需要新增的 **Key Name** 为 `skipDdl`，单击对号。
      5. 在 **更新配置** 对话框，找到新增的 Key Name，其默认值为 NULL。
      6. 鼠标悬停至新增参数，单击显示的编辑图标，修改参数值为复制的 `receive ddl` 关键字冒号后面的 DDL 语句。

        OMS 支持关键字匹配，即配置的关键字存在于接收的 DDL 语句中，即可进行匹配过滤。同时，跳过 DDL 语句的配置为 JSON 格式。

        ```

        `skipDdl` 参数值匹配为 `["CREATE TABLE my_table"]`。

        如果您需要跳过多个 DDL 语句，请使用 JSON 格式并通过英文逗号（,）分隔。例如，`["CREATE TABLE my_table","create table test"]`。

        #### 注意

             - 如果 DDL 中包含双引号，请务必添加转义符，否则会报 JSON 解析错误。  
              例如，您需要跳过的 DDL 语句为 `create table "student" xxx`，请配置 `skipDdl` 参数的值为 `["create table \"student\" xxx"]`。
             - 配置参数时，请确保大小写和需要跳过的 DDL 语句一致。
      7. 在文本框中输入修改后的参数值后，单击确认图标。
      8. 在 **更新配置** 对话框，单击 **确定**。

Previous

[如何处理全量迁移中索引迁移无进展的问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002396557)

Next

[DDL 频繁执行](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000253328) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
