openGauss数据库共享存储特性概述

目录
  • 版本介绍
    • 继承功能:
    • 新增功能:
  • 主备共享存储
    • 特性简介
    • 客户价值
    • 特性描述
    • 特性约束

openGauss 3.1.1是openGauss 5.0.0 release版本的Preview版本,希望广大社区伙伴和开发者基于此版本进行场景化验证,提前发现问题并反馈社区,社区将在LTS版本发布前进行问题修复。当前文档说明范围仅限企业版。

版本介绍

3.1.1与之前的版本特性功能保持兼容,主要功能如下:

继承功能:

  • 基础功能:SQL标准语法、数据类型、表(包括临时表、全局临时表、外部表)、视图、物化视图、外键、索引(包括btree索引、Gin索引、hash索引)、序列、函数、触发器、聚合函数median、ROWNUM、UPSERT、、jsonb数据类型、GB18030字符集。
  • 存储过程:存储过程、存储过程内commit/rollback、参数的存储过程/函数调用省略()、存储过程调试。
  • 安全功能:认证、权限管理、网络通信安全、数据库审计、全密态数据库、动态数据脱敏、国密算法、防篡改账本数据库、内置角色和权限管理、透明加密、ANY权限管理等。
  • 高可用:主备双机、级联备机、逻辑复制、极致RTO、备机扩容、基于Paxos分布式一致性协议(DCF)、两地三中心跨Region容灾。
  • SQL引擎增强:范围分区、全局分区索引、LIST分区、HASH分区、基于范围分区的自动扩展分区、行存转向量化、自治事务、并行查询、Global Syscache、IPv6协议、postgis插件。
  • 存储引擎增强:延迟备库、备机支持逻辑复制、并行逻辑解码、灰度升级、滚动升级、Hash索引、列存表主键唯一约束、Ustore存储引擎、段页式存储、发布订阅、行存表压缩、MOT内存表、NUMA-aware高性能优化等。
  • 备份恢复:全量物理备份、逻辑备份、备机备份、增量备份和恢复、恢复到指定时间点(PITR)。
  • AI能力:参数自调优、慢SQL发现、AI查询时间预测、数据库指标采集预测与异常监控、DBMind自治运维平台、智能优化器、智能索引推荐、deepSQL库内AI算法、库内AI算法支持XGBoost、multiclass和PCA。
  • 运维能力:WDR诊断报告新增数据库运行指标、备机慢SQL诊断视图、unique sql自动淘汰。
  • JDBC:支持JDBC客户端负载均衡及读写分离。
  • CM:支持CM集群管理,CM支持自定义资源管控,支持对外状态查询和推送能力。
  • 工具链:开发工具DataStudio、数据迁移工具chameleon。
  • 中间件:shardingSphere、openLookeng。
  • 周边生态:dblink,支持openEuler、CentOS、Ubuntu、FusionOS系统
  • 其他:cmake脚本编译、容器化部署、kubernetes

新增功能:

  • 主备共享存储
  • MySQL兼容性增强
  • CM部署和数据库部署解耦,CM支持增量升级
  • MOT内存表能力增强

其中,主备共享存储特性是3.1.X版本引入的比较重要特性。下面重点介绍一下。

主备共享存储

特性简介

本特性提供主备机共享一份存储的能力,实现基于磁阵设备的主备共享存储HA部署形态,可选通过OCK RDMA提升备机实时一致性读能力_。_主备共享存储架构图如下图所示。

图 1 主备共享架构图

客户价值

解决传统HA部署下存储容量较单机部署翻倍的问题,减少了存储容量,节省磁阵设备。可选通过OCK RDMA提升备机实时一致性读能力。

特性描述

-共享存储依赖两个自研的公共组件实现主备共享存储的能力:

  • 分布式存储服务DSS(Distributed Storage Service)

DSS是独立进程,直接管理磁阵裸设备,并对外提供类似分布式文件系统的能力。通过共享内存和客户端API动态库,为数据库提供创建文件、删除文件、扩展和收缩文件、读写文件的能力。

  • 分布式内存服务DMS(Distributed Memory Service)

DMS是动态库,集成在数据库内部,通过TCP/RDMA网络传输PAGE内容,将主备内存融合,提供内存池化能力,以此实现备机实时一致性读功能。

共享存储通过分布式存储服务DSS组件实现主备共享一份存储。与传统建库相比,共享存储基于磁阵建库将目录分为三种类型,每实例独占且不共享、每实例独占且共享、所有实例共享。其中需要共享的目录均需存放到磁阵设备上,而不共享的目录存放在本地盘上。另外备机建库只需要建隶属于自己的目录,不需要再次创建所有实例共享的目录结构。主备共享存储新增了相关GUC参数,以及将系统表存储方式从页式切换到段页式。

共享存储通过分布式内存服务DMS组件实现主备页面实时交换,提供备机实时一致性能力。即主机事务提交后,在备机立即能够读到,不存在延迟读现象(事务隔离级别为Read-Committed)。

共享存储通过OCK RDMA降低DMS主备页面交换时延。TCP下的备机一致性读进行时延对比,开启OCK RDMA,备机一致性读时延至少要降低20%。

