一、MogDB数据库介绍
MogDB是云和恩墨基于openGauss开源数据库进行完善增强的企业发行版。它围绕高性能、高可用、全密态、自动化运维、多数据库兼容等企业需求,应对企业用户需求新一代数据库的应用场景。其核心价值是高安全、高性能、高兼容、易运维和全天候的企业支持。
二、MogDB目前公开的客户
三、MogDB生态工具
1 . 关于MogHA(MogDB Highly Available )
-
MogHA 是云和恩墨基于 MogDB 同步异步流复制技术自研的一款保障数据库主备集群高可用的企业级软件系统
-
MogHA 能够自主探测故障实现故障转移,虚拟IP自动漂移等特性,使得数据库的故障持续时间从分钟级降到秒级(RPO=0,RTO<30s),确保数据库集群的高可用服务。
-
为什么需要MogHA
- 首先我们需要理解一下什么是高可用,高可用的目的是为了让数据库尽可能提供连续服务,以保证上层业务的稳定运行。数据库虽然支持主备库的部署结构,其目的是防止单点故障。但数据库并不提供故障检测以及自动化切换主备的功能,这也不属于数据库的处理范畴。所以需要有 MogHA 这样的一套高可用系统,来保证数据库服务的连续性。
-
功能特性
- 自主发现数据库实例角色
- 自主故障转移
- 支持网络故障检测
- 支持磁盘故障检测
- 虚拟IP自动漂移
- 感知双主脑裂,自动选主
- 数据库进程和CPU绑定
- HA自身进程高可用
- 支持单机并行部署多套 MogHA
- 支持 x86_64 和 aarch64
-
系统架构
-
支持的模式
- Lite 模式,顾名思义即轻量级模式,该模式仅需在主库和一台同步备机器上启动 MogHA 服务,此时 MogHA 服务可以保证这两台机器上数据库实例的高可用,当主库发生不可修复的问题或者网络隔离时,MogHA 可以自主地进行故障切换和虚拟IP漂移。
- Full模式相较于 lite 模式,需要在所有实例机器上运行 MogHA 服务,且所有的实例有由 MogHA 来自动管理,当出现主库故障时,会优先选择本机房同步备进行切换,如果本机房同步备也是故障的情况,会选择同城备机房的同步备进行切换。为了达到RPO=0,MogHA 不会选择异步备库进行切换,以防止数据丢失。该模式会在主备切换时,会自动修改数据库的复制连接及同步备列表配置。
2 . 关于MTK(Database Migration Toolkit)
- 将Oracle/DB2/MySQL/openGauss数据库的数据结构,全量数据高速导入到MogDB的工具。最新版本同时支持对于Oracle数据库中存储过程,函数,触发器等程序段的MogDB兼容性改写和导入。
- 多数据库类型支持
- 支持 Oracle,DB2,openGauss,SqlServer,MySQL,Informix 等数据库之间的互相迁移 (互为源和目标)。
- 支持将数据库内容导出成可执行的 SQL 脚本 (源数据库内容迁移到文本)。
- 迁移性能调整
- 支持调整数据迁移过程中的批量查询、批量插入大小等细粒度参数,来调整数据迁移的性能。
- 支持数据迁移时的多并发,并行和数据分片。
- 结构和数据分离
- 支持迁移对象结构和数据;也支持仅迁移结构或者仅迁移数据(在结构已经迁移完之后)。
- 支持表级和 Schema 级的迁移范围限定,允许指定schema下全部对象或者某些对象进行迁移 。
- 支持迁移过程中的 Schema 重映射,也就是支持将对象从源Schema迁移到目标端的不同名Schema下 。
- 程序迁移(支持Oracle/MySQL/DB2为源,openGauss为目标)
- 支持Oracle/MySQL/DB2->openGauss的存储过程,函数,触发器,包迁移。
自动根据openGauss的语法规则,对Oracle/MySQL/DB2的程序进行改写,之后再在目标端openGauss数据库中创建。
- 支持Oracle/MySQL/DB2->openGauss的存储过程,函数,触发器,包迁移。
- 迁移场景
源数据库 | 目标数据库 |
---|---|
Oracle | openGauss |
Oracle | MySQL |
Oracle | PostgreSQL |
MySQL | openGauss |
MySQL | MySQL |
MySQL | PostgreSQL |
DB2 | openGauss |
DB2 | MySQL |
DB2 | PostgreSQL |
DB2 | DB2 |
SqlServer | openGauss |
SqlServer | MySQL |
SqlServer | PostgreSQL |
openGauss | openGauss |
openGauss | PostgreSQL |
PostgreSQL | openGauss |
Informix | openGauss |
- 支持数据库对象
对象名称 | 是否支持 | 说明 |
---|---|---|
Schema | 支持 | 方案 Oracle Users MySQL Database DB2 Schema SqlServer Database Schema |
Sequence | 支持 | 序列 |
ObjectType | 支持 | 类型 |
Domain | 不支持 | 域 |
Wrapper | 支持 | Only DB2 |
Server | 支持 | Only DB2 |
User-mapping | 支持 | Only DB2 |
Queue | 不支持 | 队列 |
Table | 支持 | 不包含OBJECT TYPE TABLE |
NickName | 支持 | Only DB2 |
Rule | 支持 | 规则 |
TableData | 支持 | 表数据 |
Index | 支持 | |
Constraint | 支持 | |
DBLink | 支持 | 数据库连接. 仅支持查询个数,不提供语法转换 |
View | 支持 | |
MView | 支持 | 物化视图 |
Function | 支持 | |
Procedure | 支持 | |
Package | 支持 | |
Trigger | 支持 | |
Synonym | 支持 | |
TableDataCom | 支持 | 表行数对比 |
AlterSequence | 支持 | 迁移序列最后值 |
CollStatistics | 支持 | 收集统计信息 |
- 存储过程转换
- 入参和出参类型转换
- 函数重载
- FROM dual 移除
- 语法转换
转换前 | 转换后 |
---|---|
Sequence | 支持 |
connect by | cte改写 |
EXECUTE IMMEDIATE | EXECUTE |
EXIT WHEN NOT FOUND部分语法 | |
interval语法 | |
mod 语法 counter mod 1000 = 0 | mod(counter,4) == 0 |
null 相关语法 != | <> null |
PIPE ROW | RETURN NEXT |
select 1,2 into | select 1,2 into STRICT |
select unique | SELECT DISTINCT |
sequence nextval/currval | nextval(xxx) |
SQLCODE | SQLSTATE |
truncate table 部分语法 |
- 函数转换
转换前 | 转换后 |
---|---|
ADD_YEARS | |
DBMS_OUTPUT.PUT_LINE | RAISE NOTICE |
DBMS_LOB.GETLENGTH | octet_length |
DBMS_LOB.SUBSTR | substr |
DBMS_STANDARD.RAISE EXCEPTION | |
decode | case when |
empty_blob/empty_clob | null |
from_tz | |
listagg | string_agg |
months_between | |
NUMTODSINTERVAL | |
NUMTOYMINTERVAL | |
nvl2 | case when |
raise_application_error | RAISE EXCEPTION |
SYS_CONTEXT | |
SYSTIMESTAMP | CURRENT_TIMESTAMP |
TO_CHAR | ::varchar |
to_char(l_curr_time, ‘TZH’) | EXTRACT( timezone_hour from l_curr_time) |
to_char(l_curr_time, ‘TZM’) | EXTRACT( timezone_minute from l_curr_time) |
TO_CLOB | “” |
TO_TIMESTAMP_TZ | |
trunc | date_trunc |
UTL_ROW.CAST_TO_RAW | encode |
3. MDB (MogDB Data Bridge)
- 异构数据库迁移同步工具,用于 MogDB/openGauss 以及同类基于 openGauss 的数据库与其他异构数据库(Oracle, DB2, MySQL, PostgreSQL等)之间的数据迁移和同步
- 架构
- 支持数据库类型
源数据库 | 目标数据库 | 是否支持 | 预计支持版本 |
---|---|---|---|
Oracle | MogDB | 支持 | |
MogDB | Oracle | 支持 | |
MySQL | MogDB | 未支持 | v1.1 |
MogDB | MySQL | 未支持 | v1.1 |
- 支持数据库对象
对象名称 | 是否支持 | 说明 | 预计支持版本 |
---|---|---|---|
Schema | 支持 | ||
Table | 支持 | ||
Constraint | 支持 | 不支持外键 | |
Index | 支持 | ||
TableData | 支持 | 表数据 | |
User | 未支持 | v1.2 | |
Sequence | 未支持 | v1.2 | |
Synonyms | 未支持 | v1.2 |
- 不支持数据库对象
对象名称 | 是否支持 | 说明 |
---|---|---|
Trigger | 不支持 | |
Procedure | 不支持 | |
Function | 不支持 | |
Package | 不支持 | |
View | 不支持 |
4. MVD (MogDB Verify Data)
-
异构数据库对比工具,可用于异构数据迁移或同步完成之后,校验源库与目标库之间的差异。
-
主要功能
- 对象结构对比: 包括源库与目标库的对象差异,表对象的结构(字段类型和名称),约束,索引的差异等。
- 数据特征对比: 包括表中各个字段的统计学特征值对比,主要对比相关性与平均值,最大值,最小值,中位值等。
- 精确差异识别: 对数据特征有差异的表,进行精确差异识别,通过统一的 MD5 摘要算法,找出源库与目标库中数据不一致的行记录。
-
操作系统与平台支持
- Linux x86_64
- Linux arm64 ( 因为 ARM 平台没有 DB2 客户端,所以 ARM 版不支持源库或者目标库为 DB2 )
- MacOS
-
数据库支持
- Oracle >= 11.2
- MogDB/openGauss >= 1.0 ( MacOS 暂不支持 SHA256 加密认证方式 )
- MySQL >= 5.5
- DB2 >= 11.5
5. SCA (SQL Compatibility Analyzer)
-
评估源数据库中的实际业务 SQL 在目标库中是否能正常执行,以及评估异构数据库中 SQL 的实际性能差异。
-
SCA 程序可运行如下 10 种类型的任务:
- I [Initialize]: 初始化,用于初始化 SCA 资料库
- L [Apply License]: 申请 License,用于 License 申请的任务
- OC [Oracle Collection]: Oracle采集,用于采集 Oracle 数据库中执行过的业务 SQL,需要长时间采集
- MC [MySQL Collection]: MySQL采集,用于采集 MySQL 数据库中执行过的业务 SQL,需提前配置慢日志,然后一次性采集
- DC [DB2 Collection]: DB2采集,用于采集 DB2 数据库中执行过的业务 SQL,需要长时间采集
- OI [Oracle Inspection]: Oracle兼容评估,用于评估源端 Oracle 中采集到的业务 SQL,在目标端 MogDB 中的实际兼容性
- MI [MySQL Inspection]: MySQL兼容评估,用于评估源端 MySQL 中采集到的业务 SQL,在目标端 MogDB 中的实际兼容性
- DI [DB2 Inspection]: DB2兼容评估,用于评估源端 DB2 中采集到的业务 SQL,在目标端 MogDB 中的实际兼容性
- OS [Oracle Simulation]: Oracle性能评估,用于评估源端 Oracle 中采集到的业务 SQL,在目标端 MogDB 中的执行性能
- OIS [Oracle Inspection & Simulation]: Oracle兼容和性能评估,等同于 OI + OS 两种任务同时进行
-
操作系统与平台支持
- Linux x86_64
- Linux arm64 (ARM 平台由于没有 DB2 客户端,故不支持 DB2 数据采集)
- MacOS (MacOS 版本不支持 openGauss/MogDB 中的 SHA256 加密认证方式)
-
数据库支持
-
SCA 目前支持的源端与目标端数据库类型如下:
- 源端:
- Oracle: 不低于 10.2
- MySQL: 不低于 5.5
- DB2: 不低于 11.5
- PostgreSQL: 不低于 9
- File: MySQL slow-log
-
目标端:
- MogDB/openGauss: 不低于 2.0
- PostgreSQL: 不低于 13.0
-
6. Mogeaver
-
Mogeaver基于流行的开源图形化工具dbeaver,在严格遵循DBeaver Community Edition 的ASL开源协议基础上,进行了二次开发和封装,支持对于MogDB数据库的图形化开发及管理,支持通过图形化的方式创建,修改,调试数据库内的存储过程,自定义函数,及包。
-
Mogeaver High light
-
多平台支持
- 支持macOS Intel版本,支持macOS Apple Silicon版本,
- 支持Windows,包括但不限于Windows 10, Windows 11
- 支持Linux,包括但不限于openEuler,Kylin Linux,UOS,Ubuntu,CentOS
-
兼容MogDB的特性
- 支持创建数据库选择不同的兼容模式(A,B,PG)
- 支持管理MogDB数据库角色(role)
- 支持管理Large序列(MogDB 3.0之后版本支持)
- 支持管理分区表(Partition Table)
- 支持管理数据库内任务(Job)
- 支持BLOB和CLOB字段的修改和查看
-
支持图形化调试
- 支持MogDB服务端的dbe_pldebugger调试功能
- 支持断点调试和单步调试
- 支持查看调试中变量值实时变化
- 支持定位并跳转至准确的代码报错位置
-
7. MogDB Manager
- MogDB Manager提供了图形化的数据库运维套件,包括:自动化安装部署,数据库监控,备份恢复管理等组件,在多个运维维度帮助客户提高数据库管理效率。
- 目前还未发布release版本,POC版本可用
8. MogDB Stack
-
MogDB Stack是Kubernetes上的MogDB集群自动运维系统,提供包括部署、高可用、扩缩容、监控、备份恢复的MogDB全生命周期管理。借助MogDB Stack,MogDB可以无缝运行在公有云或私有部署的Kubernetes集群上。
-
MogDB Stack特性
-
简单便捷的自动部署/回收
- 以Kubernetes作为原生的容器编排系统,以扩展资源的方式,轻松便捷地创建整套MogDB集群,并且根据用户的期望任意扩缩容。
-
稳定可靠的备份恢复能力
- 支持基于SQL的备份方式,并且存储在远端分布式存储中,多副本保证备份的可靠性,指定point-in-time的恢复方式,恢复到指定的时间点。
-
企业级的高可用性
- 自动故障探测、切换,并自动化的拉取数据快照恢复故障节点或重新调度新节点,实现系统的自愈能力,保证用户期望的副本数。
-
完善可靠的监控能力
- 基于Prometheus实现多维度的统一监控,囊括了系统层、容器层、数据库层的完整的监控指标。
-
精细化的资源管控
- 针对CPU、内存、存储等资源的限额,保证容器层的独立性,不会互相干扰,支持容器的亲和性、反亲和性调度。
-
-
系统架构
-
操作系统与平台支持
- MogDB Stack 目前支持在如下操作系统和平台架构下运行:
- Linux x86_64
- Linux arm64
- MogDB Stack 目前支持在如下操作系统和平台架构下运行:
9. PTK
-
PTK (Provisioning Toolkit)是一款针对 MogDB 数据库开发的软件安装和运维工具,旨在帮助用户更便捷地安装部署MogDB数据库。
-
如果用户想要运行 MogDB 或者 MogDB 的相关组件时,仅需要执行一行命令即可实现。
-
使用场景
- 开发人员快速启动多个本地MogDB环境
- 用户通过PTK快速安装部署MogDB
- DBA日常运维使用
- 第三方运维平台集成
-
通过 PTK 支持安装 MogDB 的操作系统
id | os | tested version(s) |
---|---|---|
1 | CentOS 7 (x86_64) | |
2 | openEuler 20 (x86_64) | 20.03 LTS |
3 | openEuler 20 (arm64) | 20.03 LTS |
4 | openEuler 22 (x86_64) | 22.03 LTS |
5 | openEuler 22 (arm64) | 22.03 LTS |
6 | Kylin V10 (x86_64) | V10 (Tercel) |
7 | Kylin V10 (arm64) | V10 (Tercel) |
8 | UOS 20 A (x86_64) | 1002a/1020a/1050a |
9 | UOS 20 A (arm64) | 1050a (kongzi) |
10 | Ubuntu 20 (x86_64) | 20.04.3 LTS (Focal Fossa) |
11 | CentOS 8 (arm64) | 8.0.1905 (Core) |
12 | CentOS 8 (x86_64) | 8.0.1905 (Core) |
13 | Red Hat Enterprise Linux 7 (x86_64) | 7.5 (Ma |
14 | Red Hat Enterprise Linux 8 (x86_64) | 8.5 (Oo |
15 | EulerOS 2 (x86_64) | 2.0 (SP3) |
16 | EulerOS 2 (arm64) | 2.0 (SP3) |
18 | SLES 12SP5 (x86_64) | 12SP5 |
19 | Oracle Linux 7 (x86_64) | 7.9 (Maipo) |
20 | Oracle Linux 8 (x86_64) | 8.6 (Ootpa) |
21 | Rocky Linux 8 (x86_64) | 8.5 (Green Obsidian) |
22 | NeoKylin V7 (x86_64) | V7Update6 |
23 | UOS 20 D/E (x86_64) | 1040d (fou) |
24 | UOS 20 D/E (arm64) | 1040d (fou) |
25 | Ubuntu 22 (x86_64) | 22.04 (Jammy Jellyfish) |
四、MogDB目前的合作伙伴(适配过的生态)
- 硬件整机
合作伙伴 | 产品及版本 | MogDB | 适配状态 |
---|---|---|---|
华为技术有限公司 | 泰山200系列服务器(鲲鹏920) | v1.0 v2.0 | 已认证 |
华为技术有限公司 | 泰山200系列服务器+银河麒麟V10(解决方案) | v2.0 | 已认证 |
华为云计算技术有限公司 | 华为云鲲鹏云服务、华为云Stack 8.0(鲲鹏) | v1.0 | 已认证 |
新华三技术有限公司 | H3C UniServer R4960 G3服务器(鲲鹏) | v2.0 | 已认证 |
曙光信息产业股份有限公司 | H620系列、H520系列、H420系列服务器、H620、H610、H320、H520、H210(海光) | v1.1 v2.0 | 已认证 |
中科可控信息产业有限公司 | R62系列、R52系列、R42系列服务器、R6240、R6140、R3240、R5240、R2140(海光+信创主板) | v1.1 v2.0 | 已认证 |
四川华鲲振宇智能科技有限责任公司 | 天宫TG215TG225TG525系列服务器(鲲鹏) | v1.1 | 已认证 |
百信信息技术有限公司 | 太行系列服务器(鲲鹏) | v1.1 v2.0 | 已认证 |
湖南湘江鲲鹏信息科技有限责任公司 | 兆翰RH220系列服务器(鲲鹏) | v2.0 | 适配中 |
北京神州数码云科信息技术有限公司 | 鲲泰R系列、A系列服务器(鲲鹏) | v2.0 | 已认证 |
武汉长江计算科技有限公司 | 长江系列鲲鹏服务器 | v2.0 | 已认证 |
- 芯片
合作伙伴 | 产品及版本 | MogDB | 适配状态 |
---|---|---|---|
华为技术有限公司 | KunPeng 920处理器 | v1.0 v2.0 | 已认证 |
飞腾信息技术有限公司 | S2500处理器 | v2.0 | 已认证 |
海光信息技术股份有限公司 | 海光3000、5000、7000系列处理器 | v1.1 v2.0 | 已认证 |
上海兆芯集成电路有限公司 | KH30000、KH20000、ZX-C+系列处理器 | v2.0 | 已认证 |
- 操作系统
合作伙伴 | 产品及版本 | MogDB | 适配状态 |
---|---|---|---|
麒麟软件有限公司 | 银河麒麟高级服务器操作系统V10(X86/鲲鹏/飞腾/兆芯/海光) | v1.1 v2.0 | 已认证 |
统信软件技术有限公司+鲲鹏CPU/飞腾CPU | 统信服务器操作系统V20(Debian) | v2.0 | 已认证 |
统信软件技术有限公司+海光CPU | 统信服务器操作系统V20(Debian) | v2.0 | 已认证 |
统信软件技术有限公司+海光CPU | 统信服务器操作系统V20(欧拉内核) | v2.0 | 已认证 |
统信软件技术有限公司+兆芯CPU | 统信服务器操作系统V20(Debian) | v2.0 | 已认证 |
统信软件技术有限公司+兆芯CPU | 统信服务器操作系统V20(欧拉内核) | v2.0 | 已认证 |
中科方德软件有限公司 | 方德高可信服务器操作系统V4.0 | v2.0 | 已认证 |
- 中间件
合作伙伴 | 产品及版本 | MogDB | 适配状态 |
---|---|---|---|
北京东方通科技股份有限公司 | 东方通中间件TongWebV7.0 | v2.0 | 已认证 |
北京宝兰德软件股份有限公司 | BES Application ServerV9.5 | v2.0 | 已认证 |
金蝶天燕云计算股份有限公司 | 金蝶Apusic应用服务器软件V9.0企业版 | v2.0 | 适配中 |
- 备份存储
合作伙伴 | 产品及版本 | MogDB | 适配状态 |
---|---|---|---|
上海爱数信息技术股份有限公司 | 备份软件AnyBackup7.0 | v2.0 | 适配中 |
华录光存储研究院(大连)有限公司 | 企业级蓝光光盘库 | v2.0 | 适配中 |
- 应用软件
合作伙伴 | 产品及版本 | MogDB | 适配状态 |
---|---|---|---|
中科软科技股份有限公司 | 偿二代风险管理系统V1.0、智能风险审计平台V1.0、智能风险管理平台V1.0、第二代偿付能力报送系统V1.0、资产负债管理系统V1.0 | v2.0 | 已认证 |
深圳市蓝凌软件股份有限公司 | 蓝凌信创数字化办公平台软件EKP-N V16.0 | v2.0 | 已认证 |
上海泛微软件有限公司/上海泛微网络科技股份有限公司 | 泛微协同商务软件e-cology V9.0 | v2.0 | 已认证 |
北京深蓝海域信息科技有限公司 | 知识管理系统V6.0 | v2.0 | 已认证 |
五、墨天轮数据库排行榜
六、MogDB认证体系
- MogDB数据库认证等级
缩写名称 | 考试模块 | 说明 |
---|---|---|
MGCA-初级 | 备份软件AnyBackup7.0 | 面向MogDB数据库的初级管理员、应用开发人员涵盖数据库系统概论,国产数据库发展业态,openGauss与MogDB数据库的关系,MogDB数据库简介、新特性、安装、客户端使用,MogDB体系概述,运维管理基础,数据库逻辑结构,SQL语言初探等。 |
MGCP-中级 | MGCP-020 | 面向MogDB数据库的中级管理员、架构设计与优化人员涵盖MogDB的生态发展、深入解析体系架构、深度维护、数据管理、功能特性、安全管理、性能优化、高级SQL、备份恢复、高可用技术以及相关管理工具等。 |
MGCE-高级 | 敬请期待… | 面向MogDB数据库的架构师、高级管理员、安全管理员以及AI方向的数据库使用者涵盖数据库高级安全管控、数据库深度诊断与优化、人工智能、负载均衡、分布式架构等。 |
- 获取证书路线图
七、MogDB社区
八、MogDB大事记
-
2020.07.01
发布openGauss Container Edition(openGauss容器版v1.00-支持单机) -
2020.08.30
发布GSHA(openGauss HA)高可用组件 -
2020.09.24
在华为全联接2020上,MogDB正式亮相发布,并与民生银行一起联袂获得华为颁发的openGauss超级用户大奖 -
2020.09.30
发布openGauss Container Edition(openGauss容器版v1.0.1-支持主备) -
2020.10.30
发布辅助MogDB后期运维的自动化批量化安装部署工具PTK(Provioning ToolKit),同时支持单机、主备以及级联备库自动化安装 -
2020.11.30
发布辅助MogDB后期运维的监控工具MIT(MogDB Insight)和备份恢复工具BRM(Backup and Recovery Manager) -
2020.12.30
发布openGauss Container Edition(openGauss容器版v1.1.0-支持主备)
开源opengauss_exporter for Prometheus
开源wal2json for openGauss -
2021.03.30
发布openGauss Container Edition 2.0 -
2021.05.25
发布MogDB 2.0 -
2021.06.30
发布MogDB 2.0.1 -
2021.11.30
发布MogDB 2.1.0 -
2022.03.30
发布MogDB 2.1.1