openGauss 5.0.0 企业级增强特性(3)

内存表

内存表把数据全部缓存在内存中,所有数据访问实现免锁并发,实现数据处理的极致性能,满足实时性严苛要求场景。

支持多存储引擎

openGauss基于统一的事务机制,统一的日志系统,统一的并发控制系统,统一的元信息,统一缓存管理提供Table Access Method接口,支持不同的存储引擎。

目前支持Astore和Ustore存储引擎。

主备双机

主备双机支持同步和异步复制,应用可以根据业务场景选择合适的部署方式。同步复制保证数据的高可靠,一般需要一主两备部署,同时对性能有一定影响。异步复制一主一备部署即可,对性能影响小,但异常时可能存在数据丢失。openGauss支持页面损坏的自动修复,在主机页面发生损坏时,能够自动从备机修复损坏页面。openGauss支持备机并行日志恢复,尽量降低主机故障时业务不可用的时间。

同时,如果按照主备模式部署,并打开备机可读功能后,备机将能够提供读操作,但不支持写操作(如建表、插入数据、删除数据等),从而缓解主机上的压力。

具备AI能力

  • 参数自动调优

    在数据库场景中,不同类型的作业任务对于数据库的最优参数数值组合存在偏差。为了获得更好的运行性能,用户希望快速将数据库的参数调整到最优状态。人工调参的学习成本高且不具有实时性和广泛可用。通过机器学习方法自动调整数据库参数,有助于提高调参效率,降低正确调参成本。

    参数自动调优:参数调优服务支持离线与在线两种服务形式,支持多种算法,包括强化学习、全局搜索算法等。

    当模型处于训练阶段中,根据输入的数据库参数数值(其中包括数据库当前参数数值以及数据库当前性能参数数值)通过强化学习和启发式算法得到新的参数数值组合,数据库的参数调整由强化学习和启发式算法两个组成部分的输出结果混合得到,将模型的输出经过反归一化得到新的参数数值,将新的数值植入数据库并运行测试作业得到当前数值组合下数据库的性能表现,如执行时长、吞吐量等指标。最后将表现作为反馈给学习模型,往复迭代。

    当模型处于调优阶段中,将当前数据库的参数数值作为输入,其中包括数据库当前参数数值以及数据库当前性能参数数值。通过模型得到当前情况下的所能得到的最优参数调整方案。

    当模型处于推荐模式下,会直接根据用户当前Workload的特征进行秒级参数推荐。

  • 索引推荐

    支持单Query索引推荐与Workload级别索引推荐。在进行Workload级别索引推荐时,先根据AI算法,筛选出具有代表性的SQL语句。然后针对代表性的SQL语句,基于语句的语义信息和数据库的统计信息,生成最优的推荐索引。将所有语句的推荐索引作为候选索引集合,然后计算每条候选索引对workload的收益,推荐出收益最大的索引组合方案。

  • 时序预测与异常检测

    支持采集部署数据库宿主机上的特征信息,并将上述时序特征数据收集并存储起来。利用上述存储的数据进行时序预测,例如存储空间预测等。还支持根据上述数据进行潜在异常问题的发现, 能够先知先觉地发现可能出现的问题,并作出提前部署。

  • 其他自治运维服务

    支持全方位的数据库监控和异常检测功能,同时还能对系统中发生的慢SQL进行根因根因分析。

  • 支持DB4AI功能

    支持原生DB4AI引擎,利用数据库实现SQL语句驱动AI任务。

  • SQL执行时间预测

    在查询性能调优、业务负载分析等场景,用户经常需要对SQL的执行时间进行预测,目前数据库优化器主要基于代价模型,无法准确预测执行时间。该特性通过AI模型,能够对历史执行过的查询或相似查询进行时间预测,满足SQL执行时间预测要求。

    SQL执行时间预测:根据收集的历史性能数据进行编码和基于深度学习的训练及预测。

    历史数据收集由数据库内核进程完成,内核进程通过curl向python端AI引擎发送https请求来(1)配置机器学习模型、(2)发送训练数据、(3)触发模型训练、(4)请求训练过程监测服务端口、(5)加载用于训练的模型、(6)使用加载好的模型进行预测。数据的编码阶段在数据库中完成,保证出库数据已脱敏。模型的预测阶段需要在查询计划生成后对整个计划进行编码并写文件发给python端,python端tensorflow计算图只需要加载一次,可以进行高度并行化的批量预测。

  • 数据库监控

    在日常运维过程中,用户需要持续对数据库运行状态进行监控,但是数据库内部的复杂性导致用户难以高效的提取关键数据。实现数据库自监控能够提升用户运维效率,用户只需要关心核心指标和异常数据。

    1. 事务概要信息包括提交(commit_counter)和回滚(rollback_counter)的事务数,事务响应时间。提交和回滚的事务数、事务的响应时间都是自上次重启后的累计值。
    2. Workload SQL 概要信息包括一个workload内DDL,DCL,DML分布,还包含DML类型中SELECT、UPDATE、INSERT、DELETE的个数。SQL类型分布是自上次重启后的累计值。
    3. Workload SUID时间概要信息包括一个workload内Select、Update、Insert、Delete的耗时(累计,平均,最大,最小)。
    4. SQL response time percentile概要信息包括过去一段时间系统中80%和95%的SQL响应时间。
    5. Waitevents概要信息只包括单独节点上的事件等待信息,不包含全局汇聚信息。主要包括等待状态STATUS,IO事件IO_EVENT,Lock事件LOCK_EVENT,Lwlock事件LWLOCK_EVENT的成功等待次数,失败等待次数,事件在节点上等待的总时间,事件最小等待时间,事件最大等待时间,事件平均等待时间。
    6. 对于进入到Parser的SQL,生成归一化的Unique SQL ID以及相应的SQL文本串。统计Unique SQL在各个执行阶段的时间消耗,从而依据时间分布进行SQL性能分析和调优;统计实例、会话在各个阶段的时间消耗,辅助系统整体性能调优。查询SQL执行次数 ,SQL内核响应时间, IO时间、CPU时间、网络传输时间等 ,物理、逻辑读 ,Select返回结果集数量、扫描元组数量、更新行、删除行、插入行等 ,新生成(硬)复用(软)计划次数。

