背景
近期因为项目需要,开始接触达梦数据库。由于我们的测试环境在客户的服务器上,开发环境在本地,两个服务器网络不联通,有着独立的数据库。因此,经常出现测试人员在测试环境发现了Bug,开发人员需要花很多的精力在本地造相似的数据来复现bug,我由此萌生了迁移数据库的想法,定期把测试数据库的数据还原到本地,方便测试和复现Bug。
准备工作
在数据库还原之前,首先在本地安装与测试环境同版本的达梦数据库服务器,这是实现两边数据互相还原的基础。安装完成后,远程到客户环境,用达梦管理工具DMManager注册连接,连接到源数据库(这里建议在注册连接时勾选上“保存密码”,不然每次连接时都要输一次密码)。如下图:
确认可以连接源数据库后,再在本地创建数据库实例,需要保证以下参数与源数据库的配置相同,否则在还原数据库时会出现类似于“[警告]服务器与文件内数据的 LENGTH_IN_CHAR 参数不匹配”等相关的错误。
那么,怎么才能知道源数据库的配置信息呢?可以在DMManager中,右键点击连接->管理服务器,查看相关配置信息。
导出和导入
通过达梦管理工具DMManager,有三种方式导出数据:全库导出,选定模式导出,选定表导出。操作方式相似,右键单击服务器连接/模式/表名,在弹出的菜单中点击"导出"即可。下图以模式导出为示例。
设置导出目录和导出文件,点击确定,导出完成后,在导出目录里就可以看到刚刚导出的数据dump文件,将文件拷到本地,用DMManager连接到本地数据库,创建同名的模式(注意,一定要跟导出的模式名称相同),右键点击模式->导入,弹出下面的操作框:
初始导入只需要编辑"导入目录”,"导入文件",但如果是重复导入,建议根据需要勾选下图中的选项“表存在时的操作”,可选的有SKIP(跳过),APPEND(追加),TRUNCATE(清表),REPLACE(覆盖),如果没有设置,目标数据库里已经有相关表或数据时,在导入过程中会报”重复主键“的错误。
实操过程中我遇到这样一种情况,源数据库中的模式为ERP_UAT,但是我想把这个数据库导到本地的ERP_DEV里,这时候就需要做模式映射了。先在本地创建模式ERP_UAT,然后点击该模式->导入,在导入的操作框里配置好模式映射,如下图:
点击确定,导入完成后,会发现新建的ERP_UAT里没有任何数据,数据全都导到ERP_DEV模式里了。
DM数据迁移工具
如果原数据库和目标数据库的网络互通,且导入导出的数据量较少,可以考虑使用达梦软件自带的工具“DM数据迁移工具”来实现两个模式间的数据的迁移,或者将数据导出为sql,excel等。操作方法如下:
1、打开DM数据迁移工具,右键点击迁移->新建迁移,输入名称,点击确定,下一步。
2、可以按需要选择迁移的模式,这里以DM->DM为例:
3、配置源数据库和目标数据库的连接方式,类似于DM管理工具中的操作:
4、配置好源模式和目标模式,选择模式中要同步的表,点击下一步,完成,即可
本文对于操作相关的描述比较详细,对于经验丰富的研发人员来说可能过于啰嗦,请勿见怪,希望能帮到那些初次接触达梦数据库的道友们。