---
title: 并发 DDL 和 DML 操作报错 table schema ptr is null (ret=-4016-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 并发 DDL 和 DML 操作报错 table schema ptr is null (ret=-4016相关的常见问题和使用技巧，帮助您快速解决 并发 DDL 和 DML 操作报错 table schema ptr is null (ret=-4016的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 并发 DDL 和 DML 操作报错 table schema ptr is null (ret=-4016

更新时间：2024-03-04 09:17

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

本文介绍 OceanBase 数据库在并发 DDL、DML 操作报错 `table schema ptr is null(ret=-4016` 原因和解决方法。

## 适用版本

OceanBase 数据库 V2.x 和 V3.x 版本。

## 问题现象

OceanBase 数据库在并发 DDL、DML 操作报错 `table schema ptr is null(ret=-4016`。

## 问题原因

目前 OceanBase 数据库的 DDL 会在持久化 schema 完成后，向集群发送 RPC，异步地触发机器的 schema 刷新，异步刷新 schema 成功与否不影响用户的 DDL 结果。当 DDL 返回成功时，可能存在部分机器的 schema 仍是落后的情况，当用户请求打到 schema 落后的机器上，语句可能会执行报错。

目前 OceanBase 数据库有机制保证同一 session 上执行的 DDL、DML 大概率满足因果序，但对不同 session 的 DDL 和 DML 则没有任何保证，这导致 DDL 返回成功时，用户后续执行的 DML 行为未决。

## 解决方法

OceanBase 数据库 V3.2.4.x 新增 `_enable_sync_ddl` 隐藏配置项，引入 DDL 同步刷新 schema 的能力。

## _enable_sync_ddl 介绍

该配置项用于控制 DDL 持久化 schema 成功后，是否触发同步的 schema 刷新。

- 数据类型：BOOL
 - 取值范围：False、True
 - 默认值：False
 - 生效模式：实时生效
 - 生效是否需要重启：无需重启
 - 级别: 租户级

开启该功能后，DDL 持久化 schema 后需要等其余机器的 schema 刷新结果。该功能有如下副作用：

- DDL 执行误报失败。
 - DDL 执行速度变慢。

使用示例：

开启同步 schema 刷新：

系统租户下执行 `alter system set _enable_sync_ddl = 'True' tenant = 'xxxx'` ;

普通租户下执行 `alter system set _enable_sync_ddl = 'True';`。

Previous

[OceanBase 数据库 V4.x 的 Offline DDL 及注意事项](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000366650)

Next

[DDL 操作记录表中 operation_type 描述](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207755) ![有帮助](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) 咨询热线
