分步式数据库容器化部署是依托标准云原生服务模型及管理模式进行管理,为确保数据库系统始终处于服务能力和性能的最佳状态,且保障数据库系统的极致稳定性和业务连续性,需要设计一套管理完善及技术上可实现的性能容量管理标准规范。包括性能要求与容量要求。
(1)性能要求。禁止出现大事务或者长时间不提交/回滚的长事务。禁止联机交易大表出现全表扫描。联机程序谨慎使用JOIN,批处理禁止复杂 JOIN(超过 3 张表)。JOIN 操作必须有关联条件,避免笛卡尔积,影响 SQL 执行效率。禁止使用外键与级联。禁止使用存储过程、自定义函数、触发器、定时作业、视图。系统正式投产前必须评估系统是否需要进行性能压测。尽量用标准 SQL 语法。表清空建议采用 truncate 方式。只读应用建议从 follower 访问。应用分表或采用分区表、多表间并发,避免同一个索引扫描时交叉互锁。避免使用子查询,尽可能改用JOIN 操作。将复杂 SQL 拆分为多条简单 SQL。表数据量发生较大变化时建议进行统计信息显式收集。
(2)容量要求。合理控制数据库容量,数据库单库、单表容量。单库最大容量建议不超过 500GB,非分区表的单表存储容量(OLTP)建议不超过20GB,非分区表的单表记录数(OLTP)建议不超过 1000 万行,单库、单表容量过大影响性能、备份恢复效率。如超出此容量规格,建议进行垂直或水平分库分表。建议普通类系统一个实例下不超过 10 个 schema,重要类系统一个实例下不超过 3 个 schema。对于表空间占用较大且持续增长的表必须配置清理策略。联机交易系统当前库禁止保留超过 13 个月的历史数据。禁止在分布式数据库中存储图片,文件等大的二进制数据。
GoldenDB 管理节点( CM / PM / MDS / InsightServer 等)部署在物理机/虚机/容器中,非管理节点( CN / DN / GTM / LDS 等)部署在容器中。根据 oneKeyInstallUpdate/install/dockerfile目录下的 docker 文件,制作管理节点和非管理节点( CM / PM / MDS / InsightServer / CN / DN /GTM / LDS 等)镜像。以镜像启动这些容器,在管理节点部署完成之后,调用接口将非管理节点纳入集群,统一对外提供服务。 GoldenDB 容器化部署带来了许多优势,使得数据库管理更加灵活、高效和可靠。
容器化部署提供了更高的可靠性和安全性。 GoldenDB 容器可以通过隔离机制确保应用程序和数据的安全性,避免了因为一个容器的故障或安全问题而影响整个系统。此外,容器化部署还可以实现快速的回滚和恢复,保证数据库服务的高可用性和业务连续性。




