news 2026/8/1 16:04:35

第五周学习总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第五周学习总结

达梦数据库第五周学习总结——DBLink与数据迁移实战

本周深入学习了达梦数据库的 DBLink 技术(同构与异构连接)、ODBC 配置、DTS 数据迁移、以及 Oracle/MySQL/SQL Server 三种异构数据库向达梦的数据迁移实操。

一、数据库 DBLink 技术

1.1 什么是 DBLink

DBLink(Database Link)即数据库链接,简单说就是在一个数据库中创建通往另一个数据库的"通道"。创建之后,在本地数据库执行 SQL 时,可以直接查询远程数据库中的表,就像查本地表一样。打个比方:手机上存了联系人"张三",以后打电话时只需说"打给张三",不用每次输入 11 位手机号码。DBLink 就是把远程数据库的连接信息(IP、端口、账号、密码)存成一个名字,之后在 SQL 中用 `@链接名` 就能访问。

1.2 同构 DBLink(达梦→达梦)

同构 DBLink 指两端都是达梦数据库,通过 MAL(多节点访问层)协议进行通信。MAL 是达梦内部节点间通信的专有协议,配置在 dmmal.ini 文件中。

前提条件:

1. 两台数据库的 `MAL_INI = 1`

2. 两台机器网络互通(`ping` 通)

3. 不能是同一台机器(达梦拒绝自连,报 -2235)

部署步骤:

① 删除旧链接(如存在)

DROP LINK DM02_LINK;

② 创建同构 DBLink

CREATE LINK DM02_LINK

CONNECT WITH SYSDBA

IDENTIFIED BY Dameng123

USING '192.168.200.165/5236';

③ 测试连通性

SELECT 1 FROM DUAL@DM02_LINK;返回 1 表示成功

④ 查远程库信息

SELECT NAME FROM V$INSTANCE@DM02_LINK;返回远程库实例名

⑤ 跨库联合查询

SELECT a.*, b.*FROM 本地表 aJOIN 远程表@DM02_LINK b ON a.id = b.id;

核心语法:`表名@链接名` —— `@` 表示"去那边执行"

1.3 异构 DBLink(达梦→MySQL/Oracle)

异构 DBLink 用于达梦与不同类型数据库(如 MySQL、Oracle)的连接。不同于同构 DBLink 通过内部 MAL 协议,异构 DBLink 依赖 **ODBC 标准接口**作为中间桥梁。

ODBC 三层架构:

应用层(达梦 SQL) → ODBC驱动管理层(unixODBC) → 数据库驱动层(libmyodbc.so)

部署步骤:

Step 1:安装依赖

yum install -y unixODBC unixODBC-devel mysql-connector-odbc mariadb-server

Step 2:配置 ODBC

`/etc/odbcinst.ini`(驱动注册):

[MySQL]

Description = ODBC for MySQL

Driver = /usr/lib64/libmyodbc5.so # 驱动文件路径

Setup = /usr/lib64/libodbcmyS.so

FileUsage = 1

`/etc/odbc.ini`(数据源配置):

[MySQL_DSN] # 数据源名称(DSN)

Description = MySQL test

Driver = MySQL # 指向odbcinst.ini中的[MySQL]

Server = 127.0.0.1

Port = 3306

User = root

Database = test

*Step 3:测试 ODBC 连通

echo "SELECT * FROM mysql_test;" | isql MySQL_DSN root

Step 4:达梦创建异构 DBLink(需企业版授权)

CREATE LINK MYSQL_LINK

CONNECT 'ODBC' WITH root

IDENTIFIED BY ''

USING 'MySQL_DSN';

SELECT * FROM mysql_test@MYSQL_LINK;

1.4 同构 vs 异构对比

| 区别 | 同构(DM→DM) | 异构(DM→MySQL) |

|------|------------|----------------|

| 关键字 | CREATE LINK | CREATE LINK (企业版) |

| 连接方式 | MAL(内部协议) | ODBC(外部驱动) |

| 需要 ODBC | ❌ | ✅ |

| 需要 dmmal.ini | ✅ | ❌ |

| 版本要求 | 企业版 | 企业版+dm.key |

| @语法 | 一样 | 一样 |

二、DTS 数据迁移实战

2.1 DTS 简介

DTS(Data Transfer Service)是达梦自带的图形化数据迁移工具(`E:\DM\tool\dts.exe`),支持 Oracle、MySQL、SQL Server、PostgreSQL、DB2 等十余种数据库向达梦 DM8 的迁移。

2.2 通用操作流程

1. DTS → 新建工程

2. 右键"数据源" → 新建源数据库 → 测试连接

3. 右键"数据源" → 新建目标数据库(DM) → 测试连接

4. 新建转换 → 选择迁移对象(表/视图) → 开始迁移

