数据库实例连接
什么是数据库实例连接?
数据库实例连接ID(ConnectionID)是DAS(数据库管理服务)中用于标识一条数据库登录记录的唯一标识符。当您想在DAS中操作某个数据库时,首先需要创建一个“连接”,系统会为这个连接分配一个唯一的数据库实例连接ID。
可以把数据库实例连接ID理解为您与数据库之间的“钥匙”——有了它,您才能登录数据库、执行SQL、查看表结构、进行性能诊断等操作。
数据库实例连接ID的核心作用
一个数据库实例连接ID承载了访问数据库所需的全部信息,具体包括:
| 信息类别 | 包含内容 |
|---|---|
| 实例信息 | 实例ID、实例名称、引擎类型、引擎版本 |
| 登录凭据 | 数据库用户名、密码(加密存储)、是否保存密码 |
| 网络地址 | IP地址、端口号 |
| 归属信息 | 租户ID、项目ID、用户ID |
| 功能开关 | 元数据采集、SQL记录、默认登录 |
| 连接类型 | 普通连接/共享连接 |
数据库实例连接ID的生成方式
数据库实例连接ID在创建连接时由系统自动生成,采用UUID格式,例如:
a1b2c3d4-e5f6-7890-abcd-ef1234567890
生成规则如下:
UUID.randomUUID().toString()
您无需手动指定数据库实例连接ID,系统会在您创建连接时自动分配。
数据库实例连接ID的生命周期
- 创建连接。 创建连接时系统会进行以下校验:
- 配额检查:每个项目可创建的连接数有上限。
- 重复检查:同一实例+同一数据库用户不能重复创建。
- 连通性检查:测试数据库是否可达、用户名密码是否正确。
- 使用连接。
通过数据库实例连接ID,您可以:
- 登录数据库,执行SQL查询。
- 查看数据库表结构、索引等元数据。
- 进行SQL性能诊断和调优。
- 查看数据库会话、锁信息。
- 导入导出数据。
- 连接状态。
表2 连接状态 状态值
状态名
含义
0
INIT
正常,可使用
300
EXPIRED
已过期
400
DELETED
已删除
500
NO_INSTANCE
对应的数据库实例已不存在
连接删除是软删除(状态标记为400),而非物理删除,这样可以保留操作历史记录。
- 删除连接。
删除连接时:
- 系统将状态标记为400(软删除)。
- 自动清理相关的缓存和登录会话。
- 发送Kafka消息通知其他模块。
数据库实例连接ID与实例的关系
- 一个实例可以有多个连接(不同用户、不同数据库)。
- 一个连接只属于一个实例。
- 当实例被删除时,其下所有连接状态会自动更新为NO_INSTANCE。
共享连接
支持的数据库类型
DAS的连接功能支持多种数据库引擎:
| 数据库来源 | 支持的引擎 |
|---|---|
| RDS | MySQL、PostgreSQL、SQL Server |
| TaurusDB | TaurusDB |
| GaussDB | GaussDB |
| DDS | MongoDB |
| GeminiDB | Cassandra、Redis、MongoDB、InfluxDB、DynamoDB |
| DDM | DDM |
| ECS | 自建数据库 |