---
title: 使用 OB Oracle 到原生 Oracle 的 DBLink 查询报错 24454-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于使用 OB Oracle 到原生 Oracle 的 DBLink 查询报错 24454相关的常见问题和使用技巧，帮助您快速解决使用 OB Oracle 到原生 Oracle 的 DBLink 查询报错 24454的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 使用 OB Oracle 到原生 Oracle 的 DBLink 查询报错 24454

更新时间：2026-07-07 13:01

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

## 问题现象

在 OceanBase Oracle 模式租户中，创建并使用 OCI 类型 DBLink 访问外部原生 Oracle 数据库时失败，报如下错误：

```shell
ErrorCode = 600, SQLState = HY000, Details = OBE-00600: internal error code, arguments: -5975, dblink remote error code: 24454, remote error msg: ORA-24454: client host name is not set

```

## 关键信息

| 诊断项 | 检查方法/预期结果 |
| --- | --- |
| **主机名配置** | 执行 `hostname` 命令，确保返回有效主机名。 |
| **主机名解析** | 执行 `ping $(hostname)`，确保能解析到本机 IP。 |
| **hosts 配置** | 检查 `/etc/hosts` 文件是否包含主机名与 IP 地址的映射关系。 |

## 问题原因

OCI 连接需要设置 `OCI_ATTR_CLIENT_HOSTNAME` 属性，但 OBServer 节点主机名未配置或不可解析，导致远端 Oracle 数据库拒绝连接。

## 问题的风险及影响

无法通过 DBLink 访问 Oracle 数据，影响数据同步、迁移等依赖跨库查询的业务场景。

## 适用版本

- OBServer V3.x (Oracle 模式)
 - OBServer V4.x (Oracle 模式)

## 解决方法

在 **所有 OBServer 节点** 上执行以下操作：

1. 查看当前主机名。

   ```bash
   hostname

   ```
 2. 确保主机名可解析。

   ```bash
   ping $(hostname)

   ```
 3. 检查 `/etc/hosts` 配置。

   ```bash
   cat /etc/hosts

   ```
 4. 若缺失主机名与 IP 的映射，以 root 权限添加配置。

   ```bash
   echo "<本机IP地址> $(hostname)" >> /etc/hosts

   ```
 5. 验证配置。

   ```bash
   ping $(hostname)  # 应能 ping 通

   ```

## 规避方式

在 OBServer 部署或扩容时，将 OCI 驱动安装和主机名配置加入标准化检查清单。

Previous

[数据倾斜导致存储层估行不准](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006417364)

Next

[PL 常见问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000001051) ![有帮助](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) 咨询热线
