diff --git a/product/zh/docs-mdb/v1.0/channel_desc.md b/product/zh/docs-mdb/v1.0/channel_desc.md new file mode 100644 index 0000000000000000000000000000000000000000..d8e25c0eba18e0f8b11bae559f9984438f42c501 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/channel_desc.md @@ -0,0 +1,104 @@ +--- +title: 通道功能描述 +summary: MDB 通道功能描述 +author: tianzijian +date: 2022-06-30 +--- + +# MDB 通道功能 +​ 在 MDB 系统中,通道是一个逻辑单元,通过一系列操作连接源节点和目标节点。 +数据复制、调度、错误处理、性能调整和其他操作都发生在通道中。 +MDB 将通道内的数据从源节点同步到目标节点。 +目前一个通道中仅支持一个源节点和一个目标节点,即实现一对一的数据同步复制。 +## 通道列表 +​ 通道列表展示,支持通道名,节点名糊查询 +​ + +## 新增通道 +​ 新增数据同步通道,选择数据从Oracle同步到MogDB。新增通道不能选择两个相同类型的节点 +​ + +## 删除通道 +​ 通道状态不在执行中,删除按钮高亮,可以直接删除。 如果状态处于执行中,不允许删除,需要停止通道中执行的任务,再进行删除操作。 + +## 通道暂停 +​ 通道状态仅为增量同步中可以暂停,仅为增量同步暂停时可以启动。 + +## 通道详情 +​ 展示通道名,状态,同步对象数,同步表数,节点名称。 + +## 通道-配置 +​ 支持修改通道名称。
+​ + +## 通道-对象 +### 对象选择 +​ 对象选择,从源节点选择需要同步到目标节点的对象,如果配置映射规则,会经过规则转换。目标对象名大小写会默认转为目标节点对应的规范。 +​ + +### 对象删除 +​ 通道未执行数据同步,可以直接删除已添加的同步对象。如果通道数据已同步,需要停止数据同步,删除后,重新执行对象同步,数据同步。 + +### 查看字段映射 +​ 展示源端和目标端字段映射信息,仅对象类型为TABLE,可以查看。 + +### 字段映射配置 + +​ 可以修改目标库schema、表名、字段名。保存后需要重新执行预检查,对象同步,数据同步。 +​ + +### 映射规则 +Schema映射配置: +- schemaName映射 +- 可配置多条映射规则,映射规则则会按表格中列出的顺序依次执行, +- 保存后立即生效, 需要重新执行对象同步、数据同步 + + +对象映射配置: +- 字符替换: 从源库对象名中搜索包含指定字符串的对象,将指定的字符串替换为目标库中的替换字符串。 +- 正则替换: 将正则规则应用到所有源库对象名上,如果匹配上源库正则表达式,则替换为目标库中的替换字符串。 +- 可配置多条对象映射规则,映射规则则会按表格中列出的顺序依次执行。 +- 保存后立即生效, 需要重新执行对象同步、数据同步 + + +## 通道-高级参数 + +- 高级参数编辑 + + ​ 在MDB中,高级参数控制着通道同步过程中的逻辑,例如skipSnapShot 是否跳过快照,只同步增量数据,overrideMode 是否覆盖目标节点已存在的对象结构等。 + +| 参数名称 | 默认 | 描述 | +|:-----------------|:---:|:----------------------------------| +| compatibleModel | ON | 迁移兼容模式: ON-兼容,OFF-不兼容 | +| overrideMode | NONE | 覆盖模式:NONE_FORCE-不覆盖,NONE&FORCE-覆盖 | +| tableSpaceSwitch | OFF | 是否忽略表空间: ON-不忽略,OFF-忽略 | +| skipSnapShot | ON | 是否跳过全量数据:ON-是,OFF-否 | + +​ + +## 通道-同步日志 +​ 数据同步操作后,数据捕获和目标节点写入的过程日志。 +​ + +## 通道-操作 +### 近期任务列表 +​ 通道中,展示同步进度,各阶段执行时间,结果。 + +### 同步任务 +- 执行一键同步 或 依次执行预检查、对象同步、数据同步 + +- 增量暂停: 暂停数据同步,停止Capture和Integrate + +- 增量启动: 恢复数据同步,恢复Capture和Integrate + +### 任务失败查看 +- 查看预检查异常
+ + +- 查看同步对象异常
+ + + 目标端SQL 支持编辑、格式化、复制,编辑保存后重新执行,执行成功后异常移除列表。 + +### 刷新 +​ 任务执行后刷新,展示最新通道状态,任务状态 \ No newline at end of file diff --git a/product/zh/docs-mdb/v1.0/concepts.md b/product/zh/docs-mdb/v1.0/concepts.md new file mode 100644 index 0000000000000000000000000000000000000000..b615b08afc7f922c6fde71733701e46cc586b818 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/concepts.md @@ -0,0 +1,169 @@ +--- +title: 基本概念 +summary: MDB 基本概念 +author: tianzijian +date: 2022-06-30 +--- + +# 基本概念 + +本文介绍了 MDB 系统中涉及到的一些基本概念,如:节点、通道、对象、任务等。 + +## 节点 + +在 MDB 系统中,节点是复制过程中的端点,对应一个数据库系统。 +节点可以是本地(即与 MDB 系统位于同一台机器上)或远程(位于远程机器上)。 +节点可以作为源库使用,即从节点中进行数据抓取,也可以作为目标库使用,即将数据同步到节点数据库中。 + +节点中涉及到的概念描述如下: + +| 概念 | 描述 | +| - | - | +| 节点类型 | 数据库类别,例如: Oracle, MogDB, DB2, MySQL等,目前支持: Oracle、MogDB | +| 节点名称 | 自定义名称( 2-30 位字母数字下划线横杆等符号组成,开头必须字母或数字) | +| IP | 数据库服务监听 IP 地址 | +| 端口 | 数据库服务监听端口 | +| 服务名/库名 | 数据库服务名、SID、库名等 | +| 服务名/库名类型 | Oracle连接类型,仅oracle可以选择,可选值: ServiceName、SID | +| 用户名 | 数据库连接用户 | +| 密码 | 连接用户的密码 | +| 关联通道数 | 被通道使用的通道数量 | +| 更新时间 | 操作时间 | + +## 通道 + +在 MDB 系统中,通道是一个逻辑单元,通过一系列操作连接源节点和目标节点。 +数据复制、调度、错误处理、性能调整和其他操作都发生在通道中。 +MDB 将通道内的数据从源节点同步到目标节点。 +目前一个通道中仅支持一个源节点和一个目标节点,即实现一对一的数据同步复制。 + +通道中涉及到的概念描述如下: + +| 概念 | 描述 | +| - | - | +| 通道名称| 自定义名称( 2-30位字母数字下划线横杆等符号组成,开头必须字母或数字) | +| 源节点| 用于数据抓取的节点,即待同步的数据库节点 | +| 目标节点 | 需要同步数据的目标节点,源节点中抓取到的数据,会同步写入此目标节点 | +| 状态 | 通道当前状态,目前有如下状态:
初始化
预检中
预检查成功
预检查失败
对象同步中
对象同步成功
对象同步失败
数据同步中
数据同步成功
数据同步失败
增量同步中
增量同步失败
增量同步暂停 | +| 同步对象数 | 通道中选择同步的对象数量 | +| 同步表数 | 通道中选择同步的表数量 | +| 最后更新时间 | 操作时间 | + +## 对象 + +在 MDB 系统中,对象是复制的基本单位,在数据库中代表 TABLE、SEQUENCE、VIEW、SYNONYM 等, +当前版本仅支持 TABLE。 + +对象中涉及到的概念描述如下: + +| 概念 | 描述 | +| - | - | +| 源 Schema | 源节点 schema 名称(Oracle中为用户名,MySQL中为库名) | +| 源名称 | 源节点的对象名,在对象选择操作中选择 | +| 对象类型 | 源库中的对象类型:
TABLE
SEQUENCE、VIEW、SYNONYM (暂不支持) | +| 目标 Schema | 同步到目标节点的 schema 名 | +| 目标名称 | 同步到目标节点的对象名 | +| 字段变更 | 字段映射配置中,目标端字段名变更的数量 | + +### 字段映射 + +节点表结构映射,展示表字段、数据类型、精度等信息, +可变更目标端 schema 名、表名、字段名,修改后不随规则映射配置变更。 + +字段映射中涉及到的概念描述如下: + +| 标题 | 描述 | +| - | - | +| 源端 | 源节点表结构 | +| 目标端 | 目标节点表结构 | +| 字段名 | 表列名,支持目标端修改 | +| 类型 | 数据类型 | +| 精度 | 数据长度 | +| 标度 | 数据标度 | +| 允许为空 | 是否允许数据为空 (Y, N) | + +### 规则映射 + +通道中 schema 和对象同步到目标端名字变更规则,对在字段映射中,对目标端 schema 名和表名做的变更不生效。 + +规则映射中涉及到的概念描述如下: + +| 概念 | 描述 | +| - | - | +| 源端 Schema | 字符串,匹配源端 schema 名,大小写敏感(Oracle中为大写,MogDB中为小写) | +| 目标 Schema | 字符串,替换为目标 schema 名,大小写敏感(Oracle中为大写,MogDB中为小写) | +| 替换规则 | 对象映射规则类型:
**字符替换**:针对源库对象名称中出现的指定字符串,全部替换为指定的目标字符串。
**正则替换**:使用正则规则进行替换,即将源库对象名称中符合正则规则的字符串,全部替换为指定的目标字符串。 | +| 源端搜索 | 字符串或正则表达式,匹配源节点对象名 | +| 目标替换 | 字符串,源端搜索匹配到的部分,替换为目标端替换字符串 | + +## 通道-高级参数 + +在 MDB 系统中,高级参数控制着通道同步过程中的逻辑, +例如 skipSnapShot 是否跳过快照,只同步增量数据,overrideMode 是否覆盖目标节点已存在的对象等。 + +通道高级参数中涉及到的概念描述如下: + +| 概念 | 描述 | +| - | - | +| 参数名称 | 高级参数名称 | +| 参数值 | 参数的默认值,可以编辑修改 | +| 参数说明 | 参数名的描述 | + +## 通道-操作 + +在 MDB 系统中,操作控制同步任务,检查配置,对象同步,数据的捕获和写入,同步任务开始和暂停。 + +### 同步任务 + +- **一键同步**: 从当前通道状态向后依次自动执行,直到增量启动。 +- **预检查**: 执行同步前的环境检查,主要包括:节点连接、字符集、时区、补充日志、数据库配置、表冲突、命名规范等 +- **对象同步**: 执行对象结构同步,目前包含:Schema、Table、Index、Constraint +- **数据同步**: 执行全量数据同步 +- **增量暂停**: 暂停增量数据同步,停止 Capture 和 Integrate +- **增量启动**: 启动增量数据同步,恢复 Capture 和 Integrate + +### 近期任务 + +近期任务列表中,展示同步进度,各阶段执行时间,结果等信息。 + +近期任务中涉及到的概念描述如下: + +| 标题 | 描述 | +| - | - | +| 同步阶段 | 同步的各个阶段,目前包括:预检查、对象同步、数据同步、增量追踪 | +| 起始时间 | 当前任务的开始时间 | +| 结束时间 | 当前任务的结束时间 | +| 耗时/延时 | 当前任务的执行耗时,对于增量同步,记录当前的增量同步延时 | +| 操作者 | 操作用户 | +| 同步结果 | 任务执行结果:执行中、失败、成功、暂停、异常终止 | + +### 运行日志 + +数据同步操作后,数据捕获和目标节点写入的过程日志。 + +### 预检查异常数据 + +预检查操作,执行检查项失败和警告信息。 + +| 标题 | 描述 | +| - | - | +| 失败信息 | 检查项未通过原因,提示修改 | +| 检查日期 | 检查时间 | +| 检查状态 | 异常状态:失败、警告 | + +### 对象同步异常 + +对象同步操作,同步过程中失败的信息。 + +| 标题 | 描述 | +| - | - | +| 对象类型 | 同步的对象类型:SCHEMA、TABLE、INDEX、CONSTRAINT | +| 源端 Schema | 源节点中的 schema 名称 | +| 源端名称 | 源节点对象名 | +| 目标端 Schema | 目标节点中的 schema 名称 | +| 目标端名称 | 目标节点对象名 | +| 迁移时间 | 对象同步时间 | +| 同步结果 | 对象同步执行结果:失败、警告 | +| 操作 | 重新执行:重新执行目标端SQL | +| 目标端 SQL | 目标节点执行的 SQL 语句,支持编辑、格式化、复制 | +| 目标端错误信息 | 目标节点执行目标端 SQL 异常内容 | diff --git a/product/zh/docs-mdb/v1.0/install.md b/product/zh/docs-mdb/v1.0/install.md new file mode 100644 index 0000000000000000000000000000000000000000..9ee18d0ef03edc44efc010e8fdf223d340725984 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/install.md @@ -0,0 +1,263 @@ +--- +title: 安装说明 +summary: MDB 安装说明 +author: tianzijian +date: 2022-06-30 +--- + +# MDB 安装 + +## 安装需求 + +MDB 部署的系统需求如下: + +- 服务器: Linux x86_64 +- 资料库: MogDB + +## 支持版本 + +| 软件 | 版本 | +| :----- | :------------------------------------ | +| Java | 11+ | +| MogDB | Database: 2.0+
Plug-ins: wal2json | +| Oracle | Database: 11c 12c 19c | + +## 安装步骤 + +### **1). 下载软件** + +下载最新版 MDB 安装包,详细下载链接请参考: [发布记录](./release) + +### **2). 上传软件并解压** + +上传 MDB 安装包到服务器,并解压: + +```shell +unzip mdb_1.0_linux_x86_64.zip +``` + +### **3). 准备资料库** + +MDB 当前资料库必须使用 MogDB(openGauss) 数据库,版本不低于 2.0。 + +MogDB 安装请参考: [MogDB单实例安装](https://docs.mogdb.io/zh/mogdb/v2.1/installation-on-a-single-node) + +MogDB 软件安装完成后,在 MogDB 数据库服务器中,使用 gsql 客户端工具以本地超级管理员用户登录数据库 + +```shell +gsql -r +``` + +在 MogDB 中预先创建 MDB 资料库与资料库用户: + +```sql +-- 创建资料库用户,密码请依据实际环境需求修改 +create user mdb_repo with password 'MDB@password' login; + +-- 创建资料库,资料库 owner 必须设置为 mdb_repo +create database mdb_repo_db with owner mdb_repo; +``` + +### **4). 检查 Java 版本** + +MDB 依赖 Java 11,需要确保当前安装服务器中,Java 版本不低于 11: + +``` +java -version +``` + +若 Java 版本过低,则需要从 Oracle 官网下载 Java 11 对应的 JDK/JRE 软件包,下载链接如下: + +https://www.oracle.com/java/technologies/downloads/#java11 + +下载 jdk-11.0.15.1_linux-x64_bin.tar.gz 软件包,并上传到服务器中解压使用: + +``` +tar -zxvf jdk-11.0.15.1_linux-x64_bin.tar.gz +export PATH="`pwd`/jdk-11.0.15/bin:$PATH" +``` + +再次确认 Java 版本,确保已使用 Java 11: + +``` +java -version + +# 以下为示例输出: +# -------------- +# java version "11.0.15" 2022-04-19 LTS +# Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149) +# Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.15+8-LTS-149, mixed mode) +``` + +### **5). 检查 Web 端口占用** + +MDB Server 需要一个 Web 监听端口(默认 55437),在安装的时候,需要确保该端口未被占用。 + +``` +netstat -anp | grep LISTEN | grep 55437 # 确保没有处于 LISTEN 状态的进程 +``` + +### **6). 检查存在残留文件** + +zookeeper 和 kafka 安装,需要确保/tmp/zookeeper 和 /tmp/kafka-logs目录不存在。如果确定是残留文件,请执行以下命令。 + +```shell +rm -rf /tmp/zookeeper +rm -rf /tmp/kafka-logs +``` + +### **7). 调整安装配置** + +切换到已解压的 MDB 安装包目录,检查安装包中文件的完整性: + +```shell +cd mdb_1.0_linux_x86_64 + +ls -ltr +``` + +安装包文件说明如下: + +| 文件名 | 文件说明 | +|-|-| +| kafka.zip | Kafaka 组件安装包,用于同步时中间数据队列 | +| mdb | MDB 命令执行文件 | +| mdb-data-worker.zip | 数据采集投递任务相关的软件包 | +| mdb-server.zip | MDB 主软件包 | +| config.json | 安装配置文件 | + +修改配置文件: `config.json` + +```json +{ + "mdbServerPort": 55437, + "dbHost": "127.0.0.1", + "dbPort": 26000, + "dbUser": "mdb_repo", + "dbPassword": "MDB@password", + "dbName": "mdb_repo_db" + } +``` + +配置项说明如下: + +| 配置项 | 默认值 | 配置说明 | +|-|-|-| +| mdbServerPort | 55437 | MDB 服务端口
用于 Web 页面访问,需要确保从 MDB 服务器到客户端 Web 之间的网络互通 | +| dbHost | 127.0.0.1 | 资料库监听的 IP 地址 | +| dbPort | 26000 | 资料库监听的服务端口 | +| dbUser | mdb_repo | MDB 资料库用户 | +| dbPassword | MDB@password | MDB 资料库密码 | +| dbName | mdb_repo_db | MDB 资料库数据库名 | + +### **8). 安装 MDB** + +检查并确保已切换到 MDB 安装包目录: + +```shell +pwd # 确保已经位于 mdb_1.0_linux_x86_64 目录中 +``` + +执行安装命令: + +```shell +./mdb install +``` + +正常安装结果如下: + +```text + 2022-06-23 14:08:24 ======BEGIN TO INSTALL MDB====== + 2022-06-23 14:08:24 1.CHECK MDB FILE + 2022-06-23 14:08:24 2.CHECK MDB ENVIRONMENT + 2022-06-23 14:08:25 JAVA_VERSION: 11.0 + 2022-06-23 14:08:25 3.UNZIP KAFKA + 2022-06-23 14:08:26 4.INSTALL MDB SERVER + 2022-06-23 14:08:26 5.INSTALL MDB DATA WORKER + 2022-06-23 14:08:26 + + ======END INSTALL MDB RESULT====== + +------------+-----------+-------------+---------------+ + | File_Check | Env_Check | MDB_Install | KAFKA_INSTALL | + +------------+-----------+-------------+---------------+ + | Success | Success | Success | Success | + +------------+-----------+-------------+---------------+ + +``` + +### **9). 启动 MDB** + +执行启动命令: + +```shell + ./mdb start +``` + +正常启动的执行结果如下: +```text + 2022-06-23 11:33:10 start zookeeper success + 2022-06-23 11:33:21 start kafka success + 2022-06-23 11:33:32 start connector success + 2022-06-23 11:33:42 start mdb-server success + 2022-06-23 11:33:42 MDB启动成功,各程序占用端口如下 + +-------+-----------+-----------+------------+ + | KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | + +-------+-----------+-----------+------------+ + | 9092 | 2181 | 8083 | 55437 | + +-------+-----------+-----------+------------+ + 2022-06-23 11:33:42 MDB各程序服务状态 + +--------+-----------+-----------+------------+ + | KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | + +--------+-----------+-----------+------------+ + | online | online | online | online | + +--------+-----------+-----------+------------+ +``` +### **10). 查看MDB服务状态** + +执行查询状态命令: + +```shell + ./mdb status +``` + +正常执行结果如下: +```text + 2022-06-23 14:06:39 MDB各程序服务状态 + +---------+-----------+-----------+------------+ + | KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | + +---------+-----------+-----------+------------+ + | offline | offline | offline | offline | + +---------+-----------+-----------+------------+ +``` +### **11). 停用MDB** + +执行停止命令: + +```shell + ./mdb stop +``` + +正常执行结果如下: +```text + 2022-06-23 14:02:52 stop connector success + 2022-06-23 14:03:02 stop kafka success + 2022-06-23 14:03:12 stop zookeeper success + 2022-06-23 14:03:22 stop mdb-server success + 2022-06-23 14:03:22 stop mdb-data-worker success + 2022-06-23 14:03:22 MDB各程序服务状态 + +---------+-----------+-----------+------------+ + | KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | + +---------+-----------+-----------+------------+ + | offline | offline | offline | offline | + +---------+-----------+-----------+------------+ +``` +### **11). 登录 MDB** + +MDB 启动成功后,可在客户端 Web 浏览器中(推荐使用 Chrome 浏览器),检查页面是否正常,检查是否可正常登录: + +http://localhost:55437/mdb/api/v1/index.html + +* 初始用户名: test@enmotech.com +* 初始密码: 123456 + + diff --git a/product/zh/docs-mdb/v1.0/mogdb_to.md b/product/zh/docs-mdb/v1.0/mogdb_to.md new file mode 100644 index 0000000000000000000000000000000000000000..4526e58aa8bf7f9d46baa1e65ea3355d95aaaac8 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/mogdb_to.md @@ -0,0 +1,163 @@ +--- +title: MogDB源库说明 +summary: MDB MogDB源库说明 +author: tianzijian +date: 2022-06-30 +--- + +# MogDB为源库 + +## 支持版本 + +数据库版本: 不低于 2.0 +依赖插件: wal2json + +## 数据库设置 + +### 安装插件 wal2json + +具体请参考: [wal2json](https://github.com/eulerto/wal2json) + +### 修改源库 WAL 参数 + +修改源库参数配置文件 `postgresql.conf`,参数文件位于数据库 data 目录下。 + +通过 gsql 工具登录 MogDB 数据库,查询数据目录位置: + +```shell +gsql -d postgres -U $USER -c 'show data_directory' +``` + +修改以上命令查询到的数据目录中的 postgresql.conf 文件 +```shell +# 注意替换 为实际查询到的数据目录位置 +vi /postgresql.conf +``` + +在 postgresql.conf 中找到如下参数,并修改为对应的参数值: + +1. wal_level=logical # 使用logical decoding读取预写日志 +2. wal_sender_timeout = 0s # 超时时间自定义 + +### 修改源库 HBA 配置 + +在数据库数据目录()中,找到 `pg_hba.conf` 配置文件,在其中添加如下配置以便允许复制。 + +注意: mdb_user 为复制使用的用户,实际环境中若用户名有变更,则需要实际实际情况修改。 + +```shell +# 注意替换 为实际查询到的数据目录位置 +cat >> /postgresql.conf <"EOF" + +# Add for MDB replication +host replication mdb_user 0.0.0.0/0 sha256 +EOF +``` + +### 设置用户权限 + +创建 mdb_user 用户,用于登录和复制源端 MogDB 数据,实际环境中用户名与密码可按实际需求自行修改。 + +其中: +* login 权限用于登录数据库 +* replication 权限用于同步增量数据 +* sysadmin 权限用于对象初始化和全量数据同步 + +```sql +create user mdb_user with login replication sysadmin PASSWORD 'Enmo@123'; +``` + +### 打开表的 REPLICA IDENTITY 模式 + +针对需要被同步的所有表,都需要打开 REPLICA IDENTITY 模式,具体命令如下: + +注意: 以下仅为命令示例,实际上需要对被同步的所有表,都设置 REPLICA IDENTITY。 + +```sql +ALTER TABLE public.customers REPLICA IDENTITY FULL; +``` + +## 数据类型映射 + +| 源库 | 目标库 | 源库类型 | 目标库类型 | +|--------|-----------|----------|-----------| +| MogDB|Oracle|timestamptz|TIMESTAMP WITH TIME ZONE| +| MogDB|Oracle|raw|RAW| +| MogDB|Oracle|bit|RAW| +| MogDB|Oracle|varbit|RAW| +| MogDB|Oracle|blob|XML| +| MogDB|Oracle|bytea|BLOB| +| MogDB|Oracle|byteawithoutordercol|BLOB| +| MogDB|Oracle|byteawithoutorderwithequalcol|BLOB| +| MogDB|Oracle|uuid|BLOB| +| MogDB|Oracle|json|JSON| +| MogDB|Oracle|jsonb|JSON| +| MogDB|Oracle|xml|XMLTYPE| +| MogDB|Oracle|float4|FLOAT| +| MogDB|Oracle|float8|DOUBLE| +| MogDB|Oracle|oid|NUMBER| +| MogDB|Oracle|int1|NUMBER| +| MogDB|Oracle|int2|NUMBER| +| MogDB|Oracle|int4|NUMBER| +| MogDB|Oracle|int8|NUMBER| +| MogDB|Oracle|int16|NUMBER| +| MogDB|Oracle|money|NUMBER| +| MogDB|Oracle|numeric|NUMBER| +| MogDB|Oracle|bpchar|CHAR| +| MogDB|Oracle|char|CHAR| +| MogDB|Oracle|name|CHAR| +| MogDB|Oracle|varchar|VARCHAR2| +| MogDB|Oracle|nvarchar2|NVARCHAR2| +| MogDB|Oracle|bool|VARCHAR2| +| MogDB|Oracle|clob|CLOB| +| MogDB|Oracle|text|CLOB| +| MogDB|Oracle|abstime|TIMESTAMP WITH TIME ZONE| +| MogDB|Oracle|date|DATE| +| MogDB|Oracle|interval|INTERVAL| +| MogDB|Oracle|reltime|TEXT| +| MogDB|Oracle|smalldatetime|DATE| +| MogDB|Oracle|time|DATE| +| MogDB|Oracle|timetz|DATE| +| MogDB|Oracle|timestamp|TIMESTAMP WITHOUT TIME ZONE| + +## 字符集映射 + +| 源库 | 目标库 | 源库字符集 | 目标库字符集 | + |--------|----------------|----------|-----------| +| MogDB|Oracle| BIG5 |ZHT16BIG5| +| MogDB|Oracle| EUC_JP |JA16EUC| +| MogDB|Oracle| EUC_JIS_2004 |JA16EUCTILDE| +| MogDB|Oracle| EUC_TW |ZHT32EUC| +| MogDB|Oracle| GB18030 |ZHS32GB18030| +| MogDB|Oracle| GBK |ZHS16GBK| +| MogDB|Oracle| ISO_8859_5 |CL8ISO8859P5| +| MogDB|Oracle| ISO_8859_6 |AR8ISO8859P6| +| MogDB|Oracle| ISO_8859_7 |EL8ISO8859P7| +| MogDB|Oracle| ISO_8859_8 |IW8ISO8859P8| +| MogDB|Oracle| JOHAB |KO16KSCCS| +| MogDB|Oracle| KOI8R |CL8KOI8R| +| MogDB|Oracle| KOI8U |CL8KOI8U| +| MogDB|Oracle| LATIN1 |WE8ISO8859P1| +| MogDB|Oracle| LATIN2 |EE8ISO8859P2| +| MogDB|Oracle| LATIN3 |SE8ISO8859P3| +| MogDB|Oracle| LATIN4 |NEE8ISO8859P4| +| MogDB|Oracle| LATIN5 |WE8ISO8859P9| +| MogDB|Oracle| LATIN6 |NE8ISO8859P10| +| MogDB|Oracle| LATIN7 |BLT8ISO8859P13| +| MogDB|Oracle| LATIN8 |CEL8ISO8859P14| +| MogDB|Oracle| LATIN9 |WE8ISO8859P15| +| MogDB|Oracle| SJIS |JA16SJIS| +| MogDB|Oracle| SHIFT_JIS_2004 |JA16SJISTILDE| +| MogDB|Oracle| SQL_ASCII |US7ASCII| +| MogDB|Oracle| UHC |KO16MSWIN949| +| MogDB|Oracle| UTF8 |AL32UTF8| +| MogDB|Oracle| WIN866 |RU8PC866| +| MogDB|Oracle| WIN1250 |EE8MSWIN1250| +| MogDB|Oracle| WIN1251 |CL8MSWIN1251| +| MogDB|Oracle| WIN1252 |WE8MSWIN1252| +| MogDB|Oracle| WIN1253 |EL8MSWIN1253| +| MogDB|Oracle| WIN1254 |TR8MSWIN1254| +| MogDB|Oracle| WIN1255 |IW8MSWIN1255| +| MogDB|Oracle| WIN1256 |AR8MSWIN1256| +| MogDB|Oracle| WIN1257 |BLT8MSWIN1257| +| MogDB|Oracle| WIN1258 |VN8MSWIN1258| diff --git a/product/zh/docs-mdb/v1.0/node_desc.md b/product/zh/docs-mdb/v1.0/node_desc.md new file mode 100644 index 0000000000000000000000000000000000000000..59345153ad47906557959cfa87efccbfcde3098f --- /dev/null +++ b/product/zh/docs-mdb/v1.0/node_desc.md @@ -0,0 +1,40 @@ +--- +title: 节点功能描述 +summary: MDB 节点功能描述 +author: tianzijian +date: 2022-06-30 +--- + +# MDB 节点功能 + +​ 在 MDB 系统中,节点是复制过程中的端点,对应一个数据库系统。 +节点可以是本地(即与 MDB 系统位于同一台机器上)或远程(位于远程机器上)。 +节点可以作为源库使用,即从节点中进行数据抓取,也可以作为目标库使用,即将数据同步到节点数据库中。 +## 节点列表 +​ 支持节点名、用户名、IP、服务名模糊查询, 当前仅支持MogDB、Oracle两种 +​ + +## 新增节点 + +- 新增Oracle节点 + + ​ Oracle节点可以选择连接类型,ServiceName 或 SID,点击测试连接,测试成功后点击确定,如果通道使用Oracle节点作为源节点,请先参考源库说明菜单中的Oracle说明,数据库配置和用户权限说明。如果作为目标节点使用,建议参考目标库说明 + +​ + +- 新增MogDB节点 + + ​ MogDB节点添加完成后,点击测试连接,测试成功后点击确定,如果通道使用MogDB节点作为源节点,请先参考源库说明菜单中的MogDB说明,数据库配置和用户权限说明。如果作为目标节点使用,建议参考目标库说明 + +​ + +## 更新节点 + +​ 如果节点未被通道使用,更新后,连接测试通过保存,如果节点已被通道使用,需要暂停数据同步,节点更新后,通道内需要重新执行相关任务。 + +## 连接测试/测试链接 + +​ 节点连通性测试。连接失败会返回连接异常信息。 + +## 删除节点 +​ 节点未被通道使用,可以直接删除。如果节点已被通道使用,需要先删除通道,再删除节点。 \ No newline at end of file diff --git a/product/zh/docs-mdb/v1.0/oracle_to.md b/product/zh/docs-mdb/v1.0/oracle_to.md new file mode 100644 index 0000000000000000000000000000000000000000..9dbf08a82cdc2dd1ada2c5b205bfb7e9c3442ceb --- /dev/null +++ b/product/zh/docs-mdb/v1.0/oracle_to.md @@ -0,0 +1,218 @@ +--- +title: Oracle源库说明 +summary: MDB Oracle源库说明 +author: tianzijian +date: 2022-06-30 +--- + +# Oracle为源库 + +## 支持版本 + +Oracle: 11c, 12c, 19c + +## 数据库设置 + +### 创建 MDB 用户 + +使用管理员用户(或者具有对应权限的用户)登录 Oracle 源库,创建 MDB 软件的登录用户: + +登录管理员用户: + +```shell +sqlplus / as sysdba +``` + +创建用户: + +```sql +-- 可选步骤: 创建 MDB 用户表空间(表空间名称和路径需依据实际情况修改) +CREATE TABLESPACE mdb_tbs DATAFILE '/u01/app/oracle/oradata/ORCL/mdb_tbs.dbf' SIZE 1024M AUTOEXTEND OFF; + +-- 必要步骤: 创建 MDB 用户(用户名和密码可按实际情况修改) +CREATE USER mdb_user IDENTIFIED BY "Enmo@123" DEFAULT TABLESPACE mdb_tbs QUOTA UNLIMITED ON mdb_tbs; +``` + +用户授权: + +```sql +GRANT CREATE SESSION TO mdb_user; +GRANT FLASHBACK ANY TABLE TO mdb_user; +GRANT SELECT ANY TABLE TO mdb_user; +GRANT SELECT_CATALOG_ROLE TO mdb_user; +GRANT EXECUTE_CATALOG_ROLE TO mdb_user; +GRANT SELECT ANY TRANSACTION TO mdb_user; + +GRANT CREATE TABLE TO mdb_user; +GRANT LOCK ANY TABLE TO mdb_user; +GRANT CREATE SEQUENCE TO mdb_user; + +GRANT EXECUTE ON DBMS_LOGMNR TO mdb_user; +GRANT EXECUTE ON DBMS_LOGMNR_D TO mdb_user; + +GRANT SELECT ON V_$DATABASE to mdb_user; +GRANT SELECT ON V_$LOG TO mdb_user; +GRANT SELECT ON V_$LOG_HISTORY TO mdb_user; +GRANT SELECT ON V_$LOGMNR_LOGS TO mdb_user; +GRANT SELECT ON V_$LOGMNR_CONTENTS TO mdb_user; +GRANT SELECT ON V_$LOGMNR_PARAMETERS TO mdb_user; +GRANT SELECT ON V_$LOGFILE TO mdb_user; +GRANT SELECT ON V_$ARCHIVED_LOG TO mdb_user; +GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO mdb_user; +GRANT SELECT ON V_$TRANSACTION TO mdb_user; +``` + +### 归档设置 + +#### 检查归档路径 + +使用 sysdba 连接到数据库中,运行以下命令,检查数据库归档模式: + +``` +COL DEST_NAME FOR A33 +COL DESTINATION FOR A55 +COL ERROR FOR A55 +SET LINES 188 PAGES 111 +SELECT DEST_NAME, DESTINATION, ERROR + FROM V$ARCHIVE_DEST + WHERE STATUS = 'VALID'; +``` + +归档模式下的输出示例如下(有归档路径,DESTINATION 可能不同,且 ERROR 字段无报错): + +``` +DEST_NAME DESTINATION ERROR +------------------- -------------------------- ------------------ +LOG_ARCHIVE_DEST_1 USE_DB_RECOVERY_FILE_DEST +``` + +#### 设置归档 + +若检查到源库端并未设置归档模式(归档路径为空),则需要手动启用源库归档模式。 + +在 sqlplus 客户端工具中,以管理员模式登陆数据库: + +```shell +sqlplus / as sysdba +``` + +设置归档路径(二者取其一): + +```sql +-- 使用 FRA (自动管理) +alter system set db_recovery_file_dest_size=100G; +alter system set db_recovery_file_dest='/opt/oracle/oradata/recovery_area' scope=spfile; + +-- 使用手动指定的归档路径 +alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/archivelog' scope=spfile; +alter system set LOG_ARCHIVE_DEST_STATE_1='enable' scope=spfile; +``` + +启用归档模式(需重启源端 Oracle 数据库): + +```sql +-- 重启数据库到 mount 模式 +shutdown immediate +startup mount + +-- 启用归档模式 +alter database archivelog; + +-- 打开数据库 +alter database open; + +-- 检查归档模式 +archive log list + +-- 示例输出如下: +-- Database log mode Archive Mode -- 归档模式已启用 +-- Automatic archival Enabled +-- Archive destination USE_DB_RECOVERY_FILE_DEST +-- Oldest online log sequence 49609 +-- Next log sequence to archive 49613 +-- Current log sequence 49613 +``` + +### 启用补充日志 + +需在数据库级别启用最小补充日志记录: + +```sql +ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; +``` + +针对需要同步的表,需要启用更全面的补充日志: + +```sql +ALTER TABLE inventory.customers ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; +``` + +## 数据类型映射 + +| 源库 | 目标库 | 源库类型 | 目标库类型 | + |--------|-----------|----------|-----------| +| Oracle | MogDB| NCLOB| text | +| Oracle | MogDB| BLOB| bytea | +| Oracle | MogDB| FLOAT| real | +| Oracle | MogDB| NUMBER| numeric | +| Oracle | MogDB| CLOB| text | +| Oracle | MogDB| RAW| bytea | +| Oracle | MogDB| CHAR| character | +| Oracle | MogDB| JSON| json | +| Oracle | MogDB| VARCHAR2| character varying | +| Oracle | MogDB| NCHAR| character | +| Oracle | MogDB| INTERVAL DAY TO SECOND| interval day to second | +| Oracle | MogDB| NVARCHAR2| character varying | +| Oracle | MogDB| DATE| timestamp | +| Oracle | MogDB| TIMESTAMP WITH LOCAL TIME ZONE| timestamp with time zone | +| Oracle | MogDB| XMLTYPE| xml | +| Oracle | MogDB| LONG RAW| bytea | +| Oracle | MogDB| TIMESTAMP WITH TIME ZONE| timestamp with time zone | +| Oracle | MogDB| INTERVAL YEAR TO MONTH| interval year to month | +| Oracle | MogDB| BINARY_FLOAT| real | +| Oracle | MogDB| TIMESTAMP| timestamp | +| Oracle | MogDB| BFILE| bytea | +| Oracle | MogDB| BINARY_DOUBLE| double precision | +| Oracle | MogDB| LONG| text | + +## 字符集映射 + +| 源库 | 目标库 | 源库字符集 | 目标库字符集 | + |--------|----------------|----------|-----------| +|Oracle| MogDB| ZHT16BIG5 |BIG5| +|Oracle| MogDB| JA16EUC |EUC_JP| +|Oracle| MogDB| JA16EUCTILDE |EUC_JIS_2004| +|Oracle| MogDB| ZHT32EUC |EUC_TW| +|Oracle| MogDB| ZHS32GB18030 |GB18030| +|Oracle| MogDB| ZHS16GBK |GBK| +|Oracle| MogDB| CL8ISO8859P5 |ISO_8859_5| +|Oracle| MogDB| AR8ISO8859P6 |ISO_8859_6| +|Oracle| MogDB| EL8ISO8859P7 |ISO_8859_7| +|Oracle| MogDB| IW8ISO8859P8 |ISO_8859_8| +|Oracle| MogDB| KO16KSCCS |JOHAB| +|Oracle| MogDB| CL8KOI8R |KOI8R| +|Oracle| MogDB| CL8KOI8U |KOI8U| +|Oracle| MogDB| WE8ISO8859P1 |LATIN1| +|Oracle| MogDB| EE8ISO8859P2 |LATIN2| +|Oracle| MogDB| SE8ISO8859P3 |LATIN3| +|Oracle| MogDB| NEE8ISO8859P4 |LATIN4| +|Oracle| MogDB| WE8ISO8859P9 |LATIN5| +|Oracle| MogDB| NE8ISO8859P10 |LATIN6| +|Oracle| MogDB| BLT8ISO8859P13 |LATIN7| +|Oracle| MogDB| CEL8ISO8859P14 |LATIN8| +|Oracle| MogDB| WE8ISO8859P15 |LATIN9| +|Oracle| MogDB| JA16SJIS |SJIS| +|Oracle| MogDB| JA16SJISTILDE |SHIFT_JIS_2004| +|Oracle| MogDB| US7ASCII |SQL_ASCII| +|Oracle| MogDB| KO16MSWIN949 |UHC| +|Oracle| MogDB| AL32UTF8 |UTF8| +|Oracle| MogDB| RU8PC866 |WIN866| +|Oracle| MogDB| EE8MSWIN1250 |WIN1250| +|Oracle| MogDB| CL8MSWIN1251 |WIN1251| +|Oracle| MogDB| WE8MSWIN1252 |WIN1252| +|Oracle| MogDB| EL8MSWIN1253 |WIN1253| +|Oracle| MogDB| TR8MSWIN1254 |WIN1254| +|Oracle| MogDB| IW8MSWIN1255 |WIN1255| +|Oracle| MogDB| AR8MSWIN1256 |WIN1256| +|Oracle| MogDB| BLT8MSWIN1257 |WIN1257| +|Oracle| MogDB| VN8MSWIN1258 |WIN1258| diff --git a/product/zh/docs-mdb/v1.0/overview.md b/product/zh/docs-mdb/v1.0/overview.md new file mode 100644 index 0000000000000000000000000000000000000000..5bee17efb1c1a97b8b8b1d4c585603991a0867ff --- /dev/null +++ b/product/zh/docs-mdb/v1.0/overview.md @@ -0,0 +1,30 @@ +--- +title: MDB 介绍 +summary: MDB 介绍 +author: tianzijian +date: 2022-06-30 +--- + +# MDB 介绍 + +MDB 全称 MogDB Data Bridge,是一款异构数据库迁移同步工具。 + +用于 MogDB/openGauss 以及同类基于 openGauss 的数据库与其他异构数据库(Oracle, DB2, MySQL, PostgreSQL等)之间的数据迁移和同步。 + +## 架构 + + +## 支持数据库类型 +| 源数据库 | 目标数据库 | +|:-------------------------------------|:-----------| +| Oracle | MogDB | +| MogDB | Oracle | + +## 支持数据库对象 +| 对象名称 | 是否支持 | 说明 | +|---------------|--------|-----| +| Schema | 支持 | | +| Table | 支持 | | +| Constraint | 支持 | | +| Index | 支持 | | +| TableData | 支持 |表数据 | \ No newline at end of file diff --git a/product/zh/docs-mdb/v1.0/release.md b/product/zh/docs-mdb/v1.0/release.md new file mode 100644 index 0000000000000000000000000000000000000000..62fe40eb548198d12ad8b9f53cc1cf5085bfc5f0 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/release.md @@ -0,0 +1,13 @@ +--- +title: 发布记录 +summary: MDB 发布记录 +author: tianzijian +date: 2022-06-30 +--- + +# 发布记录 + +## v1.0 (2022.6.30) + +- [mdb_1.0_linux_x86_64.zip](https://cdn-mogdb.enmotech.com/docs-media/mdb/v1.0/mdb_1.0_linux_x86_64.zip) + diff --git a/product/zh/docs-mdb/v1.0/target_db.md b/product/zh/docs-mdb/v1.0/target_db.md new file mode 100644 index 0000000000000000000000000000000000000000..8aff948025a12fbce32a86e370e5614bc73e0a63 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/target_db.md @@ -0,0 +1,28 @@ +--- +title: 目标库说明 +summary: MDB 目标库说明 +author: tianzijian +date: 2022-06-30 +--- + +# 目标库说明 + +## 用户权限 + +以下命令中,假设 mdb_user 为 MDB 在目标端的登录用户,若实际环境中用户名称与此不同,则需要按照实际情况下修改。 + +### Oracle 用户 + +Oracle 作为目标库,直接授予 dba 角色: + +```sql +grant dba to mdb_user; +``` + +### MogDB 用户 + +MogDB 作为目标库,直接给与 sysadmin 权限: + +```sql +alter user mdb_user with sysadmin; +``` \ No newline at end of file diff --git a/product/zh/docs-mdb/v1.0/toc.md b/product/zh/docs-mdb/v1.0/toc.md new file mode 100644 index 0000000000000000000000000000000000000000..655ad83423670639bc1ac41de275ad64cfc16948 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/toc.md @@ -0,0 +1,19 @@ + + + +# 文档 + +## MDB 文档目录 + ++ [简介](/overview.md) ++ [安装说明](/install.md) ++ [基本概念](/concepts.md) ++ 功能说明 + + [用户](/user_interface_overview.md) + + [节点](/node_desc.md) + + [通道](/channel_desc.md) ++ 源库说明 + + [Oracle](/oracle_to.md) + + [MogDB](/mogdb_to.md) ++ [目标库说明](/target_db.md) ++ [发布记录](/release.md) \ No newline at end of file diff --git a/product/zh/docs-mdb/v1.0/user_interface_overview.md b/product/zh/docs-mdb/v1.0/user_interface_overview.md new file mode 100644 index 0000000000000000000000000000000000000000..1a3a619709af4b89660a2dd31ed993e96f215d21 --- /dev/null +++ b/product/zh/docs-mdb/v1.0/user_interface_overview.md @@ -0,0 +1,21 @@ +--- +title: 用户界面概述 +summary: MDB 用户界面概述 +author: tianzijian +date: 2022-06-30 +--- + +# 用户界面概述 +​ 本页介绍MDB web用户界面,帮助您开始使用MDB系统。 + +## 登录 + +​ 启动MDB web UI时,用户需要登录,暂未开放用户注册入口,请使用初始用户名,密码登录。 + +​ + +## 开始页面 + +​ 登录后展示的是MDB web UI,侧边栏展示节点和通道,第一步从节点开始,新增节点。 + +​ \ No newline at end of file diff --git a/src/utils/config.js b/src/utils/config.js index d187b748e08a932fad4adbd36bd3da909c98bbb9..fd4164d2897437d9e1a42cb2a06e7d49802c64a2 100644 --- a/src/utils/config.js +++ b/src/utils/config.js @@ -45,7 +45,7 @@ value: 'mdb', zh: '异构数据同步', en: 'MogDB Data Bridge', - disabled: true + disabled: false }, { label: 'SCA', value: 'sca', @@ -130,7 +130,13 @@ const allProductVersions = { disabled: false } }, - mdb: null, + mdb: { + 'v1.0': { + value: 'v1.0', + label: 'v1.0', + disabled: false + } + }, sca: { 'v5.1': { value: 'v5.1',