---
title: github-fill
description: "指定 IP 路由 指定 IP 路由方式下 ODP 会将 SQL 请求直接路由到指定的 OBServer 节点，指定的方式有如下两种。 通过 ODP 配置项 target_db_server 指定，配置格式为 &#x27;ip:port,ip:port, ...;ip:port,ip:port, ... ;ip:port,ip:…"
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*nSAhQbrBXKwAAAAAAAAAAAAADiGDAQ/original) 数据库代理 V 4.3.2

# 指定 IP 路由

更新时间：2026-04-14 17:41:09

[编辑](https://github.com/oceanbase/oceanbase-proxy-doc/edit/V4.3.2/zh-CN/600.data-routing/400.intra-tenant-routing/200.specify-ip-routing.md)  

指定 IP 路由方式下 ODP 会将 SQL 请求直接路由到指定的 OBServer 节点，指定的方式有如下两种。

- 通过 ODP 配置项 `target_db_server` 指定，配置格式为 `'ip:port,ip:port, ...;ip:port,ip:port, ... ;ip:port,ip:port, ...'`。使用英文逗号（`,`）分隔两个地址，使用英文分号（`;`）对若干个地址分组，英文分号（`;`）左边的地址分组优先级较高，地址分组内优先级随机。
 - 通过 SQL 语句注释指定，语法为 `/* TARGET_DB_SERVER = 'addrs' */ executable_sql;`。

本节通过两个示例分别介绍两种指定方法。

## 示例一：通过配置项指定 IP

1. 执行如下命令使用 root@proxysys 用户登录 ODP。

   ```shell
   obclient -h10.10.10.1 -uroot@proxysys -P2883 -p -c

   ```
 2. 通过配置项指定 IP 路由，此处以首个分组使用非法地址，第二组使用合法地址为例。

   ```sql
   obclient [(none)]> ALTER PROXYCONFIG SET target_db_server = '127.0.0.1:2993,127.0.0.1:2994;10.10.10.1:50109';

   ```
 3. 使用用户租户登录 OceanBase 数据库，执行 SQL 语句触发路由，此处以执行 `SELECT 888;` 为例。

   ```sql
   obclient [test]> SELECT 888;

   ```
 4. 通过诊断日志查看路由选取过程。

   ```shell
   [~/cl-deploy/log]$ tail -n1 obproxy_diagnosis.log | sed "s/\/n/\n/g"

   ```

   输出如下，SQL 语句经过多轮重试最终被路由到 10.10.10.1:50109。

   ```shell
   [2023-08-21 16:12:50.404037] [56910][Y0-00007FDF4FB404E0] [ROUTE]((*route_diagnosis=
   Trans Current Query:"SELECT 888"

   Route Prompts
   > SQL_PARSE
     [INFO] Maybe counldn't get location cache of the query table since table name is empty.
   > ROUTE_INFO
     [INFO] Will route target db server and loopback addr (127.0.0.1:2993) wouldn't do congestion control
   > CONGESTION_CONTROL
     [INFO] This replica(127.0.0.1:2993) is no need to pass congestion control
   > CONGESTION_CONTROL
     [INFO] This replica(127.0.0.1:2994) is no need to pass congestion control

   Route Plan
   > SQL_PARSE:{cmd:"COM_QUERY", table:""}
   > ROUTE_INFO:{route_info_type:"USE_CONFIG_TARGET_DB", svr_addr:"127.0.0.1:2993"}
   > CONGESTION_CONTROL:{svr_addr:"127.0.0.1:2993", need_congestion_lookup:false}
   > HANDLE_RESPONSE:{is_parititon_hit:"false", state:"CONNECT_ERROR"}
   > RETRY:{attempts:2, retry_status:"FOUND_EXISTING_ADDR", retry_type:"CONF_TARGET_DB_SERVER", retry_addr:{127.0.0.1:2994}}
   > CONGESTION_CONTROL:{svr_addr:"127.0.0.1:2994", need_congestion_lookup:false}
   > HANDLE_RESPONSE:{is_parititon_hit:"false", state:"CONNECT_ERROR"}
   > RETRY:{attempts:3, retry_status:"FOUND_EXISTING_ADDR", retry_type:"CONF_TARGET_DB_SERVER", retry_addr:{10.10.10.1:50109}}
   > CONGESTION_CONTROL:{svr_addr:"10.10.10.1:50109"}
   > HANDLE_RESPONSE:{is_parititon_hit:"false", state:"CONNECTION_ALIVE"}
   )

   ```
 5. 使用 root@proxysys 用户登录 ODP 后，执行如下命令将配置项重置。

   ```sql
   obclient [(none)]> ALTER PROXYCONFIG SET TARGET_DB_SERVER = '';

   ```

## 示例二：通过 SQL 语句注释指定 IP

1. 执行如下命令使用用户租户登录 OceanBase 数据库，此处以用户租户为 root@test 为例。

   ```shell
   obclient -h10.10.10.1 -uroot@test -P2883 -p -c

   ```
 2. 通过 SQL 语句注释使用指定 IP 路由，此处以执行 `SELECT 888;` 为例。

   ```sql
   obclient [test]> /* TARGET_DB_SERVER = '127.0.0.1:2993,127.0.0.1:2994;10.10.10.1:50109' */ SELECT 888;

   ```
 3. 通过诊断日志查看路由选取过程。

   ```

   ```shell
   [2023-08-21 16:09:39.564334] [56910][Y0-00007FDF4FB404E0] [ROUTE]((*route_diagnosis=
   Trans Current Query:"/* target_db_server = '127.0.0.1:2993,127.0.0.1:2994;10.10.10.1:50109' */ SELECT 888"

   Route Plan
   > SQL_PARSE:{cmd:"COM_QUERY", table:""}
   > ROUTE_INFO:{route_info_type:"USE_COMMENT_TARGET_DB", svr_addr:"127.0.0.1:2993"}
   > CONGESTION_CONTROL:{svr_addr:"127.0.0.1:2993", need_congestion_lookup:false}
   > HANDLE_RESPONSE:{is_parititon_hit:"false", state:"CONNECT_ERROR"}
   > RETRY:{attempts:2, retry_status:"FOUND_EXISTING_ADDR", retry_type:"CMNT_TARGET_DB_SERVER", retry_addr:{127.0.0.1:2994}}
   > CONGESTION_CONTROL:{svr_addr:"127.0.0.1:2994", need_congestion_lookup:false}
   > HANDLE_RESPONSE:{is_parititon_hit:"false", state:"CONNECT_ERROR"}
   > RETRY:{attempts:3, retry_status:"FOUND_EXISTING_ADDR", retry_type:"CMNT_TARGET_DB_SERVER", retry_addr:{10.10.10.1:50109}}
   > CONGESTION_CONTROL:{svr_addr:"10.10.10.1:50109"}
   > HANDLE_RESPONSE:{is_parititon_hit:"false", state:"CONNECTION_ALIVE"}
   )

   ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
