注册
国产主流达梦和人大金仓两款数据库的情况
培训园地/ 文章详情 /

国产主流达梦和人大金仓两款数据库的情况

Rocky 2022/11/16 18071 99 1

简明摘要:
目前国内关系型数据库有:1、武汉达梦(自主原创) 2、人大金仓、3、南大通用、4、神州通用 5、华为高斯、6、阿里 PolarDB、7、蚂蚁金服 Oceanbase 、8、腾讯 TDSQL。现整理了国产主流达梦和人大金仓两款数据库的情况,本文主要从SQL兼容性,优化器能力、运算力、可靠性和可用性、安全性这些方面。

SQL、数据库兼容性,数据同步方面
达梦
【数据库兼容】
达梦对于ORACLE的数据库兼容是最好的,包括oracle左连接 和右连接 用+号来表示的这种语法DM数据库是完全集成此语法
【数据类型名】
支持数据类型有:
INTEGER
INT
DOUBLE
FLOAT
DECMAL
NUMERIC
BINARY
CHAR
VARCHAR
TEXT:TEXT相当于加长版的varchar 可以支持的字符串长度为2G-1
REAL:
DATE
CLOB:用于指明边长的字母数字字符串 长度
BLOB
JSON:完全独立于语言的文本格式,是一种轻量级的数据减缓模式
Boolean
还支持其他数据类型 详细可参考达梦数据库技术文档

【数据库函数支持】
(数学函数)
ABS函数:绝对值函数
AVG函数:平均值函数
COUNT函数:基数函数
MAX函数
MIN函数
ROUND函数
TRUNC函数
EXP函数
LN函数:LN(n) 返回n的自然对数
MOD函数
POWER函数
CELL函数
PI函数
LOG(对数)函数
(随机函数)
RAND() 随机生成一个小鼠
(字符串函数)
SUBSTRING
ASCII
UPPER
LOWER
POSITION
CHAR
CONCAT
SUBSTR
INSTR
REPLACE
TRANSLATE
LTRIM
LENGTH
REVERSE
LEFT
RIGHT
【数据同步情况】
【达梦专门数据同步工具DHMS】
数据同步工具 (DMHS),可实现同构、异构数据库间的数据同步,基于此工具,可实现在现应急灾备、多业务中心、异构资源信息整合等多种使用场景
【DMHS系统架构】

DMHS同步服务主要分为三大模块,分别是日志分析(CPT)、消息发送(NET)、数据入库(EXEC)。这三个模块由管理模块(MGR)统一调行。

日志分析(CPT)
负责对源数据库日志进行解析,联合字典信息提取其中数据的变化如插入(INSERT)、删除(DELETE)、修改(UPDATE)和对象操作(DDL),这些操作通过包装后投递给信息发送(NET)模块。

CPT分析日志时,需要从数据库中查询表的字典信息以及日志文件发生切换时需要访问日志文件信息,也就是说,日志分析过程中CPT会和源数据库创建链接进行交互,若是同步需要支持同步DDL,那么还需要在源数据库上创建事件触发器,用来捕获DDL操作,这些配置需要在搭建同步是完成。

消息发送(NET)
NET消息发送子模块
通过CPT捕获到的日志操作,进行分发,分发前能够对操作进行过滤,或者对表进行过滤和映射,还能够对消息中的列进行映射(更名、剔除和函数计算)。通过处理的消息经过网络(TCP/IP)发送给下一级,或者保存到本地文件。

NET消息接收子模块
经过上一级NET消息发送子模块经过网络传输的消息,由NET消息接收子模块经过网络(TCP/IP)接收并发送给EXEC模块。

数据入库(EXEC)
EXEC模块接收到NET接受子模块发来的信息,把这些消息按事务分类,若是某个事务上收到了提交消息,则构造相应的SQL,使用ODBC驱动接口对这些数据进行入库;若是某个事务在源端回滚,则直接丢弃不执行,同步中若是使用了中文表明或者字段名,要使用支持中文字符集的unixODBC,否则描述会出错。

EXEC模块在运行过程中需要不断的刷新检查点,以便推动入库的LSN。为适应不一样的应用场景,DMHS提供的功能能够细分为捕获器功能、执行器功能等。