逻辑日志复制

在逻辑复制中把主库称为源端库,备库称为目标端数据库,源端数据库根据预先指定好的逻辑解析规则对WAL文件进行解析,把DML操作解析成一定的逻辑变化信息(标准SQL语句),源端数据库把标准SQL语句发给目标端数据库,目标端数据库收到后进行应用,从而实现数据同步。逻辑复制只有DML操作。逻辑复制可以实现跨版本复制,异构数据库复制,双写数据库复制,表级别复制。

支持WDR自动性能分析报告

定时主动分析run日志和WDR报告(自动后台生成,可由关键指标阈值如CPU占用率、内存占用率、长SQL比例等触发),并生成html、pdf等格式的报告。能自动生成性能报告。WDR(Workload Diagnosis Report)基于两次不同时间点系统的性能快照数据, 生成这两个时间点之间的性能表现报表,用于诊断数据库内核的性能故障。

WDR主要有两个组件:

  • SNAPSHOT性能快照:性能快照可以配置成按一定时间间隔从内核采集一定量的性能数据,持久化在用户表空间。任何一个SNAPSHOT可以作为一个性能基线,其他SNAPSHOT与之比较的结果,可以分析出与基线的性能表现。
  • WDR Reporter:报表生成工具基于两个SNAPSHOT,分析系统总体性能表现,并能计算出更多项具体的性能指标在这两个时间段之间的变化量,生成SUMMARY 和DETAIL两个不同级别的性能数据。

增量备份/恢复(beta)

支持对数据库进行全量备份和增量备份,支持对备份数据进行管理,查看备份状态。支持增量备份的合并,过期备份的删除。数据库服务器动态跟踪页面更改,每当一个关系页被更新时,这个页就会被标记为需要备份。增量备份功能需要打开GUC参数 enable_cbm_tracking,以便允许服务器跟踪修改页。

恢复到指定时间点(PITR)

时间点恢复(Point In Time Recovery)基本原理是通过基础热备 + WAL预写日志 + WAL归档日志进行备份恢复。重放WAL记录的时候可以在任意点停止重放,这样就有一个在任意时间的数据库一致的快照。即可以把数据库恢复到自开始备份以来的任意时刻的状态。在恢复时可以指定恢复的停止点位置为TID,时间和LSN。

