数据库 Database
为什么需要 Database?
Database 是 ProtonBase 平台中存储和管理数据的核心组件。它采用了先进的存算分离架构,使得数据可以独立于计算资源存在,提供了更高的灵活性和成本效益。
Database 的核心价值:
- 数据持久化:安全可靠地存储业务数据
- 灵活绑定:可以动态绑定到不同的 Warebase 实例
- 独立存在:数据可脱离计算单元独立存在
- 高效管理:支持备份、恢复、重命名等管理操作
数据库(Database)是用户存放数据的集合。由于采用了存算分离架构,Database 可以绑定到某一 Warebase,形成类似于传统 Postgres 中的 Database 概念,供用户进行增删改查。Database 也可以脱离于计算单元(Warebase)而独立存在。
Database 和 Warebase 绑定方式主要有:
- 通过 SQL 在 Warebase 中创建 Database(如
CREATE DATABASE xxx
),新创建的 Database 信息将展示在 Data Cloud 的"数据库"页面。 - 在 Warebase 中解绑(Detach)Database,生成不与任何 Warebase 绑定的 Database,可再次绑定(Attach)至原来或另一个 Warebase。
- 通过备份(Backup)并恢复(Restore)到特定 Warebase。
Database 和 Warebase 解绑方式包括:
- 通过 SQL 在 Warebase 中删除 Database(如
DROP DATABASE xxx
)。 - 通过解绑(Detach)操作,将 Database 从 Warebase 中解除绑定。
注意事项:Database 和 Warebase 关系的变化及存储大小的更新,目前存在几分钟的延迟。
Database 的查找
在数据库页面,默认情况下会分页展示当前 Data Cloud 下所有 Database 的情况。主要信息包括数据库句柄(Handle)、Database 和 Warebase 绑定后的数据库命名(DatabaseName)、绑定状态(Attached/Detached)、存储大小等,还包括当前数据库的各种操作。此外,页面还显示数据库总存储大小、各状态下存储大小以及各 Warebase 绑定的 Database 存储大小,如下图所示:
搜索框提供丰富的搜索功能,包括:
- 模糊搜索:在搜索框中输入关键词(如 "post"),会列出包含该关键词的数据库句柄(Handle)、Warebase 名称(WarebaseName)、数据库命名(DatabaseName)等字段的 Database 条目。
- 精确匹配:
搜索框支持使用"字段名:字段值"的格式进行精确匹配。例如: - handle:精确匹配 handle
字段的值,如:handle:postgres-9c1475d0 - DatabaseName:精确匹配 databaseName 字段的值,如:DatabaseName:postgres
- warebaseId:精确匹配 warebaseId 字段的值,如:warebaseId:wb3vlgqzev - warebaseName:精确匹配 warebaseName 字段的值,如:warebaseName:v_warebase - state:精确匹配 state 字段的值,目前支持 attached 和 detached(其他值无效),如:state:attached
注意事项:- 模糊搜索和精确匹配可以混合使用,用空格分割。 - 多个精确匹配可以混合使用,用空格分割。 - 多个模糊搜索关键词将仅显示最后一个关键词的结果,多个相同 key 的匹配将仅显示最后一个 key 对应值的匹配结果。 - 所有 key 不区分大小写,所有值(包括模糊搜索)区分大小写。
搜索最佳实践:
- 使用精确匹配提高搜索准确性
- 组合多个条件进行复杂搜索
- 定期清理无用的数据库以提高搜索效率
Database 的管理
我们为 Database 提供了多种操作,包括重命名数据库句柄(Handle)、Database 与 Warebase 解绑(Detach)、Database 与 Warebase 绑定(Attach)、备份(Backup)、恢复(Restore)以及删除 Database(Drop)等。
- 重命名: 在新建数据库时,系统会自动创建一个数据库句柄,通常以绑定后的数据库名作为前缀。用户可以根据自身习惯或规划对数据库句柄进行重命名。需要注意的是,数据库句柄在同一 Data Cloud 下必须保持唯一。这项重命名操作既可以适用于单个 Database,也可以批量对多个 Database 进行。
- 解绑:已绑定的 Database 可从 Warebase/数据库名称 解绑,前提是 Warebase 处于"运行中"状态。
- 备份:详情见"备份和恢复"页,前提是 Warebase 处于"运行中"状态。
- 恢复:详情见"备份和恢复"页,前提是恢复目标的 Warebase 处于"运行中"状态。
- 绑定:将 Database 绑定到特定的 Warebase,前提是 Warebase 处于"运行中"状态。
- 删除:删除 Database,等同于执行 DROP DATABASE xxx,前提是 Warebase 处于"运行中"状态。
进入 Database 详情页面,可以查看详细信息并设置 PITR 时间窗口,如下图所示:
在存储页中,用户可以自定义时间范围,查看 Database 存储大小的变化曲线。
Database 管理最佳实践:
- 命名规范:使用清晰的命名规范,便于识别和管理
- 定期备份:制定并执行定期备份策略
- 权限控制:合理设置数据库访问权限
- 监控告警:设置存储空间和性能监控告警
- 生命周期管理:及时清理无用数据库以节省资源
Database 操作注意事项:
- 执行删除操作前请确认数据已备份或不再需要
- 解绑操作会导致数据库暂时无法访问
- 绑定操作需要目标 Warebase 处于"运行中"状态
- 备份和恢复操作需要相应的权限