【DMHS组件】
捕获器
捕获器将源端数据库日志读取解析后发送出去,它必须与源端数据库在同一台机器上。捕获器由MGR模块、CPT模块、NET发送子模块组成,XML配置文件中对应元素为base、cpt、send。NET发送子模块不能单独存在,必须由CPT模块调用;在XML配置文件中也是同样的,send元素为cpt元素的子元素。

捕获器中包含日志分析模块CPT,因为日志分析需要用到数据库中的表信息,因此捕获器在首次启用时,要进行初始化加载需要同步的表的字典信息,把这些信息存在到本地。即便源数据库中断了服务,也不会影响日志分析,所以需要在捕获器中配置源数据库链接相关的信息,包括链接数据库的用户名和口令。

执行器
执行器将接受到的数据执行入库,它能够与目标端数据库不同在一台机器上,执行器由MGR模块、EXEC模块、NET接受子模块组成,XML配置文件中对应元素为base、exec、recv。NET接受子模块不能单独存在,必须有EXEC模块调用;在XML配置文件中也是同样的,recv元素为exec的子元素。

执行器中的主要模块EXEC模块,主要用来进行数据入库,为了兼容大多数的数据库,它采用标准的ODBC驱动接口和符合SQL92标准的SQL语句访问数据库。此处需要配置的参数有数据库链接信息、事务缓存信息以及事务入库的方式等,数据入库是DMHS数据同步的性能瓶颈所在,因此这块参数配置很是重要,需要结合实际的运行环境,源端应用事务的特色来针对性的配置,实现入库性能的最大化。

【实际情况】
数据同步工具 (DMHS),可实现同构、异构数据库间的数据同步,基于此工具,可实现在现应急灾备、多业务中心、异构资源信息整合等多种使用场景

人大金仓
【数据类型支持】
(数值类型)
tinyint
smallint
integer(或 int)
bigint
NUMERIC(precision, scale):人大金仓中还存在NUMBER类型,其性质与NUMERIC一样
DECIMAL(precision, scale)
DOUBLE PRECISION:等同于MYSQL中的DOUBLE
FLOAT
REAL
BLOB :二进制大对象,长度最大为 1G
Infinity
-Infinity
NaN
(字符类型)
byte
char
varchar
NCLOB :字符大对象,长度最大为 1G
CLOB :字符大对象,长度最大为 1G
BYTEA :变长二进制串
TEXT:人大金仓的存储值比达梦的少,存储值只有1G
NAME:用于对象名的内部类型,存储大小为64字节
time
timestamp:时间戳数据类型
INTERVAL:时间间隔数据类型
(布尔数据类型)

Boolean
(特殊文本搜索类型)
KingbaseES 提供两种数据类型,它们被设计用来支持全文搜索
tsvector :表示一个为文本搜索优化的形式下的文档
tsquery:表示一个文本查询
此外人大金仓还支持XML、UUID、几何类型等数据类型

【数据库函数兼容性】
数学函数
ABS
BITAND
CBRT
CEIL
CEILING
DEGREES
DIV
EXP
FLOOR
LN
LOG
LOG10
MOD
PI
POWER
RADIANS
ROUND
SCALE
SIGN
SQRT
TRUNC
产生随机数的函数
RANDOM
SETSEED
所有三角函数
除此之外还支持字符串函数、时间函数、JSON 函数、XML 函数、网络地址函数、几何函数、枚举支持函数、数据类型格式化函数等,具体可以看人大金仓的使用文档

支持聚集函数嵌套调用,如在 WITH 子句、SELECT 子句支持带 group by 子句的嵌套调用
支持调用 percentile_cont 函数和percentile_disc 函数时带 over 子句
兼容Oracle的DECODE函数、SQLSEVER的ISNUL函数、MYSQL的IFNULL函数、DB2 with ur语法、PostgreSQL的NULLIF函数
【分区】
支持 71001 个单表分区
【查询与索引】
支持单表同时创建多个索引、分区子表自动创建索引、支持内存列存表
支持32个表的关联查询,支持32个表的左连接查询
【数据同步】
支持在IPV4/IPV6网络协议下进行数据搬迁和同步
数据源上支持RabbitMQ作为源端、DB2作为源端,我司项目中的mysql作为源端进行数据同步的测试尚未进入实测
支持同构数据源的序列值同步
支持异构的数据源的序列值同步
支持大事务同步、支持一亿零五百万条语句的单个大事务同步
支持资源限额功能,可以对同步工具的CPU、内存、网络资源、自盘占用进行限制
支持数据同步“双轨并行”方案,可以按需一键切换数据同步方向
高可靠性和高可用性方面
达梦
达梦有自己的一套高可用性方案
【丰富灵活的备份与还原手段】
DM的备份还原特性如下:
物理备份支持完全/增量备份还原
物理备份支持联机/脱机备份还原
物理备份可按不同的级别进行备份,包括备份数据库、备份用户表空间、备份用户表
逻辑备份可进行数据库级、模式级和表级的备份
逻辑备份内容灵活,可选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等)
支持对备份进行压缩和加密处理
支持使用归档日志将数据库还原到最新的状态或指定的时间点
支持跨平台备份还原功能,备份文件格式统一跨平台,脱机/联机备份/还原功能使用相同代码
支持基于表同步复制功能的远程实时备份功能,支持一对多、多对一、级联、对称的复制关系,最小复制单位为表,用户可根据需要灵活定制
【无人值守备份计划——自动备份】
【恢复过程可控——恢复到任意指定时间点】
【不依赖第三方软件的高可靠性主备方案——数据守护】

