欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

从SQL SERVER迁移数据库到达梦DM8数据库

程序员文章站 2022-09-05 14:30:58
从SQL SERVER迁移数据库到达梦DM8数据库由于从事的开发项目中,大部门使用的是微软的sql server数据库,最近由于项目国产化的需要,开始学习、了解达梦数据库的相关技术知识,也参加了由达梦公司组织的为期三天的达梦数据库DM8的学习,现就从SQL SERVER数据库迁移数据到达梦的DM8数据库的过程中遇到的相关问题作详细说明。本次使用的数据迁移工具是由达梦公司提供的DM数据迁移工具,此工具在安装DM8数据库之后会......

                                       从SQL SERVER迁移数据库到达梦DM8数据库

由于从事的开发项目中,大部门使用的是微软的sql server数据库,最近由于项目国产化的需要,开始学习、了解达梦数据库的相关技术知识,也参加了由达梦公司组织的为期三天的达梦数据库DM8的学习,现就从SQL SERVER数据库迁移数据到达梦的DM8数据库的过程中遇到的相关问题作详细说明。

本次使用的数据迁移工具是由达梦公司提供的DM数据迁移工具,此工具在安装DM8数据库之后会自动安装到电脑中。此次使用的SQL SERVER版本为SQL SERVER2008 R2。此次迁移主要包括表和视图。下面就具体的迁移步骤作详细说明:

1.打开DM数据迁移工具,新建迁移任务,如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

2.在打开的迁移任务界面框中,输入数据库所在主机IP,数据库访问端口,sql server系统默认安装时,端口号都为1433,数据库登录用户名,数据库登录密码和准备迁移的数据库名称,”数据库名(M)”这一项如果没有相应的数据库出来,可点击后面的“刷新”按钮进行刷新,具体如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

这里有一点需要特别说明的,如果数据库名这一项是空的,没有相应的数据库列表显示,代表没有正确连接到对应的数据库服务,这时需要检查上面的信息是否填写有误,另外,“主机名”这一项,建议直接用IP,像我们在安装sql server时,有时会指定实例名称,这时如果加上实例名称,有可能会连接不上,我这边在迁移时,由于带了实例名,就一直连接不上数据库,如果建议直接用IP连接,不要带上实例名;

3.填写将要迁移到的达梦数据库的相关登录信息,如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

4.在这一步骤中,“创建模式”这一项勾选之后,在迁移时,会默认在DM8数据库中创建一个dbo模式,另外,后面的“保持对象名大小写”这一项,如果勾选中,那么在迁移后,在DM8中,对应的表名、视图名等会与Sql server中的表名、视图名等的大小写保持一致,如果此项不勾选,那么迁移完之后,所有的表名、视图名等都会变成大写的,如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

5.在此步骤可勾选将要迁移的表、视图,如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

6.在此步骤中,点击“完成”按钮可进行数据库的迁移工作,如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

7.在此步骤中,可看到相关的迁移进度信息,如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

迁移结束后,界面会显示相关的迁移结果信息,如果有迁移失败的,可通过点击“查看详细信息”按钮进行查看具体的迁移失败原因,如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

在本次迁移结束后,查看迁移结果发现,所有的表都已成功迁移过来了,但视图没有成功迁移过来,点击上图的“查看详细信息”后发现,视图迁移失败主要是由于双引号问题所导致的,DM8中创建视图时,在模式、表名、字段之间需要加上双引号,但在sql server中创建视图时,sql语句中的模式、表名与字段之间是不需要加双引号,所以由于语法的一点点区别,所以迁移视图时会报错,下面是sql server视图中的语句和DM8视图中的语句,如下所示:

Sql server创建视图语句:

CREATE VIEW [dbo].[vw_info]

AS

SELECT  dbo.bc_infotype.iftIfcCode, dbo.bc_infotype.iftName, dbo.bc_info.infID, dbo.bc_info.infIftCode, dbo.bc_info.infTitle, dbo.bc_info.infSubTitle, dbo.bc_info.infCoverImage, dbo.bc_info.infLinkUrl,