特性约束

主备共享存储方案依赖于磁阵设备,磁阵的LUN需要支持SCSI3的PR协议(包括PR OUT(“PERSISTENT RESERVE OUT”)PR IN(“PERSISTENT RESERVE IN”)和INQUIRY), 用于实现集群IO FENCE。除此之外, 还需要支持SCSI3的CAW协议(COMPARE AND WRITE),用于实现共享磁盘锁。如Dorado 5000 V3磁阵设备。
实现的主备共享存储HA部署形态只支持1主1备和1主2备场景,其他场景为体验版未测试过,不承诺。
由于主备共享存储依赖类似分布式文件系统的功能来实现备机实时一致性读能力,因此要求文件元数据变更越少越好。基于性能考虑,只支持段页式表。
只支持主备部署在同一磁阵设备上,不支持容灾部署,也不支持主备混合部署(如主和备部署在不同的磁阵设备上)。
主备页面交换通过RDMA加速,依赖CX5网卡,并且依赖OCK RDMA动态库。
暂不支持备机重建及节点替换、节点修复等能力。
不支持从传统HA部署升级到基于主备共享存储部署。
共享存储模式下gs_xlogdump_xid,gs_xlogdump_lsn,gs_xlogdump_tablepath,gs_xlogdump_parsepage_tablepath、pg_create_logical_replication_slot、gs_verify_and_tryrepair_page、gs_repair_page、gs_repair_file函数功能不支持使用。
共享存储模式下T_CreatePublicationStmt、T_AlterPublicationStmt、T_CreateSubscriptionStmt、T_AlterSubscriptionStmt、T_DropSubscriptionStmt订阅功能不支持使用。
共享存储模式下不支持全局临时表。

安装部分对应的也新增了共享存储场景的支持。cluster_config_template.xml配置文件模板示例:

   ...
    <!-- 共享存储模式开关 -->
    <PARAM name="enable_dss" value="on"/>
    <!-- dss实例目录 -->
    <PARAM name="dss_home" value="/opt/huawei/install/data/dss"/>
    <!-- dss共享卷名 -->
    <PARAM name="ss_dss_vg_name" value="data"/>
    <!-- dss挂载卷组名和卷组信息,包含共享卷 -->
    <PARAM name="dss_vg_info" value="data:/dev/sdb,p0:/dev/sdc,p1:/dev/sdd"/>
    <!-- cm投票卷 -->
    <PARAM name="votingDiskPath" value="/dev/sde"/>
    <!-- cm共享卷 -->
    <PARAM name="shareDiskDir" value="/dev/sdf"/>
    <!-- dss开启ssl认证开关 -->
    <PARAM name="dss_ssl_enable" value="on"/>
    <!-- mes通信协议类型  -->
    <PARAM name="ss_interconnect_type" value="TCP"/>
    <!-- rdma绑定cpu序列  -->
    <PARAM name="ss_rdma_work_config" value="1 7"/>

欢迎有兴趣和条件的同学可以对主备共享存储特性进行场景化验证。

