OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Database Proxy

V4.2.2

  • What is ODP?
  • Installation and deployment
    • Overview
    • Use OBD to deploy ODP
    • Deploy ODP by using OCP
    • Deploy ODP by using the CLI
    • Deployment modes
  • Basic operations
  • Configuration parameter
    • View and modify parameters
    • Parameter summary
    • Parameters that take effect dynamically
      • binlog_service_ip
      • cache_cleaner_clean_interval
      • check_tenant_locality_change
      • client_max_connections
      • client_max_memory_size
      • client_sock_option_flag_out
      • client_tcp_keepcnt
      • client_tcp_keepidle
      • client_tcp_keepintvl
      • client_tcp_user_timeout
      • cluster_count_high_water_mark
      • cluster_expire_time
      • config_server_refresh_interval
      • congestion_fail_window
      • congestion_failure_threshold
      • congestion_retry_interval
      • connection_diagnosis_option
      • connect_observer_max_retries
      • current_local_config_version
      • default_buffer_water_mark
      • default_inactivity_timeout
      • delay_exit_time
      • delay_update_entry_interval
      • detect_server_timeout
      • digest_sql_length
      • enable_abort_conn_info
      • enable_async_log
      • enable_async_pull_location_cache
      • enable_bad_route_reject
      • enable_binlog_service
      • enable_cached_server
      • enable_causal_order_read
      • enable_client_connection_lru_disconnect
      • enable_client_ip_checkout
      • enable_client_ssl
      • enable_cloud_full_username
      • enable_cluster_checkout
      • enable_compression_protocol
      • enable_congestion
      • enable_connection_diagnosis
      • enable_extra_prometheus_metric
      • enable_flow_control
      • enable_full_username
      • enable_get_rslist_remote
      • enable_index_route
      • enable_monitor_stat
      • enable_ob_protocol_v2
      • enable_ob_protocol_v2_with_client
      • enable_partition_table_route
      • enable_performance_mode
      • enable_pl_route
      • enable_primary_zone
      • enable_prometheus
      • enable_proxy_scramble
      • enable_qa_mode
      • enable_qos
      • enable_read_write_split
      • enable_report_session_stats
      • enable_reroute
      • enable_sequence_prefetch
      • enable_server_ssl
      • enable_sharding
      • enable_standby
      • enable_stat
      • enable_strict_stat_time
      • enable_sync_all_stats
      • enable_syslog_file_compress
      • enable_trace
      • enable_trace_stats
      • enable_trans_detail_stats
      • enable_transaction_internal_routing
      • enable_transaction_split
      • enable_weak_reroute
      • enable_xa_route
      • fetch_proxy_bin_random_time
      • fetch_proxy_bin_timeout
      • flow_consumer_reenable_threshold
      • flow_event_queue_threshold
      • flow_high_water_mark
      • flow_low_water_mark
      • hot_upgrade_exit_timeout
      • hot_upgrade_failure_retries
      • hot_upgrade_rollback_timeout
      • idc_list_refresh_interval
      • ignore_local_config
      • internal_cmd_mem_limited
      • ldg_info_refresh_interval
      • log_cleanup_interval
      • log_dir_size_threshold
      • log_file_percentage
      • long_async_task_timeout
      • max_log_file_size
      • max_syslog_file_count
      • max_syslog_file_time
      • metadb_server_state_refresh_interval
      • min_congested_connect_timeout
      • min_keep_congestion_interval
      • monitor_cost_ms_unit
      • monitor_item_limit
      • monitor_item_max_idle_period
      • monitor_log_level
      • monitor_stat_dump_interval
      • monitor_stat_high_threshold
      • monitor_stat_low_threshold
      • monitor_stat_middle_threshold
      • mysql_version
      • need_convert_vip_to_tname
      • net_config_poll_timeout
      • normal_pl_update_threshold
      • ob_max_read_stale_time
      • obproxy_force_parallel_query_dop
      • obproxy_read_consistency
      • obproxy_read_only
      • obproxy_sys_password
      • observer_query_timeout_delta
      • observer_sys_password
      • observer_sys_password1
      • partition_location_expire_relative_time
      • prometheus_sync_interval
      • proxy_hot_upgrade_check_interval
      • proxy_idc_name
      • proxy_info_check_interval
      • proxy_local_cmd
      • proxy_mem_limited
      • proxy_primary_zone_name
      • proxy_route_policy
      • proxy_tenant_name
      • qa_mode_mock_public_cloud_slb_addr
      • qos_stat_clean_interval
      • qos_stat_item_limit
      • query_digest_time_threshold
      • read_stale_retry_interval
      • refresh_idc_list
      • refresh_json_config
      • refresh_rslist
      • request_buffer_length
      • route_diagnosis_level
      • routing_cache_mem_limited
      • sequence_entry_expire_time
      • sequence_fail_retry_count
      • sequence_prefetch_threshold
      • server_detect_fail_threshold
      • server_detect_mode
      • server_detect_refresh_interval
      • server_routing_mode
      • server_state_refresh_interval
      • server_tcp_init_cwnd
      • server_tcp_keepcnt
      • server_tcp_keepidle
      • server_tcp_keepintvl
      • server_tcp_user_timeout
      • short_async_task_timeout
      • skip_proxy_sys_private_check
      • skip_proxyro_check
      • slow_proxy_process_time_threshold
      • slow_query_time_threshold
      • slow_transaction_time_threshold
      • sock_option_flag_out
      • sock_packet_mark_out
      • sock_packet_tos_out
      • sock_recv_buffer_size_out
      • sock_send_buffer_size_out
      • sql_table_cache_expire_relative_time
      • sql_table_cache_mem_limited
      • sqlaudit_mem_limited
      • ssl_attributes
      • stat_dump_interval
      • stat_table_sync_interval
      • syslog_level
      • target_db_server
      • tenant_location_valid_time
      • tunnel_request_size_threshold
      • username_separator
      • xflush_log_level
    • Parameters that take effect after a restart
      • automatic_match_work_thread
      • block_thread_num
      • enable_cpu_isolate
      • enable_cpu_topology
      • enable_global_ps_cache
      • enable_strict_kernel_release
      • grpc_client_num
      • grpc_thread_num
      • ip_listen_mode
      • listen_port
      • local_bound_ip
      • local_bound_ipv6_ip
      • net_accept_threads
      • obproxy_config_server_url
      • prometheus_cost_ms_unit
      • prometheus_listen_port
      • rootservice_cluster_name
      • rootservice_list
      • shard_scan_thread_num
      • stack_size
      • task_thread_num
      • work_thread_num
  • Connection management
    • Principles
    • Session status synchronization
    • Client session
    • Server session
    • Connection diagnostics
  • Data routing
    • Factors affecting data routing
    • ODP routing
    • Intra-tenant routing
      • Overview
      • IP address-based routing
      • Partitioned table-based routing for strong-consistency reads
      • Global index table-based routing for strong-consistency reads
      • Replication table-based routing for strong-consistency reads
      • Primary zone-based routing for strong-consistency reads
      • Strategy-based routing
      • Distributed transaction routing
      • Rerouting
      • Forcible routing
    • Read/Write separation
    • Follower latency threshold
  • High availability mechanism
    • Overview
    • High availability of ODP services
    • High availability of OceanBase Database
    • High availability testing
  • Security and protocols
  • Operation and maintenance
    • Troubleshooting
      • Troubleshooting logic
      • Monitoring logs
    • Performance analysis
    • Show Trace
    • Routing diagnostics
      • Overview
      • Obtain diagnostic information
      • Diagnostic point troubleshooting
        • Overview
        • SQL_PARSE
        • ROUTE_INFO
        • LOCATION_CACHE_LOOKUP
        • ROUTINE_ENTRY_LOOKUP_DONE
        • FETCH_TABLE_RELATED_DATA
        • TABLE_ENTRY_LOOKUP_DONE
        • EXPR_PARSE
        • CALC_ROWID
        • RESOLVE_TOKEN
        • RESOLVE_EXPR
        • CALC_PARTITION_ID
        • PARTITION_ID_CALC_DONE
        • PARTITION_ENTRY_LOOKUP_DONE
        • ROUTE_POLICY
        • CONGESTION_CONTROL
        • RETRY
        • HANDLE_RESPONSE
      • Examples
  • Release Notes
    • Versioning rules
    • Enterprise Edition
      • V4.2
        • ODP Enterprise Edition V4.2.2
        • ODP Enterprise Edition V4.2.1
      • V4.1
        • ODP Enterprise Edition V4.1.0
      • V4.0
        • ODP Enterprise Edition V4.0.0
      • V3.2
        • ODP V3.2.11
        • ODP Enterprise Edition V3.2.3.5
    • Community Edition
      • V4.2
        • ODP Community Edition V4.2.1
        • ODP Community Edition V4.2.0
      • V4.1
        • ODP Community Edition V4.1.0
      • V4.0
        • ODP Community Edition V4.0.0