5. 验证:行数对比、索引检查、抽样数据

2.3 三种场景实测

| 场景 | 源库 | 状态 |

|------|------|------|

| Oracle→DM | Oracle XE 18c (WSL2) | ✅ 完成 |

| MySQL→DM | MySQL 5.5 (WSL2) | ✅ 完成 |

| SQL Server→DM | SQL Server Express | ⏳ 待安装 |

2.4 常见类型映射

| Oracle | MySQL | SQL Server | DM |

|--------|-------|------------|-----|

| NUMBER | INT | INT | DECIMAL/INT |

| VARCHAR2 | VARCHAR | NVARCHAR | VARCHAR |

| DATE | DATETIME | DATETIME | TIMESTAMP |

| CLOB | TEXT | TEXT | CLOB |

2.5 DTS 优势

- 零代码:纯图形化操作,拖拽即可

- 批量迁移:支持一次迁移几百张表

- 类型自动映射:自动识别源库数据类型并转换为 DM 对应类型

- 增量同步:支持全量+增量持续同步

三、Oracle XE 18c 在 WSL2 上的安装

3.1 安装过程

1.复制 RPM 到 WSL2

cp /mnt/e/oracle-database-xe-18c-1.0-1.x86_64.rpm /tmp/

rpm -ivh --nodeps /tmp/oracle-xe.rpm

2.修复 hosts(WSL2 关键步骤)

echo "$(hostname -I | awk '{print $1}') $(hostname)" >> /etc/hosts

3.配置 Oracle

/etc/init.d/oracle-xe-18c configure

端口: 1539 密码: oracle123

3.2踩坑记录

- WSL2 无固定 IP → 需要手动添加 hosts 记录

- Oracle 默认端口 1521 在 WSL2 不可用 → 改为 1539

- DTS 连接 Oracle 时不能用 `localhost` → 需要用 WSL2 的实际 IP(`172.24.95.133`)

四、本周知识体系达梦 DM8 数据互通

┌───────────────┼───────────────┐

│ │ │

同构DBLink 异构DBLink DTS迁移

(DM←→DM) (DM←→MySQL等) (批量数据迁移)

│ │ │

基于MAL协议 基于ODBC标准 图形化操作

dmmal.ini odbc.ini/ Oracle/MySQL/

odbcinst.ini SQLServer→DM

│ │ │

✅已验证 ⚠️需企业版 ✅已完成

五、核心收获

1. DBLink 是同构/异构数据库互通的基石,同构用 MAL 协议,异构用 ODBC 标准

2. DTS 是最实用的迁移工具,零代码完成 Oracle/MySQL→DM 的数据迁移

3. ODBC 是跨数据库通信的核心标准,理解了 isql、odbc.ini、odbcinst.ini 的关系就掌握了异构连接的基础

4. WSL2 环境有特殊限制(IP 动态变化、监听器权限等),开发版缺少 dm.key 导致部分企业功能不可用

5. 管道模式 `echo "SQL" | disql -S`*是避免终端卡死的最佳实践

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 16:04:20

L76X GPS模块实战指南:从硬件设计到数据解析与性能优化

1. 项目概述:L76X GPS模块的定位与价值如果你正在为你的无人机、户外追踪器或者任何需要知道“我在哪儿”的智能硬件项目寻找一颗可靠、小巧且性价比高的“眼睛”,那么L76X这颗GPS模块很可能就是你清单上的候选者。它不是市场上最新、最贵的型号&#xf…

作者头像 李华
网站建设 2026/8/1 16:04:11

实测三款AI合同工具,写租赁合同哪家更靠谱?

前言 先问大家一个问题:当你需要一份租赁合同时,第一反应是什么? 找中介要模板?上网搜一份?还是直接问朋友借一份改个名字? 说实话,这些方式我都试过。中介给的模板条款不全,网上搜的…

作者头像 李华
网站建设 2026/8/1 15:59:25

32路Modbus RTU继电器模块:工业自动化集中控制与RS485通信实战

1. 项目概述:32路Modbus RTU继电器模块的工业价值在工业自动化、智能楼宇或者实验室设备集成的现场,我们经常遇到一个非常实际的需求:如何用一台电脑或者一个PLC,去远程、精准地控制几十个甚至上百个分散的继电器开关?…

作者头像 李华
网站建设 2026/8/1 15:52:43

成都口碑良好的代运营服务详情 | 成都金澜无限文化传媒有限公司

导语在成都的文化传媒市场中,代运营服务需求日益增长。成都金澜无限文化传媒有限公司(金澜传媒)凭借良好口碑,在该领域崭露头角。其专注为各类企业、商户及个人创业者提供一站式线上营销与视觉影像服务,涵盖GEO优化、新…

作者头像 李华