1.数据库服务概览
1.1 数据库发展趋势
- 数据规模爆炸式增长,数据应用模式不断丰富。云计算大规模应用,传统业务模式发生转变。
1.2 云数据库优势
- 相比传统数据库,云数据库一般具有以下有点
- 易用性: 云数据库一般也是作为一个云服务提供,与其他云服务一样,可以快速部署和运行,同时一般还可以免去运维的工作。
- 高扩展: 针对云环境设计,基于开放式架构和云计算存算分离的环境,可扩展性更强
- 低成本:相比传统老牌数据库有着更低的软硬件成本,以及由于其他特性如云服务的按使用付费,按需抗展等特性带来的低总体拥有成本。
1.3 数据库分类:SQL & NoSQL
- 关系型数据库:采用了关系模型来组织数据的数据库。关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
- 非关系型数据库: 指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。
- 常见产品:
- 关系型数据库:sQL Server、MySQL、PostgreSQL.
- 非关系型数据库:Redis、Memcached、MongoDB。
1.4 华为云数据库全景图
- 数据库按照关系型数据库和非关系型数据库进行划分:
- 关系型数据库: RDS for MySQL、RDS for PostgreSQL、RDS for SQL Server、GaussDB ( for openGauss ) 、GaussDB ( for MySQL ) 。
- 非关系型数据库: GaussDB ( for Mongo )、GaussDB ( for Cassandra)、GaussDB( for Redis ) 、GaussDB ( for Influx ) 、DDS、DCS。
- 数据库生态服务主要包括:DDM、DRS、UGO。分布式数据库中间件DDM 分布式数据库中间件( Distributed DatabaseMiddleware,简称DDM),专注于解决数据库分布式扩展问题,突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问。
- DDM是由华为云自主研发的云原生分布式数据库中间件,采用存算分离架构,提供分库分表、读写分离、弹性扩容等能力,具有稳定可靠、高度可扩展持续可运维的特点。服务器集群管理对用户完全透明,用户通过DDM管理控制台进行数据库运维与数据读写,提供类似传统单机数据库的使用体验。
- 产品优势:自动分库分表、读写分离、弹性扩容。
2.云上数据库服务对比和选型
2.1 关系型数据库服务
2.1.1 SQL云上设计原则
- 场景介绍:
- 小系统,周边应用:十万级QPS,小型OLTP,数据量数十~数百GB。
- 企业级应用:百万级QPS,中型OLTP,数据量TB~数十TB。
- 核心高并发业务系统: 超大型OLTP,混合负载,原生分布式,十TB以上。
2.1.1.1 云数据库RDS
- 安全性:
- 云数据库RDS实例运行在租户独立的虚拟私有云内,可提升云数据库RDS实例的安全性。用户可以综合运用子网和安全组的配置,来完成云数据库RDS实例的隔离。
- 访问控制:
- 创建云数据库RDS实例时,云数据库RDS服务会为租户同步创建一个数据库主帐户,根据需要创建数据库实例和数据库子帐户,将数据库对象赋予数据库子帐户,从而达到权限分离的目的。
- 传输加密:
- 使用从服务控制台上下载的CA根证书,并在连接数据库时提供该证书,对数据库服务端进行认证并达到加密传输的目的。
- 存储加密:
- 云数据库RDS服务支持对存储到数据库中的数据加密后存储,加密密钥由数据0加密服务的KMS进行管理。
- 数据删除:
- 安全删除不仅包括数据库实例所挂载的磁盘,也包括自动备份数据的存储空间删除的实例可以通过保留的手动备份恢复实例数据,也可以使用回收站保留期内的实例通过重建实例恢复数据。
2.1.1.2 RDS服务支持的引擎
- RDS for MySQL:
- 架构成熟稳定,支持流行应用程序,适用于多领域多行业;支持各种WEB应用成本低,中小企业首选。
- 管理控制台提供全面的监控信息,简单易用,灵活管理,可视又可控。
- 随时根据业务情况弹性伸缩所需资源,按需开支,量身订做。
- RDS for PostgreSQl
- 支持postgis插件,空间应用卓越。
- 适用场景丰富,费用低,随时可以根据业务情况弹性伸缩所需的资源,按需开hw35802903支,量身订做。
- RDS for SQL Server:
- 云数据库RDS for SQL Server具有稳定可靠、安全运行、弹性伸缩、轻松管理和经济实用等特点。拥有高可用架构、数据安全保障和故障秒级恢复功能,提供了灵活的备份方案
2.1.2 云数据库RDS for MySQL
- 数据库类型及版本:MySQL 5.6、5.7、8.0。
- 数据安全: 多种安全策略保护数据库和用户隐私。
- 数据高可靠:数据库存储支持三副本几余,
- 数据库数据可靠性高在99.9999999%(9个9)以上,备份数据可靠性高达99.999999999% (11个9 )
- 服务高可用(同城容灾): 主备实例支持AZ内或跨AZ部署,服务可用性高,在99.95%以上。
- 实例访问: 多种访问方式,包括: 内网IP访问、公网IP访问、VPN访问
- 实例管理:支持实例的增、删、改、查、重启等生命周期管理。
- 弹性伸缩: 水平伸缩,增删只读实例(最多5个 ),垂直伸缩,实例规格变更,存储空间扩容( 最大10 TB )。
- 备份与恢复: 备份,自动备份、手动备份,全量备份、增量备份,备份文件的增、删查、复制等生命周期管理。恢复,恢复到备份保留期内任意时间点( Point-In-TimeRecovery,简称PITR )/某个全量备份时间点,恢复到新实例/原实例。备份保存周期高达732天。
2.1.2.1 跨AZ高可用
- 用户在创建数据库时,可以选择主备模式的实例类型。当主库发生故障时,会自动切换到备库继续对外提供服务。当备库也发生故障时,会自动访问另一可用区下的主备库对外提供服务。
- RDS结合DDM,最多可支持创建5个只读副本,主备完成写数据,只读副本只完成读数据,做到流量自动切分
- 主备模式对外提供的是VIP(虚拟IP),当VIP绑定在数据库1时,该数据库就是主库当主库发生故障时,VIP会飘到备库,备库此时就变成了新的主库。VIP内部漂移,秒级完成,始终对外提供服务。用户侧完全无感知。
- 限制条件:用户在购买数据库后,才可以创建只读副本。
2.1.2.2 读写分离
- 当创建只读副本后,数据库对外提供服务时,首先会对用户侧的请求进行区分,判断请求的类型究竟是写数据还是读数据。如果是写数据,就将该请求路由的主备库,完成数据的写操作。如果是读数据,则将该请求路由到只读副本,完成数据读取。
2.1.2.3 数据高安全
- 支持自定义配置的天数(即备份保留期,取值0-732)保留此自动备份
2.1.2.4 内核优化
2.1.2.5 案例
2.1.3 云数据库RDS for PostgreSQL
- 数据库: 提供支持9.5/9.6/10.0/11/12版本
- 安全:多种安全策略保护数据库和用户隐私。
- 数据迁移:支持云上/云下以及跨云在线迁移和离线迁移
- 高可用:将主数据库实例数据复制到一个备用数据库实例中,一旦主数据库实例发生故障导致不可用,即可在很短时间内切换到备用数据库实例上
- 监控:支持监控数据库实例及数据库引擎的关键性能指标,包括计算/内存/存储容量使用率、I/O活动、数据库连接数、QPS/TPS、缓冲池、读/写活动等。
- 弹性伸缩: 水平伸缩,增删只读实例(每个数据库集群最多5个只读实例);垂直伸缩,数据库实例规格变更,一键扩容,不中断业务。
- 备份与恢复: 备份,支持自动备份、手动数据备份,恢复,支持恢复到某个备份文件点。
2.1.3.1 高可靠性和高可用性
- PG支持跨AZ高可用,主库出现故障,会启动故障检测三次拉起,如无法拉起就会自动进行故障切换,主库切换到备库,3 备库升为主库,只读实例也会自动挂到新的主库下,这种切换是秒级别的。
- 华为云数据库提供数据备份和恢复能力,用户可以自行设置自动备份策略,支持每天的自动备份,备份周期最长可达732天,同时每五分钟会做一次增量备份,保证数据的可靠性。
- 如果数据发生异常或者误删除等,可以支持将数据库恢复到之前的任意时间点
- 备份的文件存储到了OBS,OBS本身无容量上线,提供了11个9的数据可靠性。
2.1.4 数据库选型
2.1.5 数据库对比
- 说明:颜色的相近,代表符合度高低。这里都使用了蓝色,表示大部分场景pg和mysql都可以使用。
- 数据库的使用程度和架构设计习惯,比如一些游戏和互联网公司,对数据库仅仅是当成数据存储工具5是“种轻数据库重应用的模式,那么这种情况下,使用PG和MySQL都可以。但是如果很多功能都是依赖数据库的特性,那么推荐使用PG。数据库中间件是基础软件,稳定可靠,而且开源数据库自主可控,选择依赖这样的基础软件是合理的
- 业务上是纯粹的事务型还是事务分析混合的场景?前者的话,遵照公司原有的习惯,如果是后者,推荐使用PG,PG的分析能力是非常优秀的。
- 存储过程使用很多的话,推荐使用PG,否则遵照公司的习惯
- 如果有异构数据库访问的需求,推荐使用PG,PG提供了Foreign DataWrapper,使得用户可以通过SQL访问PG之外的数据。
- 对于复杂类型的使用,推荐使用PG,PG的数组、空间数据类型,网络数据类型JSON、XML等都已经非常成熟,且支持自定义
- 有地理信息、空间、异构数据库访问、机器学习、文本检索、图像、时序、多维、分词等需求,且不想再引入新的专门的数据库,那就推荐使用PG。
2.1.6 案例
2.1.7 云数据库GaussDB (for MySQL)
- 共享DFV存储:
- 只有一份存储。添加一个只读节点时,只需添加一个计算节点,无需再额外购0买存储。如果只读节点越多,节省的存储成本更多。
- Active-Active架构:
- 不再有备库的存在,所有的只读都是Active状态,并且承担读流量,使得资源利用率更高。
- 日志即数据架构:
- 不再需要刷page,所有的更新操作仅记录日志,不再需要double write。减少了宝贵的网络带宽。
2.1.7.1 并行执行
- 32核256GB测试100G数据量的TPCH查询语句,16线程并发场景下 性能提升8倍
2.1.7.2 水平扩展
- GaussDB ( for MySQL)读写性能线性扩展:
- 当增加节点数时,因为底层采用DFV分布式存储,因此不需要为新增加的节点重新划分存储,和其他节点一样,共用同。块存储即可
2.1.7.3 高效备份
- 和传统数据库故障恢复相比,GaussDB ( for MySQL)在恢复数据时,会逐渐恢复部分数据并对外提供服务,直至数据全部恢复。而传统数据库则是全部恢复后,才对外提供服务。
2.1.7.4 案例
2.1.8 云数据库GaussDB (for openGauss)
- 高安全:
- GaussDB(for openGauss )拥有TOP级的商业数据库安全特性:数据动态脱敏TDE透明加密,行级访问控制,密态计算。能够满足政企&金融级客户的核心安hw35ow.3.全诉求。
- 健全的工具与服务化能力:
- GaussDB( for openGauss )已经拥有华为云,华为云Stack的商用服务化部署能力,同时拥有DAS、wUGO、DRS等生态工具。有效保障用户开发,运维,优化,监控,迁移等日常工作需要
- 全栈自研:
- GaussDB( for openGauss )基于鹏生态,是当前国内唯一能够做到全栈自主可控的国产品牌80同时GaussDB( for openGauss)能够基于硬件优势在底层不断进行优化,提升产品综合性能。
- 开源生态:
- GaussDB( for openGauss)已经支持开源社区,并提供主备版版本下载。
2.1.8.1 关键角色
- ETCD:一致性组件
- CMS:做集群管理,主备切换控制,高可用相关
2.1.8.2 高性能-分布式并行执行框架
2.1.9 高性能-分布式事务处理性能, GTM-Lite技术
2.1.9.1 案例:GaussDB助力智慧化业务运营
2.2 非关系型数据库服务
2.2.1 NoSQL云上设计原则
2.2.2 文档数据库服务DDS
- 数据库类型及版本:兼容MongoDB 4.0/4.2版本。
- 数据安全: 多种安全策略保护数据库和用户隐私。数据高可靠: 数据库存储支持三副本几余,数据库数据可靠性高,达到99.9999999%( 9个9 ),备份数据持久性高达99.9999999999% (12个9 )
- 服务高可用(同城容灾):集群/副本集实例支持AZ内或跨3AZ部署,服务可用性高在99.95%以上。
- 实例监控: 支持监控数据库实例OS及DB引擎的关键性能指标,包括计算/内存/存储容量使用率、I/O活动、数据库连接等
- 弹性伸缩: 水平伸缩,增删shard分片(最多32个),支持7节点副本集,支持只读节点;垂直伸缩,实例规格变更,存储空间扩容(最大32*2TB )。
- 备份与恢复: 备份,v自动备份、手动备份,全量备份、增量备份,备份文件的增、删查、复制等生命周期管理;恢复,支持恢复到备份保留期内任意时间点( Point-ln-Time Recovery, PITR)/某个全量备份时间点,恢复到新实例/原实例。备份保存周期高达732天。
2.2.3 高可靠性-在线扩容不中断,存储三副本
2.2.4 高可靠性-数据归档,备份恢复
2.2.5 跨可用区备份-备份跨Region复制,异地可还原
2.2.6 跨可用区容灾-跨Region实时容灾,实时数据同步
2.2.7 案例:助力游戏产业
- 游戏场景
- 在游戏应用中,可以将-些用户信息,如用户装备、用户积分等存储在DDS数据库中游戏玩家活跃高峰期,对并发能力要求较高,可以使用DDS的集群类型,应对高并发场景。DDS副本集和集群架构的高可用特性,能够满足游戏在高并发场景下持续稳定运行。
- 另外,DDS兼容MongoDB具有No-Schema的方式,能免去在游戏玩法变化中需要变更表结构的痛苦,非常适用于灵活多变的游戏业务需求。用户可以将模式固定的结构化数据存储在云数据库RDS中,模式灵活的业务存储在DDS中,高热数据存储在GaussDB ( for Redis)里,实现对业务数据高效存取,降低存储数据的投入成本。
2.2.8 云数据库GaussDB (for NoSQL)
- 兼容Cassandra接口:
- 支持宽列数据模型
- 超强写入性能,适用于IoT、金融反欺诈检测等场景
- 兼容MongoDB接口:
- 支持文档数据模型。
- 读写性能、灵敏性、可靠性等方面有卓越的优势。
- 兼容Redis接口:
- 云上首款计算存储分离的Redis数据库产品。
- 数据可靠性,伸缩性,性价比等方面有突出优势。
- 兼容InfluxDB接口.
- 专为时序数据设计的集群架构和数据布局
- 高写入性能和高压缩率。
2.2.9 云数据库GaussDB (for Redis)
- GaussDB( for Redis )具有高性价比、弹性伸缩、冷热分离等特点。
- 高性价比:
- 基于共享存储,在提供足够性能的前提下,大幅度降低海量数据使用Redis的成本
- 将数据全部存储在磁盘中,并实现了冷热分离,解决了缓存( cache)与数据库database,DB)之间交互访问的问题,提高了程序可读性与程序运行效率。
- 无损弹性伸缩:
- RocksDB深度定制,秒级分裂弹性扩容。
- 扩缩容无需搬迁数据,快速而平滑。
- 通过proxy代理,使上层业务可以不感知内核处理扩缩容过程中的数据迁移。
- 冷热分离:
- 热数据常驻内存,冷数据全量持久化存储,替代Redis+MySQL的冷热分离架构。0实现冷热数据的自动交换,用户无需人工交换数据,代码开发更简洁
2.2.10 案例:助力能源产业
- GaussDB (for Redis)在兼容Redis接口的同时,又提供了大容量,低成本,高可靠的数据存储能力,可以作为此类持久化存储场景的理想解决方案。
2.2.11 云数据库GaussDB (for Mongo)
2.2.12 案例:助力游戏产业
- 游戏场景.
- 兼容MongoDB协议,游戏应用可以将一些游戏数据,如用户装备、用户积分等存储其中。游戏玩家活跃高峰期,对并发能力要求较高,可以快速灵活添加计算节点以应对高并发场赛
3.数据库迁移计划
- 华为云数据库迁移整体解决方案
- 数据库迁移方法
- 通常采用UGO+DRS组合的形式实现数据库的迁移。当用户从云下或其他云厂商将数据库迁移至华为云时,先使用UGO工具对源库进行分析,结合实际场景并参考UGO工具提供的方案,对数据库开始迁移。数据复制服务DRS通过数据全量+增量迁移技术,实现数据从源库到目标库的迁移。
3.1 数据复制服务 DRS
、
- 易操作:
- 传统场景中,需要专业的技术背景,步骤复杂,技术门槛比较高
- 周期短
- 传统场景下需要人工部署,短则几天,长则上周或上月
- 低成本:
- 传统场景下投入高,业务无法按需灵活付费
- 低风险
- 传统场景下需要中断业务手动迁移、存在迁移失败数据丢失的风险
3.1.1 实时迁移
- 实时迁移支持多种网络迁移方式,如: 公网网络、VPC网络、VPN网络和专线网络通过多种网络链路,可快速实现跨云平台数据库迁移、云下数据库迁移上云或云上跨区域的数据库迁移等多种业务场景迁移
3.1.2 备份迁移
3.1.3 实时同步
3.1.4 数据订阅
3.1.5 实时灾备
3.1.6 案例:助力汽车产业
3.2 数据库迁移工具 UGO
- HCIP学习笔记-数据库服务规划-5
该服务目前处于商用阶段,仅开发华南-广州和亚太-新加坡区域
3.2.1 源库画像
- UGO核心能力之源库画像:
- 源库画像以海量业务场景为样本,以数据库关键指标为特性进行训练,抽象出数据库的信息全貌,为进一步精准、快速地分析源库的应用场景、用户操作习nw3580惯等重要信息,提供了足够的数据基础。
3.2.2 目标选型与规格
- UGO核心能力之目标选型与规格:
- 依据源库画像输入,综合兼容性、性能、对象复杂度、使用场景等,智能推荐合适的目标库选型及优先级yo以及不同选型下的规格及成本。
3.2.3 兼容性分析
- UGO核心能力之兼容性分析
- 以源库画像为输入,通过UGO内核对目标库的转化率,对14个核心对象类型进行兼容性分析,兼容性分析包含原生支持、UGO支持和不支持。通过过去几年对内核的持续建设,UGO在亿级别样本训练的基础上可达到高语法转换率
3.2.4 工作量评估
- UGO核心能力之工作量评估:
- 依据海量业务场景下的实际人力迁移成本,作为评估基线,依据大量业务场景自动化迁移过程,累计迁移工作量作为输入,结合代码量、转化率、不兼容特性改造难度等,综合输出迁移工作量评估。
3.2.5 数据库结构迁移
- UGO核心能力之数据库结构迁移:
- 结构迁移以预迁移评估为输入和方案指导,支持用户在转换前自定义过滤迁移对象,转换完成后,标记转换失败对象和失败原因,用户可以根据失败原因进行对象校正,校正之后进行验证测试,验证失败对象回到校正步骤进行重新修改,持续提交验证,直至所有对象验证成功后,整个迁移实施流程结束。