关于MogDB我所知的一切(一)

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 关于MogDB我所知的一切

一、MogDB数据库介绍

MogDB是云和恩墨基于openGauss开源数据库进行完善增强的企业发行版。它围绕高性能、高可用、全密态、自动化运维、多数据库兼容等企业需求,应对企业用户需求新一代数据库的应用场景。其核心价值是高安全、高性能、高兼容、易运维和全天候的企业支持。

二、MogDB目前公开的客户

ce66b5a635820866a2502a0d0c039392_20220831-63d89c9a-ee8d-4db5-b250-03cda283c553.png

三、MogDB生态工具

1 . 关于MogHA(MogDB Highly Available )

  • MogHA 是云和恩墨基于 MogDB 同步异步流复制技术自研的一款保障数据库主备集群高可用的企业级软件系统
  • MogHA 能够自主探测故障实现故障转移,虚拟IP自动漂移等特性,使得数据库的故障持续时间从分钟级降到秒级(RPO=0,RTO<30s),确保数据库集群的高可用服务。
  • 为什么需要MogHA
  • 首先我们需要理解一下什么是高可用,高可用的目的是为了让数据库尽可能提供连续服务,以保证上层业务的稳定运行。数据库虽然支持主备库的部署结构,其目的是防止单点故障。但数据库并不提供故障检测以及自动化切换主备的功能,这也不属于数据库的处理范畴。所以需要有 MogHA 这样的一套高可用系统,来保证数据库服务的连续性。
  • 功能特性
  • 自主发现数据库实例角色
  • 自主故障转移
  • 支持网络故障检测
  • 支持磁盘故障检测
  • 虚拟IP自动漂移
  • 感知双主脑裂,自动选主
  • 数据库进程和CPU绑定
  • HA自身进程高可用
  • 支持单机并行部署多套 MogHA
  • 支持 x86_64 和 aarch64
  • 系统架构

769f1d98877ba6d37c3162b9cd1d7fa8_20220831-afd9967b-d252-4ff3-8a26-9e52e8ac9efd.png

  • 支持的模式
  • Lite 模式,顾名思义即轻量级模式,该模式仅需在主库和一台同步备机器上启动 MogHA 服务,此时 MogHA 服务可以保证这两台机器上数据库实例的高可用,当主库发生不可修复的问题或者网络隔离时,MogHA 可以自主地进行故障切换和虚拟IP漂移。
  • 69f4d88ece8b656a2b6e6b1ddd9f5b44_20220831-5c02f746-e58c-4435-bbdc-3830482aaa1e.png
  • Full模式相较于 lite 模式,需要在所有实例机器上运行 MogHA 服务,且所有的实例有由 MogHA 来自动管理,当出现主库故障时,会优先选择本机房同步备进行切换,如果本机房同步备也是故障的情况,会选择同城备机房的同步备进行切换。为了达到RPO=0,MogHA 不会选择异步备库进行切换,以防止数据丢失。该模式会在主备切换时,会自动修改数据库的复制连接及同步备列表配置。
  • 1a94f35e07a673ad8770356ee24e814b_20220831-411c79b6-863f-46e4-9256-079f5b56939a.png

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 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等)之间的数据迁移和同步
  • 架构
  • dedf712738ed31bccef4a58c6ec64188_20220831-16c19e8b-f0d9-451e-a1f7-4f9bc9e7320c.png
  • 支持数据库类型
源数据库 目标数据库 是否支持 预计支持版本
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
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
网络协议 算法 关系型数据库
GreatSQL 8.0.25-17今日发布
GreatSQL 8.0.25-17今日发布
|
SQL 存储 运维
关于MogDB我所知的一切(二)
关于MogDB我所知的一切
500 0
关于MogDB我所知的一切(二)
|
存储 运维 Kubernetes
Oushu Database和Apache HAWQ的不同
Oushu Database和Apache HAWQ的不同
82 0
|
消息中间件 Oracle Java
MogDB/openGauss 实时同步工具 —— MDB (MogDB Data Bridge)
MogDB/openGauss 实时同步工具 —— MDB (MogDB Data Bridge)
471 0
MogDB/openGauss 实时同步工具 —— MDB (MogDB Data Bridge)
|
SQL JSON 数据可视化
PgSQL 使用技巧总结
PgSQL 使用技巧总结
388 0
|
存储 运维 Kubernetes
【OushuDB】Oushu Database和Apache HAWQ的不同
全新执行引擎,充分利用硬件的所有特性,比Apache HAWQ性能高出5-10倍支持Update和Delete,以及索引C++可插拔外部存储替换JAVA PXF,性能高数倍,无需安装部署PXF额外组件,极大简化了用户安装部署和运维原生支持CSV/TEXT外部存储可以用于不同集群之间共享数据,比如数据仓库和集市之间共享及传输数据可以用于高速数据加载和数据导出可以实现高速备份和恢复可以实现可插拔文件系统:比如S3, Ceph等可以实现可插拔文件格式:比如ORC,Parquet等支持ORC/TEXT/CSV作为内部表格式,支持ORC作为外部表格式 (通过C++可插拔外部存储)对PaaS/CaaS云平
298 0
【OushuDB】Oushu Database和Apache HAWQ的不同
|
关系型数据库 数据库 运维
PGPool使用限制
PGPool使用限制
1576 0