ITPub博客

首页 > 数据库 > 国内数据库 > OceanBase 4.2 Oracle 模式 DBLINK 报错 ORA-00600 [-4016] 实战解决

OceanBase 4.2 Oracle 模式 DBLINK 报错 ORA-00600 [-4016] 实战解决

原创 国内数据库 作者:瑞蓝创_RLC_888 时间:2026-04-17 10:15:30 0 删除 编辑


使用 OceanBase Oracle 模式通过 DBLINK 跨库执行 INSERT/DELETE时,遭遇 ORA-00600 internal error code, arguments: -4016报错?

本文结合真实生产环境复现场景,手把手带你定位根因!

问题描述

OceanBase 4.2.1.10

Oracle模式

目前碰到的情况是,这种形式的语句无法执行成功:


obclient> insert into T_REMOTE@dblinktest select * from T_LOCAL;

ORA-00600: internal error code, arguments: -4016, check  if the database link was created with  local credentials
obclient> delete from T_REMOTE@dblinktest  where ID1  in (select ID1 from T_LOCAL);
ORA-00600: internal error code, arguments: -4016, check  if the database link was created with  local credentials

排查过程

复现:


目标端:

obclient -hxx.xx.xx.xx -P2883 -uSYS@zwb_ceshi #ob42110 -paaAA11__ -A
源端:
obclient -hxx.xx.xx.xx -P2883 -uSYS@ora4252 #ob4252 -paaAA11__ -A

目标端数据准备
CREATE TABLE T1 (
ID1 NUMBER
);

源端数据准备
CREATE DATABASE LINK dblinktest CONNECT TO SYS@zwb_ceshi IDENTIFIED BY aaAA11__  HOST  'xx.xx.xx.xx:2883' CLUSTER  "ob42110";

CREATE TABLE T2 (
ID1 NUMBER
);

obclient [SYS]> insert into T1@dblinktest  select * from t2;
ORA-00600: internal error code, arguments: -4016, check  if the database link was created with  local credentials

obclient [SYS]> delete from T1@dblinktest  where ID1  in (select ID1 from T2);
ORA-00600: internal error code, arguments: -4016, check  if the database link was created with  local credentials

目标端:

源端:

测试发现确实无法进行插入删除操作。

关键日志信息:


[2026-02-10 17:33:11.520756] WDIAG [SQL.ENG] send_reverse_link_info (ob_link_dml_op.cpp:71) [42661][T1002_L0_G0][T1002][YB426451F011-00064A745CCDFDB0-0-0] [lt=16][errcode=-4016] reverse link has invalid credentials(ret=-4016, user_name=, tenant_name=, passwd.empty()=
true, host_name=, port=0)

[2026-02-10 17:33:11.520773] WDIAG send_reverse_link_info (ob_link_dml_op.cpp:72) [42661][T1002_L0_G0][T1002][YB426451F011-00064A745CCDFDB0-0-0] [lt=15][errcode=-4016] ORA-00600: internal error code, arguments: -4016, check  if the database link was created with  local credentials
[2026-02-10 17:33:11.520778] WDIAG [SQL.ENG] inner_execute_link_stmt (ob_link_dml_op.cpp:121) [42661][T1002_L0_G0][T1002][YB426451F011-00064A745CCDFDB0-0-0] [lt=5][errcode=-4016] failed to send reverse link info(ret=-4016, link_stmt=/* $BEFPARSEdblink_req_level=1*/ insert /*+ QUERY_TIMEOUT(10000000) FLASHBACK_READ_TX_UNCOMMITTED */into  "SYS". "T_REMOTE"( "ID1") select  "VIEW1". "ID1" from  "SYS". "T_LOCAL"@!  "VIEW1")

解决方法

根据上面日志信息可以看到需要reverse link反向dblink,尝试创建对应dblink,测试可以正常操作数据


CREATE DATABASE LINK dblinktest2

  CONNECT TO TEST@Oracle IDENTIFIED BY  "aaAA11__" OB HOST  'xx.xx.xx.xx:2883' CLUSTER  "集群名"
  MY_NAME TEST01@Oracle IDENTIFIED BY  "aaAA11__"  HOST  'xx.xx.xx.xx:2883' CLUSTER  "集群名";


如果你在实际操作中遇到问题,可以在评论区留言交流。后续我们会持续分享更多运维干货,记得 关注不迷路,下次见~

暂无图片


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047467/viewspace-3116251/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专注于企业信息科技战略咨询、数据中心规划及运维、智能化软件产品研发,致力于为金融、能源、电信、制造等行业提供智能的业务永续及流程自动化解决方案。

注册时间:2025-09-08

  • 博文量
    89
  • 访问量
    86729