DM数据守护的特性:
主备机切换
在主备机正常的情况下,支持通过监视器执行SWITCHOVER命令来切换主备机,实现主备机计划内的切换。
备机接管
在主机故障,并且长时间无法恢复的情况下,用户可以通过备机接管切换TAKEOVER命令,手动将备机切换为主机,对外提供数据库服务。
应用自动重连
通过配置达梦服务配置文件,使用连接服务名访问数据库,在主数据库发生故障后,达梦数据库访问驱动程序自动将连接迁移到新的主数据库上。
自动同步历史数据
在故障解决后,恢复的原主机可以作为备机重新加入数据库守护系统。这个过程无需用户干预,系统自动将其配置为备机并同步历史数据。
实时监控
通过监控工具DMWMON,可实时监控主、备数据库的状态和数据同步情况。
活动的备用数据库
在数据守护方案中,基于独特的字典缓存技术和日志重演技术,备用数据库在打开状态下执行数据同步,是真正意义上的热备机;在实现异地容灾的同时,用户可以只读访问备数据库,执行报表生成、数据备份等功能,减轻主机系统的负载、提高资源利用率。
滚动升级
通过DM7 Data Watch,可通过计划内的主备机切换,在保证应用不宕 机的情况下,依次实现对主备机的DM7数据库版本升级。
【集群可用性】
由一个主库以及一个或者多个配置了实时 (Realtime) 归档的备库组成,其主要目的是保障数据库可用性,提高数据安全性。
实时主备系统中,主库提供完整的数据库功能,备库提供只读服务。主库修改数据产生的 REDO 日志,通过实时归档机制,在写入联机 REDO 日志文件之前发送到备库,实时备库通过重演 REDO 日志与主库保持数据同步。当主库出现故障时,备库在将所有 REDO 日志重演结束后,就可以切换为主库对外提供数据库服务。
DM有一套有效得达梦共享集群体系-DMCSS
DMDSC 集群提供了一种达梦数据库高可用解决方案。当出现系统故障、硬件故障、或人为操作失误时, DMCSS 检测故障、并自动将故障节点踢出集群,保证数据库服务的正常提供。
故障节点的用户连接会自动切换到活动节点,这些连接上的未提交事务将被回滚,已提交事务不受影响;活动节点的用户连接不受影响,正在执行的操作将被挂起一段时间,在故障处理完成后,继续执行。当 DMCSS 检测到故障节点恢复时,自动启动节点重加入流程,
将恢复的故障节点重新加入 DMDSC 集群,将集群恢复到正常的运行状态。 因此,通过部署DMDSC 集群,可以在一定程度上避免由软、硬件故障引起的非计划停机,减少这些意外给客户带来的损失。
与其他同样使用共享存储的双机热备系统相比, DMDSC 具有更快的故障处理速度。双机热备系统故障切换时,需要完整重做 Redo 日志,所有数据需要重新从磁盘加载; 而 DMDSC故障处理时, 只需要重做故障节点的 Redo 日志,并且大部分数据页已经包含在处理节点的Buffer 缓冲区中,不需要重新从磁盘加载。
【高吞吐性】
DMDSC集群中包含多个数据库实例,实例之间通过混村交换基数提升共享数据得访问速度,每个数据库实例都可以接收并处理用户的各种数据库请求
与单节点数据库管理系统相比,DMDSC集群可以充分利用堕胎物理机器的处理能力
支撑更多的用户连接请求,提供更高的吞吐量,与双击热备系统相比,DMDSC集群不存在始终保持备用状态的节点们不会造成硬件资源的浪费
【负载均衡】
用户通过配置DM数据库来凝结服务来访问DMDSC集群,可以实现节点间的自动给负载
用户的数据库连接请求会被自动平均分配到集群中的各个节点,并且连接服务名支持JDBC、DBI、ODBC等各种数据库接口
【可靠性】
双机热备
DM提供了对各种主流HA软件的支持,如RoseHA双机软件、LifeKeeper集群软件、PlusWell双机软件以及NEC ExpressCluster等。以上HA软件均能够自动检测服务器节点和服务器进程错误或者失效,并且在发生这种情况时,自动适当地重新配置系统,使得其他节点能够自动承担这些服务,以实现服务不中断。DM支持采用这些HA软件进行主从热备、双机互备以及多点互备等。
主从模式:它是最标准、最简单的双机热备,它使用两台服务器,一台作为主服务器 (Active),运行应用系统来提供服务。另一台作为备机,安装完全一样的应用系统,但处于待机状态(Standby)。当active服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
DM通过对HA软件的支持提供Windows、Linux、Solaris、AIX等平台的双机热备解决方案,保证数据库服务的不间断运行。支持大多数主流双机热备软硬件环境,典型的双机硬件结构。
容灾恢复机制
DM能够利用上述备份与故障恢复功能,能够将系统恢复到故障点或故障发生前任何一个时间点,有效保证数据的完整性和一致性,维持系统可靠稳定运行。
达梦数据库管理系统在中国软件与集成电路促进中心进行了容灾恢复测试。模拟系统在极限压力状态下——内存耗尽、I/O读写频繁、CPU完全占用,实施多次瞬间掉电实验,DM均能正常恢复到预期状态,数据完整一致,表现出很高的灾难性故障恢复能力。
人大金仓
【集群可用性】
支持2节点主备集群做自动故障转移,不依赖第三方节点部署额外程序或者共享存储
集群支持在多网络段IP组网环境中部署,并做到软件曾的冗余,在多网段有大部分呢故障的场景下,仍然可以找寻可用的网络及性能通信,而不会触发集群间的故障转移
【高可用】
支持共享存储的负载均衡集群,支持ACTIVE-ACTIVE 双活模式
数据库集群鲁棒性强,集群中断服务,在服务器启动顺序不可预估的场景下,可保证数据库主备不发生切换
支持基于自主研发统一内核的多集群体系架构,实现了共享存储集群、分布式集群,实现了共享存储集群分布式集群,实时同步集群、大规模并行处理集群、读写分离集群、主备集群
支持数据信息在OLTP数据库引擎和OLAP数据库引擎之间的流转
数据库共享存储集群具备多哦节点负载结婚哼能力,集群中每个节点均支持写入且支持多节点间的缓存一致性
支持按表进空间进行磁盘存储分配规划,能够设定初始化大小、是否自当扩展、扩展大小、最大大小信息、避免运维中长时间运行产生磁盘碎片化的问题产生
【可靠性】
(热备故障切换)支持 2 节点及 3 个节点的多实例热备及故障自动切换功能
【日志分析】
对集群日志、数据库日志,可以按照需求,进行正则匹配的方式对多个数据库节点一键收集汇总,并进行系统时间矫正后,反馈收集分析结果
安全性方面
达梦
【身份账号安全】
支持身份鉴别
登录用户名密码增强加密
dmkey工具生成公钥文件和私钥文件。二是配置服务器参数,使用私钥对客户端发送过来的登录名和密码进行解密。三是配置客户端参数,使用公钥文件对登录用户名和密码进行加密。四,启动数据库服务器。
支持配置访问白名单
四权分立的安全机制
DM数据库时通过建库参数PRIV_FLAG设置使用“三权分立”或“四权分立”安全机制,0表示“三权分立”,1表示“四权分立”。此参数仅在DM安全版本下提供,即仅DM安全版本提供“四权分立”安全机制,缺省采用“三权分立”安全机制。
“三权分立”安全机制时,将系统管理员分为数据库管理员、数据库安全员和数据库审计员三种类型。在安装过程中,DM数据库会预设数据库管理员账号SYSDBA、数据库安全员账号SYSSSO和数据库审计员账号SYSAUDITOR,其缺省口令都与用户名一致。
“四权分立”的安全机制时,将系统管理员分数据库管理员、数据库对象操作员、数据库安全员和数据库审计员四种类型,在“三权分立”的基础上,新增数据库对象操作员账户SYSDBO,其缺省口令为SYSDBO。(注意:各管理员应在安装过程中或安装完毕后立即修改缺省口令,避免因口令泄漏造成的安全问题。)
【存储加密】
为了防止用户直接通过数据文件获取用户信息,DM提供了全面的数据加密的功能,包括:
透明加密
半透明加密
非透明加密
存储加密在保证数据文件安全性的同时,也会带来一定的性能影响,不同的加密算法对性能的影响各有不同,用户需要根据自己的需求来决定是否进行加密以及加密算法的选择。
【权限管理】
DM数据库对用户的权限管理有着严密的规定,如果没有权限,用户将无法完成任何操作。
用户权限有两类:数据库权限和对象权限。数据库权限主要是指针对数据库对象的创建、删除、修改的权限,对数据库备份等权限。而对象权限主要是指对数据库对象中的数据的访问权限。数据库权限一般由SYSDBA、SYSAUDITOR和SYSSSO指定,也可以由具有特权的其他用户授予。对象权限一般由数据库对象的所有者授予用户,也可由SYSDBA用户指定,或者由具有该对象权限的其他用户授权。
【传输加密】
DM提供两种通信加密方式:一基于传输层的SSL协议加密;二基于应用层的消息包加密。两个层次的加密互不影响,可以同时使用。因为任何一种加密方式都足够安全,而且双重加密会占用更多的数据库资源,所以通常情况下,没必要同时开启这两种加密。
当未采用通信加密时,为了提高安全性,数据库系统自动对登录消息中的用户名密码使用内部算法进行了简单的加解密操作。
【审计功能】
审计机制是DM数据库管理系统安全管理的重要组成部分之一。DM数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。DM具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施。
【资源限制】
DM支持在创建和修改用户时指定对用户进行资源限制,
DM安全版本还提供了用户IP地址限制和用户时间段限制。
【数据备份还原】
支持逻辑备份/还原
支持联机备份和脱机备份/还原
支持一致性备份和非一致性备份/还原
支持完全备份还原/还原
支持增量(差异)备份/还原

