【达梦8】mysql迁移测试

迁移概述

(1)分析待移植系统,确定移植对象
(2)通过数据迁移工具DTS完成常规数据库对象以及数据的迁移
(3)DM 数据库和 MySQL 体系结构上存在差异,SQL 语法也存在一定的差异
(4)移植完成后对移植的结果进行校验,确保移植的完整性和正确性
(5)对应用系统进行移植、测试和优化

迁移前准备

1、统计mysql信息

迁移前先统计出需要迁移的库中的对象,提前了解迁移数据量、迁移数据对象、迁移数据类型为考虑迁移时长、周期提供依据。

1)确认mysql目标与参数

在这里插入图片描述

—查看参数设置
mysql> show variables;
—查看参数文件
[mysql@mysql test_db]$ vim /mysql/3306/my.cnf

2)统计数据对象

(1)统计目标database表数量

SELECT COUNT(*) TABLES, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = ‘employees’ GROUP BY TABLE_SCHEMA;
在这里插入图片描述

(2)统计目标database视图数量

SELECT TABLE_SCHEMA,COUNT(*) VIEWS FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = ‘employees’ GROUP BY TABLE_SCHEMA;
在这里插入图片描述

(3)统计目标database函数、存储过程、触发器数量

—统计函数
SELECT SPECIFIC_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE=‘FUNCTION’ AND ROUTINE_SCHEMA=‘employees’;
—统计触发器
SELECT TRIGGER_SCHEMA,TRIGGER_NAME FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA= ‘employees’;
—统计存储过程
SELECT SPECIFIC_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE=‘PROCEDURE’ AND ROUTINE_SCHEMA=‘employees’;
在这里插入图片描述

(4)创建辅助表

—创建辅助表
CREATE TABLE MYSQL_TABLES(TAB_OWNER VARCHAR(100),TAB_NAME VARCHAR(100),TAB_COUNT INT);
—统计各表数据量
INSERT INTO MYSQL_TABLES SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ‘employees’ ORDER BY TABLE_ROWS DESC;
—查看各表数据
select * from MYSQL_TABLES
在这里插入图片描述

<think>好的,我现在要解决用户的问题:如何将达梦数据库的数据迁移MySQL。根据用户提供的引用资料,我需要整合这些信息,并给出一个清晰的步骤和工具建议。 首先,用户提到达梦迁移工具没有直接到MySQL的选项。根据引用[1],用户尝试了先迁移到Oracle,再转到MySQL。这可能是一个可行的方法,但步骤比较繁琐,需要中间使用Oracle作为中转。不过,用户可能更希望有更直接的迁移方式,或者有没有其他替代工具。 接下来,引用[4]提到官网有三种方法,但第三种是命令行的方式,适合高手使用。这可能涉及到使用DTS工具的命令行版本,或者DM的其他工具。需要确认达梦是否提供了类似mysqldump的工具,或者是否有导出SQL脚本的方法。 然后,引用[3]提到安装达梦数据库时可以选择密钥,这可能和迁移工具的使用权限有关。如果用户没有购买相关工具,可能需要使用试用版或者命令行方式,如引用[4]所说。 另外,引用[2]强调了迁移是一个系统工程,需要规划、操作和测试。所以在步骤中需要包括前期准备、数据导出、结构转换、数据导入以及验证测试这些阶段。 综合这些信息,可能的迁移步骤包括: 1. 使用达梦工具导出数据到中间格式(如SQL脚本或CSV)。 2. 转换表结构和数据类型适配MySQL。 3. 使用MySQL工具导入数据。 其中,中间格式可能需要手动调整,特别是数据类型和语法差异。例如,达梦的某些数据类型在MySQL中可能不存在,需要转换。此外,存储过程或函数可能需要重写。 工具方面,除了达梦自带的工具,可能需要借助第三方工具如Navicat进行数据传输,或者使用ETL工具如Kettle。此外,编写自定义脚本处理数据转换也是一个选项。 需要注意的是,直接迁移可能会有兼容性问题,所以必须进行严格测试。用户可能需要分阶段迁移,先迁移结构,再迁移数据,逐步验证。</think>### 达梦数据库迁移MySQL的步骤与方法 #### 一、迁移方案选择 根据达梦数据库迁移工具的限制和用户实践,推荐以下两种方案: 1. **中转迁移法**(达梦→Oracle→MySQL): 使用达梦自带的迁移工具将数据导出到Oracle,再通过Navicat等工具从Oracle迁移MySQL[^1]。 优点:兼容性较好,适合有Oracle中间环境的场景。 缺点:步骤繁琐,需额外配置Oracle环境。 2. **直接迁移法**(达梦→CSV/SQL→MySQL): 通过达梦的`dexp`命令行工具导出数据为SQL脚本或CSV文件,手动调整语法后导入MySQL[^4]。 优点:无需中间数据库,成本低。 缺点:需处理数据类型和语法差异。 --- #### 二、详细迁移步骤(以直接迁移法为例) **1. 数据导出** - 使用达梦的`dexp`工具导出数据: ```bash ./dexp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=dm_data.dmp DIRECTORY=/opt/dump LOG=export.log ``` 导出的`.dmp`文件需转换为MySQL兼容格式(如CSV或SQL)[^3]。 **2. 数据结构转换** - **表结构适配**: 达梦的`VARCHAR2`需改为MySQL的`VARCHAR`,`NUMBER`类型需根据精度调整(如`INT`或`DECIMAL`)。 - **脚本语法调整**: 删除达梦特有的语法(如`STORAGE`参数),替换MySQL不支持的函数(如`TO_CHAR`→`DATE_FORMAT`)。 **3. 数据导入MySQL** - 使用`mysql`命令行或`mysqldump`导入: ```bash mysql -u root -p target_db < adjusted_schema.sql mysqlimport -u root -p --local target_db data.csv ``` **4. 验证与测试** - 数据一致性检查:对比记录数、抽样验证关键字段。 - 性能测试:确保索引、查询效率符合预期[^2]。 --- #### 三、工具推荐 1. **达梦工具** - `dexp/dimp`:命令行数据导出导入工具。 - `DM数据迁移工具`(需授权):支持部分数据库类型的图形化迁移。 2. **第三方工具** - **Navicat**:支持跨数据库数据传输(需手动映射字段类型)。 - **Pentaho Kettle**:通过ETL流程实现复杂数据转换。 --- #### 四、常见问题与解决 - **数据类型不匹配**: 达梦的`CLOB`类型需转为MySQL的`TEXT`,`BLOB`需注意编码格式。 - **主键冲突**: 导出时使用`QUERY`条件分批迁移,避免自增ID冲突。 - **性能瓶颈**: 调整MySQL的`innodb_buffer_pool_size`参数,或分批次提交事务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值