dbo.bc_info.infVideoUrl,dbo.bc_info.infFileUrl, dbo.bc_info.infSummary, dbo.bc_info.infKeyWord, dbo.bc_info.infSource, dbo.bc_info.infAuthor, dbo.bc_info.infContent, dbo.bc_info.infStatus, dbo.bc_info.infApprovedUserID, dbo.bc_info.infCreatorID, dbo.bc_info.infCreateDate, dbo.bc_info.infRedactorID, dbo.bc_info.infUpdateDate,dbo.bc_info.infTop, dbo.bc_info.infIsHotspot, dbo.bc_info.infIsFirstNews, dbo.bc_info.infIsRecommend, dbo.bc_info.infViewCount, dbo.bc_info.infExtInt1, dbo.bc_info.infExtInt2, dbo.bc_info.infExtStr1, dbo.bc_info.infExtStr2, dbo.bc_info.infIsMilitaryHeadlines, dbo.bc_info.infIsVoice, dbo.bc_info.infIsHeadlines, dbo.bc_infotype.iftType

FROM dbo.bc_info LEFT OUTER JOIN dbo.bc_infotype ON dbo.bc_info.infIftCode = dbo.bc_infotype.iftCode

 

DM8创建视图语句:

CREATE view "dbo"."vw_info"  as

SELECT "dbo"."bc_infotype"."iftIfcCode", "dbo"."bc_infotype"."iftName", "dbo"."bc_info"."infID",

"dbo"."bc_info"."infIftCode", "dbo"."bc_info"."infTitle",

 "dbo"."bc_info"."infSubTitle", "dbo"."bc_info"."infCoverImage", "dbo"."bc_info"."infLinkUrl",

"dbo"."bc_info"."infVideoUrl", "dbo"."bc_info"."infFileUrl", "dbo"."bc_info"."infSummary", "dbo"."bc_info"."infKeyWord", "dbo"."bc_info"."infSource", "dbo"."bc_info"."infAuthor",

 "dbo"."bc_info"."infContent","dbo"."bc_info"."infStatus","dbo"."bc_info"."infApprovedUserID", "dbo"."bc_info"."infCreatorID","dbo"."bc_info"."infCreateDate", "dbo"."bc_info"."infRedactorID",

"dbo"."bc_info"."infUpdateDate", "dbo"."bc_info"."infTop", "dbo"."bc_info"."infIsHotspot", "dbo"."bc_info"."infIsFirstNews","dbo"."bc_info"."infIsRecommend", "dbo"."bc_info"."infViewCount", "dbo"."bc_info"."infExtInt1", "dbo"."bc_info"."infExtInt2", "dbo"."bc_info"."infExtStr1", "dbo"."bc_info"."infExtStr2",

"dbo"."bc_info"."infIsMilitaryHeadlines", "dbo"."bc_info"."infIsVoice",

"dbo"."bc_info"."infIsHeadlines", "dbo"."bc_infotype"."iftType"

FROM      "dbo"."bc_info" LEFT OUTER JOIN

  "dbo"."bc_infotype" ON "dbo"."bc_info"."infIftCode" = "dbo"."bc_infotype"."iftCode"

我这边经过手动修改sql语句之后再进行执行就可以把视图迁移过去了,迁移之后如下图所示:

从SQL SERVER迁移数据库到达梦DM8数据库

通过登录DM8数据库,可看到相关表和视图已成功迁移过来了。

上面主要是我这次把数据库从sql server迁移到DM8的一些心得。

通过这几天的学习和了解,达梦数据库目前已做得很不错了,从使用方式来说,和国外比较知名的sql server、MySql和Oracle数据库的区别也不太大,所以对于有sqlserver、MySql和Oracle数据库使用经验的人来说,也比较容易上手,特别是DM8的管理工具,使用起来非常的方便。同时,对于项目国产化,由于有DM数据迁移工具,给从其它数据库迁移到DM8数据库上提供了很大的方便。

通过这几天简单的了解,总体来说,DM8还是做得很不错的,希望达梦数据库会越来越好,我们自己的国产数据库会越来越好用,在未来可彻底代替国外的数据库。

本文地址:https://blog.csdn.net/xwkxwk/article/details/108980707

相关标签: 数据库