到此这篇关于openGauss数据库共享存储特性简介的文章就介绍到这了,更多相关openGauss数据库共享存储内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于PostgreSQL/openGauss 的分布式数据库解决方案

    在 MySQL ShardingSphere-Proxy 逐渐成熟并被广泛采用的同时,ShardingSphere 团队也在 PostgreSQL ShardingSphere-Proxy 上持续发力.相比前期的 alpha 与 beta,5.0.0 正式版对 PostgreSQL 的协议实现.SQL 支持度.权限控制等方面进行了大量的完善,为后续全面对接 PostgreSQL 生态打下基础.ShardingSphere-Proxy 与 PostgreSQL 的生态对接,让用户能够在 Postg

  • MySQL数据库迁移OpenGauss数据库解析

    目录 环境 安装OpenGauss 创建并导入数据 修改后端项目 部署后端项目 部署前端项目 环境 华为云服务器 4核 8G CentOS 8.0 64位 JDK11 Data Grip xshell xftp mysql 8 安装OpenGauss 1.此次安装基于Docker进行安装 docker安装步骤自行解决 # 基于docker进行安装 $ docker run --name opengauss --privileged=true -p 5432:5432 -d -e GS_PASSW

  • docker配置openGauss数据库的方法详解

    For Windows User 在docker中使用openGauss 拉取openGauss镜像 在控制台输入 docker pull enmotech/opengauss:latest 等待下载 中途可能会出现卡住的情况.可以按Ctrl+C之后重新运行拉取镜像的的指令.直到所有都显示Download complete 如果实在是下载不了就给docker换个源 打开C盘下的用户(或者User)文件夹–>点开当前用户对应的用户文件夹–>找到.docker文件夹 编辑其中的daemon.jso

  • 使用Docker部署openGauss国产数据库的操作方法

    目录 一.openGauss介绍 1.openGauss简介 2.openGauss产品定位 3.支持的架构和操作系统版本 二.检查宿主机环境 1.检查系统版本 2.检查Docker状态 三.下载openGauss镜像 1.进入docker官方镜像仓库 2.openGauss镜像介绍 3.下载openGauss镜像 四.创建openGauss单节点容器 1.创建数据目录 2.创建openGauss容器 3.查看openGauss容器状态 4.连接测试openGauss 5.外部远程连接 五.创建

  • python将Dataframe格式的数据写入opengauss数据库并查询

    目录 一.将数据写入opengauss 二.python条件查询opengauss数据库中文列名的数据 一.将数据写入opengauss 前提准备: 成功opengauss数据库,并创建用户jack,创建数据库datasets. 数据准备: 所用数据以csv格式存在本地,编码格式为GB2312. 数据存入: 开始hello表未存在,那么执行程序后,系统会自动创建一个hello表(这里指定了名字为hello): 若hello表已经存在,那么会增加数据到hello表.列名需要与hello表一一对应.

  • 使用虚拟机在VirtualBox+openEuler上安装部署openGauss数据库

    目录 1.虚拟机VirtualBox下载及安装 步骤 1 进入官方网站下载页面. 步骤 2下载完成后,双击执行文件进行安装. 2.openEuler-20.03-LTS镜像文件下载 步骤 1 进入华为开源镜像站的下载页面. 步骤 2 点击” openEuler-20.03-LTS-x86_64-dvd.iso”,进行相应ISO镜像文件下载. 3.VirtualBox下安装openEuler-20.03-LTS操作系统 步骤 1 新建虚拟电脑. 步骤 2 设置虚拟电脑并安装. 步骤 3 确认网络

  • openGauss数据库共享存储特性概述

    目录 版本介绍 继承功能: 新增功能: 主备共享存储 特性简介 客户价值 特性描述 特性约束 openGauss 3.1.1是openGauss 5.0.0 release版本的Preview版本,希望广大社区伙伴和开发者基于此版本进行场景化验证,提前发现问题并反馈社区,社区将在LTS版本发布前进行问题修复.当前文档说明范围仅限企业版. 版本介绍 3.1.1与之前的版本特性功能保持兼容,主要功能如下: 继承功能: 基础功能:SQL标准语法.数据类型.表(包括临时表.全局临时表.外部表).视图.物

  • 浅谈数据库事务四大特性

    数据库四大特性分别是:原子性.一致性.分离性.持久性.下面我们看看具体介绍. 原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行.这种特性称为原子性. 事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行.就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库.这种特性称为原子性. 假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没有更新.前者称事务

  • 浅析Spring4新特性概述

    Spring 4.1目前已经发布RC1版本,而GA版本预计在14年9月中旬发布:其中有部分内容直接借鉴自Spring Boot,而Spring Boot从目前趋势来看已经是Spring的顶级项目:另外也提供了页面自动化测试框架Spring MVC Test HtmlUnit,和Spring MVC Test一样先是独立项目,如果发展态势很好,会最终合并到Spring Framework中. 从目前来看Spring 4.1并没有特别吸引眼球的地方,主要还是增强和一些依赖的版本升级.主要改进如下:

  • Linux环境下的Java(JDBC)连接openGauss数据库实践记录

    目录 一.测试环境: 本实验预置环境 二.Linux环境安装Java环境及配置步骤 三.准备链接数据库的环境 四.连接测试 五.经验小结(FAQ) 一.测试环境: 本实验预置环境 1)操作系统版本:CentOS 7 64位(CentOS Linux release 7.6.1810)2)DataBase & JDBC版本: openGauss 2.0.1. JDBC驱动版本:JDBC_2.0.0官方下载地址:https://opengauss.org/zh/download/ (Tips:官方最

  • MySQL数据库MyISAM存储引擎转为Innodb的方法

    mysql数据库存储引擎为MyISAM的时候,在大访问量的情况下数据表有可能会出现被锁的情况,这就会导致用户连接网站时超时而返回502,此时就需要MySQL数据库MyISAM存储引擎转为Innodb.步骤如下: 1.导出CentOS数据库的表结构 复制代码 代码如下: mysqldump -d -uxxx -p centos > centos_table.sql 其中-d参数表示不导出数据,只导出表结构 2.替换centos_table.sql里的MyISAM为INNODB 复制代码 代码如下:

  • MySQL如何更改数据库数据存储目录详解

    前言 MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录.下文总结整理了实践过程的操作步骤.话不多说了,一起来看看吧 方法如下: 1:确认MySQL数据库存储目录 [root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadir Enter password: | datadir | /var/lib/mysql/ 2:关闭MySQL服务 在更

  • 通过Qt连接OpenGauss数据库的详细教程

    1 安装软件 qt-opensource-windows-x86-5.14.2.exe(之前的版本可能不行,安装过程中必须包含MinGW64) OpenGauss ODBC 2 准备连接环境 在openGauss所在的root环境下执行下列步骤 2.1 修改数据库的pg_hba.conf文件 在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/db1,实际操作中GS_HOME地址可以查看安装时的配置文件:< PARAM name=&quo

  • Android studio 利用共享存储进行用户的注册和登录验证

        //注册功能public class MainActivity extends AppCompatActivity { //声明共享存储(全局变量) private SharedPreferences spf; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /

随机推荐