Download PDF

What is ODP? Overview Use OBD to deploy ODP Deploy ODP by using OCP Deploy ODP by using the CLI Deployment modes Basic operations View and modify parameters Parameter summary binlog_service_ip cache_cleaner_clean_interval check_tenant_locality_change client_max_connections client_max_memory_size client_sock_option_flag_out client_tcp_keepcnt client_tcp_keepidle client_tcp_keepintvl client_tcp_user_timeout cluster_count_high_water_mark cluster_expire_time config_server_refresh_interval congestion_fail_window congestion_failure_threshold congestion_retry_interval connection_diagnosis_option connect_observer_max_retries current_local_config_version default_buffer_water_mark default_inactivity_timeout delay_exit_time delay_update_entry_interval detect_server_timeout digest_sql_length enable_abort_conn_info enable_async_log enable_async_pull_location_cache enable_bad_route_reject enable_binlog_service enable_cached_server enable_causal_order_read enable_client_connection_lru_disconnect enable_client_ip_checkout enable_client_ssl enable_cloud_full_username enable_cluster_checkout enable_compression_protocol enable_congestion enable_connection_diagnosis enable_extra_prometheus_metric enable_flow_control enable_full_username enable_get_rslist_remote enable_index_route enable_monitor_stat enable_ob_protocol_v2 enable_ob_protocol_v2_with_client enable_partition_table_route enable_performance_mode enable_pl_route enable_primary_zone enable_prometheus enable_proxy_scramble enable_qa_mode enable_qos enable_read_write_split enable_report_session_stats enable_reroute enable_sequence_prefetch enable_server_ssl enable_sharding enable_standby enable_stat enable_strict_stat_time enable_sync_all_stats enable_syslog_file_compress enable_trace enable_trace_stats enable_trans_detail_stats enable_transaction_internal_routing enable_transaction_split enable_weak_reroute enable_xa_route fetch_proxy_bin_random_time fetch_proxy_bin_timeout flow_consumer_reenable_threshold flow_event_queue_threshold flow_high_water_mark flow_low_water_mark hot_upgrade_exit_timeout hot_upgrade_failure_retries hot_upgrade_rollback_timeout idc_list_refresh_interval ignore_local_config internal_cmd_mem_limited ldg_info_refresh_interval log_cleanup_interval log_dir_size_threshold log_file_percentage long_async_task_timeout
OceanBase logo

