华为GaussDB100数据库的基础知识概述

举报
社会主义的一块砖 发表于 2019/12/19 14:51:48 2019/12/19
【摘要】 整理了关于GaussDB OLTP(GaussDB100)相关的基础知识点,希望大家通过本文对aussDB 100有个基础的了解。GaussDB OLTP数据库(即GaussDB100)是一款企业级的高性能、高可用、高安全分布式关系型数据库。2002年由华为公司开始研发...

摘要:整理GaussDB OLTP(GaussDB100)相关的基础知识点,希望大家通过本文对高斯100有个基础的了解。


一、GaussDB100产品简介
GaussDB OLTP数据库(即GaussDB100)是一款企业级的高性能、高可用、高安全分布式关系型数据库。2002年由华为公司开始研发,2008年形成初期的稳定版本,目前支持x86和Kunpeng硬件架构;支持Sharding数据分片架构,满足业务对数据库水平扩展能力的要求,突破单机数据训存储容量和性能瓶颈,解决业务互联网化带来的峰值流量访问问题。并能够提供两地三中心部署方案,抵抗单点故障、站点级故障支持城市级容灾。
GaussDB100是对应用全透明的分布式数据库,基于创新性数据库内核,具备如下特征:
• 极致性能:高并发(单机百万tpmc)、高扩展(性能线性扩展比大于0.8)
• 安全可靠:高可靠(支持双机冷热备份和两地三中心多种保护方式)、高安全(支持数据闪回和回收站)
• 简单易用:易开发(兼容SQL2003标准,支持存储过程和多种API接口)、易运维

二、GaussDB100产品特点
下面概括性地了解一下GaussDB100的产品设计特点。

  1. 高性能
    • 查询优化:内置基于规则的优化器(RBO)和基于成本的优化器(CBO),同时构建了一系列的查询优化特性,最大限度地提升查询性能
    • 并行查询:多行数据处理时,可指定并行查询,充分利用服务器CPU资源
    • MVCC:以时间戳为基础,基于undo的行级MVCC(多版本并发控制),读写互不阻塞,提升并发修改和并发访问能力
    • 并发控制:运用锁、MVCC、数据库隔离级别等并发控制机制保证数据库高并发场景下的数据强一致性
    • 共享内存区:支持将执行计划缓存在shared_pool中,提高解析效率
    • 分区技术:支持范围、哈希、列表、间隔分区方式,支持查询分区裁剪。

  2. 高可靠
    • 闪回与回收站:闪回查询能够查询用户错误操作前的时刻的“历史”数据;回收站可将drop的表对象还原,恢复表数据。
    • 逻辑复制:支持逻辑复制,可实现与其它异构数据库之间的数据同步、多个实例数据汇总到一个实例、业务在线升级、关键表数据变化跟踪、备份数据分组权限控制等应用场景。

  3. 高可用
    • 支持滚动升级、闪回、在线重定义功能,保证数据库不停机、业务不中断
    • 支持全量、增量备份,同步备库,保证数据安全

  4. 高容量
    • 支持bigfile表空间

  5. 低成本
    • 丰富的SQL能力、广泛SQL语法支持,跨库迁移成本较低
    • 支持标准接口,如ODBC/JDBC,命令行工具
    • 支持基于x86、鲲鹏硬件架构的主备、分布式多种部署方式

三、GaussDB100系统架构
GaussDB100采用Shared-nothing架构的分布式系统,由众多拥有独立且互不共享CPU、内存、存储等系统资源的逻辑节点组成。业务数据被分散存储在多个主机上,数据访问任务被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。GaussDB100提供了单机、主备、分布式三种部署架构,用户可按资源配置情况及业务系统的规模选择性采用。

  1. 单机部署架构
    image.png
    • Database Manager:对集群数据库进行安全的监控和运维操作
    • Data Studio:集成开发环境,类似于pl/sql developer或MySQL Workbench

