---
title: "数据库连接规范 - OceanBase 数据库 V4.3.4 | OceanBase 文档中心"
description: 数据库连接规范 本文介绍在 OceanBase 中进行数据库连接的规范。 使用连接池的时候需要设置一个连接最大的空闲时间。 前端程序连接数据库或者数据库代理层，对于 jdbc 建议连接超时设置为 1 秒，要具备失败重连机制，且失败重连必须有间隔时间。 程序端日志必须记录连接数据库的标准 OceanBase 错误码以及…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.4

# 数据库连接规范

更新时间：2024-12-29 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/700.reference/400.database-design-specifications-and-practices/400.database-connection-specification.md)  

本文介绍在 OceanBase 中进行数据库连接的规范。

- 使用连接池的时候需要设置一个连接最大的空闲时间。
 - 前端程序连接数据库或者数据库代理层，对于 jdbc 建议连接超时设置为 1 秒，要具备失败重连机制，且失败重连必须有间隔时间。
 - 程序端日志必须记录连接数据库的标准 OceanBase 错误码以及所连接的数据库信息（比如 IP 和 PORT，数据库用户名），用于 DBA 排查错误
 - 对于有连接池的前端程序，必须根据业务需要配置初始、最小、最大连接数，建议超时时间设置为 30 秒，且要设置连接检测或空闲超时，以及连接回收机制（最大 3600 秒）。
 - 程序端使用的连接数据库的 so 库包、jar 库包以及客户端数据库版本，必须与线上数据库服务器的版本兼容。
 - 切换 DB，不推荐执行 `use <dbname>`，推荐使用 `Connection.setCatalog(dbname)` 接口。
 - 设置 ReadOnly，不推荐执行`set session transaction readonly`，推荐使用 `Connection.setReadOnly(xx)` 接口。
 - 执行单个事务语句（无论是单 SQL 事务语句，还是多 SQL 的事务语句）之前，必须重新 `getConnection`，执行完后必须 `close connection`。不能在一个过程中执行多个事务，即需按照以下方式使用: `getConnection，执行单事务语句，close connection`。需要特殊说明的原因是，OceanBase 当前限制单个事务只能在单个 server上 完成整个生命周期，即在单个 server上开始事务，执行事务，结束事务。不保证在 A server 上开启的事务，在 B server上同样有效。具体影响到 JAVA Connector 中, 就是当前连接处于事务中时, 下一条 SQL 只能路由到上一个 server 上，不能路由切换到其它 server，当前连接不在事务中时，可以根据下一条SQL路由到最佳 server 上。

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