MDB 安装
安装需求
MDB 部署的系统需求如下:
- 服务器: Linux x86_64
- 资料库: MogDB
- 磁盘空间:500G
支持版本
软件 | 版本 |
---|---|
Java | 11+ |
MogDB | Database: 2.0+ Plug-ins: wal2json |
Oracle | 11g, 12c, 19c |
MySQL | 5.7, 8.0.x (部分兼容MariaDB > 10.4) |
PostgreSQL | Database: 9.6, 10, 11, 12, 13, 14 Plug-ins: decoderbufs, wal2json |
SQL Server | 2016(SP1)及以后版本 |
安装步骤
下载软件
下载最新版 MDB 安装包: MDB Latest
上传软件并解压
上传 MDB 安装包到服务器,并解压:
tar -zxvf mdb_v1.0.0.RELEASE_linux_x86_64.tar.gz
准备资料库
MDB 当前资料库必须使用 MogDB(openGauss) 数据库,版本不低于 2.0。
MogDB 安装请参考: MogDB单实例安装
MogDB 软件安装完成后,在 MogDB 数据库服务器中,使用 gsql 客户端工具以本地超级管理员用户登录数据库
gsql -r
在 MogDB 中预先创建 MDB 资料库与资料库用户:
-- 创建资料库用户,密码请依据实际环境需求修改
create user mdb_repo with password 'MDB@password' sysadmin;
-- 创建资料库,资料库 owner 必须设置为 mdb_repo
create database mdb_repo_db with owner mdb_repo dbcompatibility='A' ENCODING='UTF8';
检查 Java 版本
MDB 依赖 Java 11,需要确保当前安装服务器中,Java 版本不低于 11:
java -version
若 Java 版本过低,可从 Java 官网下载不低于 openJDK 11 的软件包,下载链接如下:
https://jdk.java.net/java-se-ri/11-MR3
下载 openjdk-11.0.0.2_linux-x64.tar.gz 软件包,并上传到服务器中解压使用:
tar -zxvf openjdk-11.0.0.2_linux-x64.tar.gz
# 获取当前路径, 当前路径: /usr/local
pwd
# 配置环境变量
vi ~/.bash_profile
# 替换JAVA_HOME路径后, 在文件末尾输入以下内容:
export JAVA_HOME=/usr/local/jdk-11.0.0.2
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
# 保存退出, 执行以下命令更新配置文件
source ~/.bash_profile
再次确认 Java 版本,确保已使用 Java 11:
java -version
# 以下为示例输出:
# --------------
# openjdk 11.0.0.2 2024-07-02
# OpenJDK Runtime Environment 18.9 (build 11.0.0.2+2-2)
# OpenJDK 64-Bit Server VM 18.9 (build 11.0.0.2+2-2, mixed mode)
检查 Web 端口占用
MDB Server 需要一个 Web 监听端口(可修改,默认 55437),在安装的时候,需要确保该端口未被占用。
netstat -anp | grep LISTEN | grep 55437 # 确保没有处于 LISTEN 状态的进程
检查存在残留文件
zookeeper 和 kafka 安装,需要确保<tempFilePath>/zookeeper
和 <tempFilePath>/kafka-logs
目录不存在。如果确定是残留文件,请执行以下命令。
rm -rf <tempFilePath>/zookeeper # <tempFilePath>: MDB临时文件配置项, 默认值: ../mdb_data
rm -rf <tempFilePath>/kafka-logs
调整安装配置
切换到已解压的 MDB 安装包目录,检查安装包中文件的完整性:
cd mdb_v1.0.0.RELEASE_linux_x86_64
ls -ltr
安装包文件说明如下:
文件名 | 文件说明 |
---|---|
kafka.zip | Kafaka 组件安装包,用于同步时中间数据队列 |
mdb | MDB 命令执行文件 |
mdb-data-worker.zip | 数据采集投递任务相关的软件包 |
mdb-server.zip | MDB 主软件包 |
snapshot-worker | 全量同步软件包 |
mvd_package | MVD 命令执行文件 |
mvd-java.zip | 数据比对软件包 |
config.json | 安装配置文件 |
connectorlog.zip | 抽取日志处理软件包 |
mtk | 需自行下载mtk |
sca | 需自行下载sca |
修改配置文件: config.json
{
"mdbServerPort": 55437,
"dbHost": "127.0.0.1",
"dbPort": 26000,
"dbUser": "mdb_repo",
"dbPassword": "MDB@password",
"dbName": "mdb_repo_db",
"dataFilePath": "../mdb_data",
"tempFileMaxSize": 0,
"tempFileRetentionTime": 168,
"loadingSeconds": 300,
"messageMaxSize": 50,
"mvdServerPort": 9876
}
配置项说明如下:
配置项 | 默认值 | 配置说明 |
---|---|---|
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 资料库数据库名 |
dataFilePath | ../mdb_data | MDB 数据文件保存路径 |
tempFileMaxSize | 0 | MDB 临时文件大小(单位:GB),默认值0: 不限制大小 |
tempFileRetentionTime | 168 | MDB 临时文件保留时间(单位: 小时) |
loadingSeconds | 300 | 服务启动等待时间 (单位: 秒) |
messageMaxSize | 50 | topic最大消息(单位: M) |
mvdServerPort | 9876 | MVD 服务端口 |
配置 ulimit
在数据同步过程中,需要在 MDB 本地文件系统中存储部分临时数据文件,对于含有 LOB 字段的表,还会额外存储 LOB 数据文件,需要调整当前 MDB 用户的可打开句柄的最大限制,避免同步过程中打开文件句柄数据超过默认限制。
# 注意:以下命令放开了所有用户的限制,可将 * 修改为 MDB 安装用户只放开 MDB 限制,重新登录后生效
cat >> /etc/security/limits.conf <<EOF
* soft nofile 10485760
* hard nofile 10485760
EOF
# 修改系统总文件限制
cat >> /etc/sysctl.conf <<EOF
fs.file-max=167772160
EOF
sysctl -p
配置MTK 和 SCA (可选)
pwd # 确保已经位于 mdb_v1.0.0.RELEASE_linux_x86_64 目录中
#下载sca_linux_x86_64 到 mdb_v1.0.0.RELEASE_linux_x86_64/sca 目录下
cd mdb_v1.0.0.RELEASE_linux_x86_64/sca
chmod u+x sca_linux_x86_64
#下载 mtk_2.8.3_linux_amd64.tar.gz 到 mdb_v1.0.0.RELEASE_linux_x86_64 目录下
cd mdb_v1.0.0.RELEASE_linux_x86_64
tar -zxvf mtk_2.8.3_linux_amd64.tar.gz
mv mtk_2.8.3_linux_amd64/* mtk
安装 MDB
检查并确保已切换到 MDB 安装包目录:
pwd # 确保已经位于 mdb_v1.0.0.RELEASE_linux_x86_64 目录中
执行安装命令:
./mdb install
正常安装结果如下:
2024-04-30 16:37:48 ======BEGIN TO INSTALL MDB======
2024-04-30 16:37:48 1.CHECK MDB FILE
2024-04-30 16:37:48 2.CHECK MDB ENVIRONMENT
2024-04-30 16:37:48 JAVA_VERSION: 11.0
2024-04-30 16:37:48 3.UNZIP KAFKA
2024-04-30 16:37:48 4.INSTALL MDB SERVER
2024-04-30 16:37:49 5.INSTALL MDB DATA WORKER
2024-04-30 16:37:50 6.INSTALL MDB CONNECTOR LOG
2024-04-30 16:37:50 7.INSTALL MVD SERVER
2024-04-30 16:37:51
======END UPGRADE MDB RESULT======
+------------+-----------+-------------+---------------+--------------------+
| File_Check | Env_Check | MDB_Install | KAFKA_INSTALL | MVD_Server_Install |
+------------+-----------+-------------+---------------+--------------------+
| Success | Success | Success | Success | Success |
+------------+-----------+-------------+---------------+--------------------+
申请 LICENSE
执行申请license命令:
./mdb generate-license test@enmotech.com #test@enmotech.com 是接收license文件的邮箱,需要上传license文件到服务器
正常执行结果如下:
2022-07-07 14:06:22 邮件成功发送到test@enmotech.com,请查看邮箱.
拷贝 LICENSE
执行拷贝license命令:
./mdb copy-license /u01/mdb/license.json #/u01/mdb/license.json是license文件在服务器上的路径
正常执行结果如下:
2022-07-04 11:26:01 copy license success
启动 MDB
执行启动命令:
./mdb start
正常启动的执行结果如下:
2024-04-30 16:21:09 start zookeeper success
2024-04-30 16:21:09 start kafka success
2024-04-30 16:21:09 start connector success
2024-04-30 16:21:09 start mdb-server success
2024-04-30 16:21:09 start connectorlog success
2024-04-30 16:21:09 [MVD_SERVER] start mvd-server success
2024-04-30 16:21:09 MDB启动成功,各程序占用端口如下
+-------+-----------+-----------+------------+------------+
| KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | MVD_SERVER |
+-------+-----------+-----------+------------+------------+
| 9092 | 2181 | 8083 | 55437 | 9876 |
+-------+-----------+-----------+------------+------------+
2024-04-30 16:21:10 MDB各程序服务状态
+--------+-----------+-----------+------------+------------+
| KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | MVD_SERVER |
+--------+-----------+-----------+------------+------------+
| online | online | online | online | online |
+--------+-----------+-----------+------------+------------+
启动子服务命令:
./mdb start --help
# --server_name TEXT 可选服务名: zookeeper、kafka、connector、mdb_server、mvd_server
./mdb start --server_name zookeeper
./mdb start --server_name kafka
./mdb start --server_name connector
./mdb start --server_name mdb_server
./mdb start --server_name mvd_server
查看MDB服务状态
执行查询状态命令:
./mdb status
正常执行结果如下:
2022-06-23 14:06:39 MDB各程序服务状态
+--------+-----------+-----------+------------+------------+
| KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | MVD_SERVER |
+--------+-----------+-----------+------------+------------+
| online | online | online | online | online |
+--------+-----------+-----------+------------+------------+
停用MDB
执行停止命令:
./mdb stop
正常执行结果如下:
2024-04-30 16:34:17 stop connector success
2024-04-30 16:34:27 stop kafka success
2024-04-30 16:34:37 stop zookeeper success
2024-04-30 16:34:47 stop mdb-server success
2024-04-30 16:34:47 stop mdb-data-worker success
2024-04-30 16:34:47 stop connector_log success
2024-04-30 16:34:57 stop mvd-server success
2024-04-30 16:34:59 MDB各程序服务状态
+---------+-----------+-----------+------------+------------+
| KAFKA | ZOOKEEPER | CONNECTOR | MDB_SERVER | MVD_SERVER |
+---------+-----------+-----------+------------+------------+
| offline | offline | offline | offline | offline |
+---------+-----------+-----------+------------+------------+
停止子服务命令:
./mdb stop --help
# --server_name TEXT 可选服务名: zookeeper、kafka、connector、mdb_server、mvd_server
./mdb stop --server_name zookeeper
./mdb stop --server_name kafka
./mdb stop --server_name connector
./mdb stop --server_name mdb_server
./mdb stop --server_name mvd_server
应用config
config.json配置发生变化, 执行该命令更新各个服务的配置文件。执行前需保证服务offline, 请先执行stop命令。
执行应用config命令:
./mdb apply-config
正常执行结果如下:
2022-08-08 14:54:34 apply config success!
日志采集
在当前目录生成dump.zip文件。
执行日志采集命令:
./mdb dump
正常执行结果如下:
2022-09-23 10:33:46 dump log success
登录 MDB
MDB 启动成功后,可在客户端 Web 浏览器中(推荐使用 Chrome 浏览器),检查页面是否正常,检查是否可正常登录:
http://localhost:55437/mdb/index.html
- 初始用户名: mdb@enmotech.com
- 初始密码: Enmo@123