技术解读数据库如何实现“多租户”?

💡 原文中文,约3700字,阅读约需9分钟。
📝

内容提要

本文介绍了GaussDB多租技术,实现数据库领域的多租户隔离和扩展。通过划分逻辑处理单元PDB实现数据隔离,支持PDB粒度的资源管理和实例发放。具有隔离性、资源管理灵活、实例发放效率高等特点。支持1U级别的PDB规格,提供PDB相关增强功能。

🔎

延伸解读

多租户实现路径对比

文章指出,数据库多租户可通过虚拟机多租、容器多租和数据库内核多租实现。虚拟机与容器多租在安全隔离上有天然优势,但存在虚拟化管理层、操作系统层和数据库公共层的额外开销。内核多租由数据库内核直接提供多租特性,底噪小,在资源整合与弹性伸缩方面更具优势,能实现更高的缩容能力,提升计算资源利用率。

PDB隔离机制与用户透明性

GaussDB通过划分逻辑处理单元PDB实现多租,每个PDB拥有独立的表、索引、用户、角色、表空间及定时任务等对象,且兼容模式、线程组、GUC配置参数也完全隔离,保障租户数据安全隐私。同时,用户业务开发无需感知使用的是PDB还是物理实例,操作方式没有区别,降低了业务适配成本。

内核资源管理的效率优势

GaussDB内核接管PDB资源的分配与变更,不依赖外部组件。每个PDB可设置CPU、内存、IO规格,通过资源计划管理,并支持一键切换所有PDB资源规格。相比虚拟机规格变更需经历关机、IaaS调度、开机、数据库拉起等漫长过程,PDB资源变更通过SQL语句即可完成,实现秒级变更且业务无感知,同时整合后台工作,减少底噪,提高资源利用率。

小规格与运维增强

GaussDB支持1U级别的PDB规格,而虚拟机多租和容器多租一般只能提供8U级别的商用规格。这是因为内核多租在GaussDB进程中划分逻辑实例,共享后台任务,管控指标监控连接一次即可收集所有PDB数据,大幅减少底噪。此外,支持关闭不需要的PDB以释放资源,WDR报告中集成PDB信息及PDB级别的SQL Statistics等视图,方便DBA进行运维处理。

❓

Q&A

GaussDB的多租技术如何实现数据隔离?

GaussDB通过划分逻辑处理单元PDB实现数据隔离,确保每个PDB之间的数据完全独立,互不干扰,保障租户数据的安全隐私。

多租户技术对企业有什么好处?

多租户技术帮助企业节约硬件和运维成本,提高资源利用效率,同时在安全性和隔离性方面进行了设计,满足扩展需求。

GaussDB支持哪些多租户实现方式?

GaussDB支持虚拟机多租、容器多租和数据库内核多租等多种实现方式。

PDB的资源管理是如何进行的?

PDB的资源分配与变更由GaussDB内核接管,支持PDB粒度的资源管理,包括CPU、内存和IO等资源的配置。

GaussDB的实例发放效率如何?

GaussDB内核多租技术的实例发放效率高于虚拟机多租,使用SQL语句即可在秒级时间内完成PDB的创建、打开、关闭和删除。

如何关闭不需要的PDB以节约资源?

可以通过执行ALTER PLUGGABLE DATABASE [pdbname] CLOSE语句来关闭不需要的PDB,从而释放其占用的CPU、内存和IO资源。

🏷️

标签

➡️

继续阅读