image.png
借单机部署架构,了解GaussDB100的软件模块组成及功能,主备和分布式架构基本类似,就不再赘述:
• CM:集群管理模块(Cluster Manager)。管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行
• DN:数据节点(Datanode)。负责存储业务数据,执行数据查询任务以及向CN返回执行结果
• ETCD:一个高可用的分布式键值(key-value)数据库,负责存储集群各个节点和实例集群状态,便于集群CM管理各个实例
• Storage:服务器的本地存储资源,持久化存储数据

  1. 主备部署架构
    image.png
    相对单机部署架构,只多出了一个备用的数据节点,主备间基于数据库日志复制,两个节点保持数据同步,在单机性能可满足需求的情况下,提供高可用支持。

  2. 分布式部署架构
    image.png
    从图中可以看到,分布式部署架构同时具备高扩展和高可用的特征。
    • 分布式高扩展:数据按shard划分,读写负载准线性扩展,满足大规模业务场景
    • 分布式高可用:支持基于shard的主备,单shard异常也仅影响部分数据
    image.png
    逻辑结构层面,分布式部署架构也增加了几个软件模块:
    • OM:运维管理模块(Operation Manager)提供集群日常运维、配置管理的管理接口、工具
    • CN:协同调度节点(Coordinator Node)负责接收来自应用的访问请求,并向客户端返回执行结果;负责分解任务,并调度任务分片在各DN上并行执行。
    • GTS:全局时钟服务器(Global Time Server)用于强一致场景下,为各个节点提供逻辑时钟,实现sharding间数据的强一致性读

四、GaussDB100技术指标
image.png

五、GaussDB100关键特性

  1. Share-nothing架构
    Share-nothing架构具备如下优点:高并发大数据场景下的按需扩展、内部自动化并行处理、最优化的I/O处理、增加节点实现线性扩展。

  2. 数据分布式存储
    GaussDB 100采用水平分表的方式,将业务数据表的元组打散存储到各个节点内。查询中通过查询条件过滤不必要的数据,快速定位到数据存储位置,可极大提升数据库性能。支持以下数据分布策略:
    image.png
    在CREATE TABLE时增加DISTRIBUTE BY参数指定分布策略。

  3. 数据分区
    GaussDB 100数据库支持的分区表为范围分区表、间隔分区表、列表分区表和哈希分区表

  4. 全并行的数据查询处理
    与之前介绍Gauss200类似,分布式执行引擎,以SQL引擎生成的执行计划为输入,将元组按执行计划的要求进行加工并将结果返回给客户端。

  5. 高性能事务处理
    • 事务隐式启动,第一个可执行SQL(除登录语句外)隐含事务的开始
    • 默认非自动提交,可设置保存点
    • DDL在独立事务内运行,遇到DDL语句数据库会自动提交前面事务
    • 支持表级、行级以及关键字级的锁,以控制不同粒度的数据对象的并发访问控制
    • 支持基于时间戳和回滚段的行级MVCC,实现数据查询和修改互不阻塞,极大提升并发查询和修改的性能
    • 支持设置隔离级别,提供Read Committed、Serializable和Current Committed三种事务隔离级别

  6. 负载均衡
    GaussDB100支持两种负载均衡方式:1)使用F5 2)在JDBC中配置多个IP

  7. 高可靠事务处理
    GaussDB 100提供集群事务管理功能,保证集群所有节点间事务的ACID特性,保证故障可恢复,以及恢复后满足数据的ACID要求,并负责节点的并发控制。支持分布式死锁预防。

  8. 闪回
    支持闪回查询和回收站功能

与君初相识,犹似故人归。对于ORACLE DBA来说,有好多特性都是我们非常熟悉的了。万变不离其宗,操作系统和数据库这类基础软件更是如此,在后面的学习过程中,还会品读到高斯100中更多熟悉的“故事”。


注:本文转自“墨天轮”GaussDB频道

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。