人大金仓
【预防】
支持操作系统数据保护功能,可以防止在操作系统层面使用rm命令误删除数据表空间目录或者数据文件
支持对人员用户表,database 对象做逻辑保护,不会被逻辑删除
【脱敏支持】
支持对敏感数据的动态脱敏功能,包括默认脱敏、随机脱敏、部分脱敏、邮件脱敏
【日志管理】
支持日志加密
(日志记录和审计)支持管理控制平台日志记录和审计功能,并支持将系统日志和任务日志分开。独立记录,日志可在线保存和离线保存
【加密算法】
支持表空间级的数据加密功能,支持SM4、RC4 算法,支持单机、集群场景
支持同一表空间存在多表情况下部分表进行加密功能,支持 SM4、RC4 算法,支持单机、集群场景
(国密算法)数据完整性支持 SM3 国密算法
(传输加密)支持通过 SSL 典型加密协议对同步数据传输加密
【账户安全】
管理控制平台支持账户安全相关功能,如密码策略配置(密码长度,复杂度,密码有效期,密码策略有效期设置),用户账户有效期,短信二次登录验证
【数据修复】
主备集群支持基于备机的主机数据坏块修复,当主机数据块损坏时,可以自动从备机复制对饮给数据块对损坏的主机数据块进行实时修复
支持从日志文件离线修复文件坏块或者表
【性能测试对比】
达梦数据库是IO非阻塞模式的,高并发下会崩溃不过很快会恢复。
人大金仓数据库是IO阻塞模式的,数据库不会崩溃,但是处理性能会慢。

【总结】
达梦数据库更接近Oracle,更偏向自主研发,对开发人员非常友好 ,达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新、简洁实用的理念,历经五年以上匠心打磨,推出的新一代自研数据库。DM8吸收借鉴当前先进技术。
人大金仓数据库,基本上和PgSql一模一样更贴近开发功能也继承了pgsql所有功能,对开发人员比较友好,Kingbase ES是面向事务处理类、兼顾分析类应用领域的新型数据库产品。在中国数据库流行度排行榜上还是略后于达梦数据库。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服