两地三中心跨Region容灾

两地三中心,顾名思义,两地指的是两座城市,即同城和异地,三中心指的是生产中心,同城容灾中心以及异地容灾中心。近年来,国内外频繁出现自然灾害,以同城双中心加异地灾备中心的“两地三中心”的灾备模式也随之出现,这一方案兼具高可用性和灾难备份的能力。同城双中心是指在同城或邻近城市建立两个可独立承担关键系统运行的数据中心,双中心具备基本等同的业务处理能力并通过高速链路实时同步数据,日常情况下可同时分担业务及管理系统的运行,并可切换运行;灾难情况下可在基本不丢失数据的情况下进行灾备应急切换,保持业务连续运行。与异地灾备模式相比较,同城双中心具有投资成本低、建设速度快、运维管理相对简单、可靠性更高等优点。异地灾备中心是指在异地的城市建立一个备份的灾备中心,用于双中心的数据备份,当双中心出现自然灾害等原因而发生故障时,异地灾备中心可以用备份数据进行业务的恢复。

openGauss两地三中心容灾架构示意图如图8所示。两地三中心跨Region容灾包括基于OBS的异地容灾解决方案和基于流式复制的异地容灾解决方案。openGauss 从3.1.0版本开始提供基于流式复制的异地容灾解决方案,开启容灾后可以实现以下功能:

  • 全量复制:主数据库实例配置灾备数据库实例信息,等待灾备数据库实例连接后,可进行全量复制。
  • 增量复制:灾备数据库实例完成全量build之后,将与主数据库实例建立流式复制进行日志的复制,实现增量复制。

图 8 openGauss两地三中心容灾架构示意图

 

生成列

生成列是指由表中其他字段计算得到的列。生成列是一个SQL标准特性,SQL 生成列在插入或者更新数据时自动计算,像普通列一样需要占用存储空间。

hash索引

openGauss支持HASH索引,长索引列等值查询场景下性能优于BTREE;优化锁管理提供更高的并发度;提供XLOG日志防护,保障数据不丢失。

支持国密算法

用户认证方式(gsql、JDBC、ODBC)支持国密SM3算法;提供国密SM4算法接口,用于对数据进行加解密,增强数据库的安全能力。

插件化架构

通过对SQL引擎中语法、语义的解耦,实现openGauss的语法、语义层插件化,实现异构数据库语法模块与openGauss内核的解耦;支持算子插件化,实现特定算子从计划创建、优化到执行的插件化。

滚动升级

在灰度升级下,提供一种升级指定部分节点的功能。保证在不中断业务的情况下,先升级部分节点再升级剩余节点。

其他

  • on duplicate key update支持子查询

    支持在on duplicate key update的更新语句之中使用子查询表达式进行赋值,且子查询表达式中支持通过excluded进行冲突行的引用。

  • 列存表支持唯一索引

    支持在列存表上创建基于cbtree的唯一索引、创建主键唯一键约束,防止表中出现重复数据,扩展了列存表使用场景。

  • 支持jsonb数据类型

    支持jsonb数据类型用来高效的操作JSON数据,支持对于json、jsonb的各种丰富的操作符、操作函数,支持在jsonb上创建索引,满足广泛的JSON使用与搜索场景。

  • UCE故障感知与响应

    通过感知内存UCE错误产生时系统发出的SIGBUS信号,并根据所携带的物理地址,实现对应日志打印与openGauss数据库状态变化,进入对应的数据库进程退出流程。

  • 支持unique sql语句监控自动淘汰

    openGauss支持unique SQL自动淘汰,使用LRU算法依据uniqueSQL的更新时间自动淘汰旧的uniqueSQL信息,保障最新的统计信息能够持续记录,提高数据库的易运维性。

  • 支持gs_cgroup负载管理

    gs_cgroup 负载管理工具,通过在数据库内核创建与管理控制组,设置系统资源配额和资源限额,来管理用户与业务对资源的使用率与优先级,充分高效的利用机器资源。

  • 备机支持慢SQL性能诊断

    备机上也支持开启慢SQL诊断能力,同主机一样,支持通过多种维度、粒度的记录SQL的性能细节,如各种事件、等待事件等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值