---
title: 事务超时，错误代码 ORA-00600-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 事务超时，错误代码 ORA-00600相关的常见问题和使用技巧，帮助您快速解决 事务超时，错误代码 ORA-00600的难题。
---
切换语言

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

划线反馈

# 事务超时，错误代码 ORA-00600

更新时间：2024-01-22 01:56

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

本文介绍 OceanBase 数据库 Oracle 模式下事务未提交超时后报 `ORA-00600` 错误的处理方法。

## 问题现象

事务开启后，持续较长一段时间内未提交事务后，执行查询表数据的操作时报错。

```shell
obclient [SYS]> CREATE TABLE ordr(
    id number NOT NULL PRIMARY KEY
    , name varchar(10) NOT NULL
    , value number
    ,gmt_create timestamp NOT NULL DEFAULT current_timestamp);   //准备数据
Query OK, 0 rows affected

obclient [SYS]> INSERT INTO ordr(id, name, value, gmt_create) VALUES (1,'CN',10001, current_timestamp);
Query OK, 1 row affected

obclient [SYS]> INSERT INTO ordr(id, name, value) VALUES (2,'US', 10002);
Query OK, 1 rows affected

obclient [SYS]> INSERT INTO ordr(id, name, value) VALUES (3,'EN', 10003);
Query OK, 1 rows affected

obclient [SYS]> SELECT sysdate, t.* FROM ordr t;
+-----------+----+------+-------+------------------------------+
| SYSDATE   | ID | NAME | VALUE | GMT_CREATE                   |
+-----------+----+------+-------+------------------------------+
| 05-SEP-22 |  1 | CN   | 10001 | 05-SEP-22 04.34.37.145469 PM |
| 05-SEP-22 |  2 | US   | 10002 | 05-SEP-22 04.34.46.776463 PM |
| 05-SEP-22 |  3 | EN   | 10003 | 05-SEP-22 04.34.46.776463 PM |
+-----------+----+------+-------+------------------------------+
3 rows in set

obclient [SYS]> COMMIT;

obclient [SYS]> INSERT INTO ordr(id, name, value) VALUES (4,'JP', 10004);
Query OK, 1 rows affected

/* 等待较长一段时间不操作*/

obclient [SYS]> SELECT sysdate, t.* FROM ordr t;
ORA-00600: internal error code, arguments: -6210, Transaction timeout occurred, please rollback the transaction, set the variable ob_trx_timeout to a larger value and then restart the transaction

```

该报错信息对应的错误码信息如下：

- 错误码：ORA-00600
 - OceanBase 错误码：6210

## 可能原因

事务未提交超时表示事务超过了指定的阈值仍未提交。当事务超过了指定的时间还没有提交时，系统就会报错。事务未提交超时由租户变量 `ob_trx_timeout` 控制，默认值为 86400000000 微秒，即 24 小时。

#### 说明

OceanBase 数据库为了避免事务长时间不提交持有锁影响其他会话，设计了两个超时逻辑：事务空闲超时和事务未提交超时。通常只会有一个超时机制会先被触发。

## 解决方法

请参考以下步骤，查看并修改租户变量，再通过 `ROLLBACK` 语句回滚并提交事务后，继续操作。

1. 查看租户变量 `ob_trx_timeout` 的值，确认事务超时时间是否超过了设置的值。

   事务的未提交超时时间阈值由租户变量 `ob_trx_timeout` 控制，单位为微秒，建议使用默认值 24 小时（86400000000 微秒）。

   #### 说明

   以下设置变量的方法仅对当前会话有效，如果需要保证设置永久生效，请使用 `SET GLOBAL` 语法配置相同变量后，再重启会话使其生效。

   ```shell
   obclient [SYS]> SHOW VARIABLES LIKE 'ob_trx_timeout';
   +----------------+-----------+
   | Variable_name  | Value     |
   +----------------+-----------+
   | ob_trx_timeout | 100000000 |
   +----------------+-----------+
   1 row in set

   obclient [SYS]> SET SESSION ob_trx_timeout=86400000000;
   Query OK, 0 rows affected

   ```
 2. 使用 `ROLLBACK` 回滚事务。

   ```shell
   obclient [SYS]> ROLLBACK;
   Query OK, 0 rows affected

   ```
 3. 执行 `COMMIT` 提交事务。

   ```shell
   obclient [SYS]> COMMIT;
   Query OK, 0 rows affected

   ```
 4. 再次查询 `ordr` 表数据，操作成功。

   ```shell
   obclient [SYS]> SELECT sysdate, t.* FROM ordr t;
   +-----------+----+------+-------+------------------------------+
   | SYSDATE   | ID | NAME | VALUE | GMT_CREATE                   |
   +-----------+----+------+-------+------------------------------+
   | 05-SEP-22 |  1 | CN   | 10001 | 05-SEP-22 04.34.37.145469 PM |
   | 05-SEP-22 |  2 | US   | 10002 | 05-SEP-22 04.34.46.776463 PM |
   | 05-SEP-22 |  3 | EN   | 10003 | 05-SEP-22 04.34.46.776463 PM |
   +-----------+----+------+-------+------------------------------+
   3 rows in set

   ```

上一篇

[事务超时，错误代码 ERROR 4012](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217854)

下一篇

[udf 场景下开事务导致事务超限报错 -4013](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000036890) ![有帮助](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) 咨询热线