The Unified Distributed Database for the Al Era.

Follow Us
Products
OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
Resources
DocsBlogLive DemosTraining & Certification
Company
About OceanBaseTrust CenterLegalPartnerContact Us
Follow Us

© OceanBase 2026. All rights reserved

Cloud Service AgreementPrivacy PolicySecurity
Contact Us
Document Feedback
  1. Documentation Center
  2. OceanBase Database Proxy
  3. V4.2.2
iconOceanBase Database Proxy
V 4.2.2
  • V 4.3.4
  • V 4.3.3
  • V 4.3.2
  • V 4.3.1
  • V 4.3.0
  • V 4.2.3
  • V 4.2.2
  • V 4.2.0 and earlier

ODP routing

Last Updated:2024-10-31 05:51:29  Updated
share
What is on this page
Cluster routing
Tenant routing
Routing for the sys tenant
Routing for a user tenant

folded

share

ODP allows you to access different servers of different tenants in different clusters through cluster routing, tenant routing, and intra-tenant routing. This topic describes the routing features of ODP in terms of cluster routing and tenant routing. For more information about intra-tenant routing, see Intra-tenant routing.

Cluster routing

Cluster routing allows you to access different clusters. The key to cluster routing is to obtain the mapping between a cluster name and an RS list.

  • In the startup method in which the RS list is specified by using a startup parameter, the mapping between a cluster name and the RS list is also specified by using the startup parameter.

  • In the startup method in which the obproxy_config_server_url parameter is specified in the startup command, the mapping between a cluster name and an RS list is obtained from the access URL.

