首批通过分布式安全可靠测评,为关键业务系统打造
使用 Qlik Replicate 同步 OceanBase 数据
更新时间:2026-04-09 14:12:04
概述
Qlik Replicate 是一款数据复制和同步工具,支持通过 ODBC/MySQL 连接 OceanBase 数据库,实现跨数据库的数据同步。本文介绍如何配置 Qlik Replicate 以同步 OceanBase 数据到 SQL Server。
版本兼容性
- OceanBase 数据库版本:≥ V4.2.5
- Qlik Replicate 版本:V2025.11.0
前提条件
在使用 Qlik Replicate 之前,确认:
- 已安装 Qlik Replicate(请参考 Qlik Replicate 官方文档进行安装)。
- 已完成部署 OceanBase 数据库并且创建了 MySQL 模式用户租户。创建用户租户的详细信息,参见 创建租户 。
- 已在创建的 MySQL 兼容模式租户下开通 Binlog 服务。详情请参见 OceanBase Binlog 服务 。
- 您已拥有一个 SQL Server,并确保其网络可与 Qlik Replicate 网络连接正常 。
操作步骤
步骤一:获取数据库连接串
联系 OceanBase 数据库部署人员获取连接串,例如:
obclient -h$host -P$port -u$user_name -p$password -D$database_name
参数说明:
$host:连接 IP。ODP 连接用 ODP 地址;直连用 OBServer IP。$port:连接端口。ODP 默认2883;直连默认2881。$database_name:数据库名称。注意
连接租户的用户需要拥有该数据库的
CREATE、INSERT、DROP和SELECT权限。更多有关用户权限的信息,请参见 MySQL 模式下的权限分类。$user_name:连接账户。ODP 格式:用户@租户#集群或集群:租户:用户;直连格式:用户@租户。$password:账户密码。
更多连接串的信息,请参见通过 OBClient 连接 OceanBase 租户 。
示例如下:
obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest
步骤二:安装 Qlik Replicate
本文演示使用 Docker 方式部署 Qlik Replicate,操作如下:
# 1. 下载 Linux 版本
wget https://github.com/qlik-download/replicate/releases/download/v2025.11.0/QlikReplicate_2025_11_0_Linux_X64.tar.gz
# 2. 解压
tar -xzf QlikReplicate_2025_11_0_Linux_X64.tar.gz
# 3. 提取 RPM 并创建 Docker
mkdir -p ar_docker/
rpm2cpio areplicate-*.rpm | cpio -iv --make-directories --no-absolute-filenames ./opt/attunity/replicate/addons/samples/docker/*
mv ./opt/attunity/replicate/addons/samples/docker/* ./ar_docker/
rm -rf ./opt
cd ar_docker
cp ../areplicate-*.rpm .
sed -i '/^mysql8\|^sqlserver18.1/!s/^/#/' drivers
# 4. 安装 MySQL ODBC 8.0.32 驱动:
wget https://yum.oracle.com/repo/OracleLinux/OL8/MySQL80/connectors/community/x86_64/getPackage/mysql-connector-odbc-8.0.32-1.el8.x86_64.rpm
# 5. 安装 ODBC Driver 18
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
ACCEPT_EULA=Y yum install -y msodbcsql18
# 6. 创建 Dockerfile
./create-dockerfile.sh
sed -i 's/RUN yum -y install \/tmp\/areplicate-\*.rpm/RUN systemd=no yum -y install \/tmp\/areplicate-*.rpm/' Dockerfile
# 7. 构建 Docker 镜像
docker build --no-cache -t qlik-replicate:2025.11.0 .
# 8. 启动容器
docker run -d --name replicate-container \
--hostname replicate-host \
-e ReplicateDataFolder="/replicate/data" \
-e ReplicateAdminPassword="********" \
-e ReplicateRestPort="3552" \
-p 3552:3552 \
qlik-replicate:2025.11.0
# 9. 确认 Qlik Replicate 是否启动成功。
sudo netstat -ntlp | grep 3552
通过浏览器访问 Qlik Replicate 服务地址:http://localhost:3552/attunityreplicate/login, 登录 Qlik Replicate 。默认的账户名为admin,密码为您部署时设置的ReplicateAdminPassword值。
步骤三:使用 Qlik Replicate 创建同步任务
配置源端点(Source Endpoint)
在 Qlik Replicate 管理界面中,创建新的源端点,类型选择 MySQL;
填写 Server、Port、Username、Password,点击 Test Connection 验证连通性;
或通过 ODBC DSN 连接 OceanBase:
a. 登录 Qlik Replicate 容器,配置
/etc/odbc.ini:tee /etc/odbc.ini << 'EOF' [MySQL-Test] Description=MySQL Test Connection Driver=MySQL ODBC 8.0 Unicode Driver Server=$host Port=2883 User=$user_name Password=$password Option=3 Charset=utf8mb4 EOFb. 列出所有 DSN:
odbcinst -q -sc. 测试 DSN 连接:
isql -v MySQL-Test连接成功后,在 Qlik Replicate 界面中选择 DSN
MySQL-Test,点击 Test Connection。
配置目标端点(Target Endpoint)
- 创建目标端点,如 SQL Server。
- 填写 Server、Username、Password、Database name,点击 Test Connection 验证连通性。
配置同步任务
- 在 ETL 任务中,选择需要同步的表及同步模式(全量/增量)。
启动任务
- 启动同步任务,并在管理界面中监控运行状态。
结果验证
同步任务启动后,请登录目标数据库(SQL Server)验证以下内容:
- 检查目标数据库中的表结构和数据是否与源数据库一致。
- 验证数据内容是否完整、准确。
- 同步是否具备实时性。
- 任务运行状态是否正常,无错误或性能瓶颈。
常见问题
Q1:同步任务报错:Binary logging basename not found
原因:执行 SQL 查询时变量缺失。
解决方案:请联系 OceanBase 技术人员检查配置,并确认以下变量已正确设置:
SHOW GLOBAL VARIABLES LIKE 'log_bin_basename';
Q2:同步任务报错:Binary logging must use the FULL row image
原因:Binlog 的行镜像格式未设置为 FULL。
解决方案:在 OceanBase 租户中执行以下命令:
SET GLOBAL binlog_format = 'ROW';
SET GLOBAL binlog_row_image = 'FULL';
Q3:Web 页面登录失败
原因:管理员密码不符合安全策略要求。
解决方案:修改 admin 用户密码,密钥要求参见 Qlik Replicate 官方文档。
更多信息
- Qlik Replicate 官方文档
- 如需更多技术支持,请联系 OceanBase 技术支持团队