文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库数据迁移到达梦数据库(DM8)详细步骤,mysql迁移难题解决(数据库连接失败,Communications link failure,TaskDispatcher Error,索引重名)。

2023-09-16 19:26

关注

首先达梦数据库和MySQL是两种不同的关系型数据库管理系统,它们有以下几点区别:

  1. 开发公司不同:达梦数据库是由中国达梦公司开发的,而MySQL是由瑞典MySQL AB公司开发的。
  2. 数据库类型不同:达梦数据库是商业数据库,而MySQL是开源数据库。
  3. 数据库功能不同:达梦数据库在数据安全、高可用性、性能优化等方面有着很好的表现,而MySQL在大规模数据处理、高并发访问等方面表现出色。
  4. 数据库语法不同:达梦数据库和MySQL在SQL语法方面有一些不同,例如在数据类型、函数、存储过程等方面。
  5. 数据库应用场景不同:达梦数据库主要应用于金融、电信、政府等领域,而MySQL则广泛应用于Web应用、企业应用等领域。

需要注意的是,虽然达梦数据库和MySQL有一些不同,但它们都是成熟的数据库管理系统,可以根据具体的需求选择使用。

1.使用DM管理工具

达梦数据库安装好后会在下图路径创建工具的快捷方式,找到并打开DM管理工具
在这里插入图片描述

2.到需要迁移的服务器连接中创建对应的模式

在达梦数据库中,一个用户对应着一个模式,模式类似于mysql中的数据库。
在这里插入图片描述
也可以新建一个用户,在用作测试迁移的模式,新建用户的话会自动创建与之绑定的模式,这里我已经创建过TEST,所以就不再创建了。
在这里插入图片描述

3.使用DM数据迁移工具

在这里插入图片描述

4.创建迁移工程

4.1 右键左侧空白处创建新工程,填写信息后工程创建完毕。

在这里插入图片描述

4.2 创建迁移,并填写迁移信息

在这里插入图片描述

5.数据迁移

5.1点击左侧创建好的迁移项,点击下一步

在这里插入图片描述

5.2选择迁移方式

这里我们是mysql迁移到达梦数据库,所以这里选择mysql.。
在这里插入图片描述

5.3 配置数据源

填写数据源信息,然后点击刷新会展示出该连接的所有数据库,选择需要迁移的数据库后点击下一步,不过我这里点击刷新报错,下面是解决方法。
在这里插入图片描述
当我点击刷新时,提示数据库连接失败,Communications link failure。
在这里插入图片描述
出现这个问题的可能有以下几种:

1. 端口未开放
windows通过netstat -aon|findstr "端口号"来查看是否开放,如果没有输出信息表示没有开放,一般来说不会遇到未开放的问题,这里不做赘述。
在这里插入图片描述
2.SSL协议问题
解决步骤如下:
2.1 停止达梦数据库相关服务。
在这里插入图片描述2.2在达梦数据库的安装目录下找到dm.ini,我安装在D盘这里的我路径是D:\dmdbms\data\DAMENG\dm.ini,打开后更新COMPATIBLE_MODE属性,改为4,即可兼容MYSQL数据库,写完后重启服务。
在这里插入图片描述
在这里插入图片描述
2.3 自定义连接驱动
驱动路径可以选择本地的驱动jar包,勾选使用自定义URL,URL需要在尾部加上&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true,并且需要更改数据库名为要迁移的数据库名称。
在这里插入图片描述
点击确定后点击刷新测试,没有报错则进入下一步。

5.4 配置达梦数据库信息,迁移策略,指定迁移到哪个模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.5 数据迁移

反选全部表,点击下一步,审阅过后点击完成,确认日志中没有报错迁移就完毕了,如果不出意外的话我是出意外了,日志提示了空指针异常。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决方法:
可以通过拆分同步,重新进入迁移项目中,点击下一步直到选择迁移对象的页面。

  1. 同步表结构。
    在这里插入图片描述
    在这里插入图片描述
  2. 同步数据。
    注意:如果这里有视图表需要取消勾选。
    在这里插入图片描述
    在这里插入图片描述
  3. 同步约束,索引,触发器等。
    在这里插入图片描述
    在这里插入图片描述
    到这里mysql数据迁移到达梦数据就已经完成了,在第六步骤会补充后续遇到的问题。

6.其他问题

6.1索引名称重复问题:

在使用达梦数据库时,如果创建了两个或多个索引并使用相同的名称,达梦数据库会报错并拒绝创建第二个索引。这是因为索引名称必须是唯一的,以便在查询中正确引用它们。
遇到这种问题,就需要更改索引名了,如果索引比较少的情况下可以手动更改,如果索引很多可以采用如下这条sql,通过这个sql给出的语句可以批量更新数据库中的索引名,按照表名+字段名的格式生成索
引名:

-- 批量更新索引名的sql-- 查询出所有组合索引,并拼接修改索引名的语句SELECTCONCAT( 'ALTER TABLE `', table_name, '` RENAME INDEX `', index_name, '` TO `', table_name, '_', GROUP_CONCAT( column_name ORDER BY seq_in_index SEPARATOR '_' ), '`;' ) AS RENAME_SQL FROMinformation_schema.statistics WHEREtable_schema = 'asset_manage_local' AND index_name != 'PRIMARY' GROUP BYtable_name,index_name HAVINGCOUNT(*) > 1 -- 只处理组合索引UNION ALL-- 查询出所有非组合索引,并拼接修改索引名的语句SELECTCONCAT('ALTER TABLE `',table_name,'` RENAME INDEX `',index_name,'` TO `',table_name,'_',column_name,IF( sub_part IS NOT NULL, CONCAT( '(', sub_part, ')' ), '' ),'`;' ) AS RENAME_SQL FROMinformation_schema.statistics WHEREtable_schema = 'asset_manage_local' AND index_name != 'PRIMARY' AND seq_in_index = 1 AND index_name NOT IN ( SELECT index_name FROM information_schema.statistics WHERE table_schema = 'asset_manage_local' GROUP BY table_name, index_name HAVING COUNT(*) > 1 -- 过滤掉组合索引);

来源地址:https://blog.csdn.net/TangBoBoa/article/details/130385418

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