Notice

The RS list does not need to contain all the cluster servers. ODP obtains the list of servers in a cluster from a view. Generally, the RS list contains servers where RootService is located.

Cluster routing

As can be seen from the preceding figure, OceanBase Cloud Platform (OCP) is a key module in cluster routing. If there is an abnormality in the OCP module, the common problems are as follows:

  • The service is unavailable: ODP fails to obtain the mapping between the cluster name and the RS list from OCP. As a result, logon fails.

  • The returned result is incorrect: If ODP accesses OCP over HTTP to obtain a result, the obtained result is in the JSON format. If the format is incorrect, the result cannot be parsed correctly.

ODP obtains the RS list when you log on to access a cluster for the first time. ODP then saves the RS list to the memory. In subsequent accesses to the cluster, ODP directly obtain the RS list from the memory.

Notice

If an OCP issue occurs after the cluster memory information is created, you must troubleshoot the issue in a timely manner even if ODP still works properly.

Tenant routing

In OceanBase Database, a cluster has multiple tenants. The tenant routing feature of ODP allows you to access different tenants. Different from other tenants, the sys tenant is similar to an administrator tenant, and is related to cluster management. This section separately describes routing for the sys tenant and routing for a user tenant.

Routing for the sys tenant

After completing cluster routing, ODP obtains the RS list of the cluster. In this case, ODP logs on to a server in the RS list with the proxyro@sys account and obtains all the servers in the cluster from the DBA_OB_SERVERS view. In the implementation of OceanBase Database, the sys tenant is distributed on each node. Therefore, the result retrieved from the DBA_OB_SERVERS view is the routing information of the sys tenant.

ODP accesses the DBA_OB_SERVERS view every 15 seconds to maintain the latest routing information and to perceive node changes in the cluster.

In addition to the cluster server list, ODP also obtains information such as the partition distribution information, zone information, and tenant information from the sys tenant. Therefore, the sys tenant is crucial to ODP.

Routing for a user tenant

Unlike the routing information of the sys tenant, the routing information of a user tenant is about the servers where the tenant resources are located.

Notice

The routing information of a user tenant is not obtained from a unit-related table, but is obtained by using the special table name __all_dummy, which indicates a query for the tenant information. ODP obtains the server list of the tenant from the internal table __all_virtual_proxy_schema. For ODP to access the __all_virtual_proxy_schema table, you must specify the table name __all_dummy and the tenant name to obtain the node information of the tenant.

Tenant routing

ODP stores the obtained tenant information in the local memory and updates the cache information according to certain strategies. For the sys tenant, ODP initiates a pull task every 15 seconds to obtain the latest information. For user tenants, ODP refreshes the routing cache in accordance with the following strategies:

  • Creation: When you access a tenant for the first time, ODP accesses the __all_virtual_proxy_schema table to obtain the routing information of a user tenant and creates the routing cache.

  • Eviction: ODP disables the cache when the OBServer returns the OB_TENANT_NOT_IN_SERVER error code.

  • Update: ODP accesses the __all_virtual_proxy_schema table again to obtain the routing information of the user tenant when the cache is disabled.

In summary, in the multi-tenant architecture, ODP obtains metadata information from the sys tenant. The routing information of the sys tenant is a list of servers in the cluster. Then, ODP obtains the routing information of tenants from the metadata information. With the tenant routing feature, ODP supports the multi-tenant architecture of OceanBase Database.

Previous topic

Factors affecting data routing
Last

Next topic

Overview
Next
What is on this page
Cluster routing
Tenant routing
Routing for the sys tenant
Routing for a user tenant