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

简介: 关于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
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
缓存
银河麒麟server-V10配置镜像源
银河麒麟server-V10配置镜像源
16948 1
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
1708 0
|
Java API Maven
【现成工具】java获取国家法定节假日包含指定月份节假日和周末
【现成工具】java获取国家法定节假日包含指定月份节假日和周末
3757 0
|
监控 Linux
jmeter-性能监控CPU、内存、IO等-监控插件详解(1)
jmeter-性能监控CPU、内存、IO等-监控插件详解(1)
jmeter-性能监控CPU、内存、IO等-监控插件详解(1)
|
Oracle 关系型数据库 数据库
实战篇:Oracle 数据坏块的 N 种修复方式
实战篇:Oracle 数据坏块的 N 种修复方式
实战篇:Oracle 数据坏块的 N 种修复方式
|
安全 关系型数据库 MySQL
Linux(CentOS6)安装MySQL5.6
Linux(CentOS 6)系统上安装MySQL 5.6版本的详细步骤,包括准备数据存放目录、创建用户、下载安装包、初始化数据库、配置服务脚本、设置环境变量等操作。
915 1
|
11月前
|
人工智能 知识图谱 Docker
KAG:增强 LLM 的专业能力!蚂蚁集团推出专业领域知识增强框架,支持逻辑推理和多跳问答
KAG 是蚂蚁集团推出的专业领域知识服务框架,通过知识增强提升大型语言模型在特定领域的问答性能,支持逻辑推理和多跳事实问答,显著提升推理和问答的准确性和效率。
3356 46
KAG:增强 LLM 的专业能力!蚂蚁集团推出专业领域知识增强框架,支持逻辑推理和多跳问答
|
Docker 容器
docker run
【9月更文挑战第08天】
734 1
|
存储 机器学习/深度学习 并行计算
GPU通信互联技术:GPUDirect、NVLink与RDMA
在高性能计算和深度学习领域,GPU已成为关键工具。然而,随着模型复杂度和数据量的增加,单个GPU难以满足需求,多GPU甚至多服务器协同工作成为常态。本文探讨了三种主要的GPU通信互联技术:GPUDirect、NVLink和RDMA。GPUDirect通过绕过CPU实现GPU与设备直接通信;NVLink提供高速点对点连接和支持内存共享;RDMA则在网络层面实现直接内存访问,降低延迟。这些技术各有优势,适用于不同场景,为AI和高性能计算提供了强大支持。
|
运维 监控 关系型数据库
【一文搞懂PGSQL】7. PostgreSQL + repmgr + witness 高可用架构
该文档介绍了如何构建基于PostgreSQL的高可用架构,利用repmgr进行集群管理和故障转移,并引入witness节点增强网络故障检测能力。repmgr是一款轻量级的开源工具,支持一键部署、自动故障转移及分布式节点管理。文档详细描述了环境搭建步骤,包括配置postgresql参数、安装与配置repmgr、注册集群节点以及配置witness节点等。此外,还提供了故障手动与自动切换的方法及常用命令,确保集群稳定运行。