从SQL SERVER迁移数据库到达梦DM8数据库
从SQL SERVER迁移数据库到达梦DM8数据库
由于从事的开发项目中,大部门使用的是微软的sql server数据库,最近由于项目国产化的需要,开始学习、了解达梦数据库的相关技术知识,也参加了由达梦公司组织的为期三天的达梦数据库DM8的学习,现就从SQL SERVER数据库迁移数据到达梦的DM8数据库的过程中遇到的相关问题作详细说明。
本次使用的数据迁移工具是由达梦公司提供的DM数据迁移工具,此工具在安装DM8数据库之后会自动安装到电脑中。此次使用的SQL SERVER版本为SQL SERVER2008 R2。此次迁移主要包括表和视图。下面就具体的迁移步骤作详细说明:
1.打开DM数据迁移工具,新建迁移任务,如下图所示:
2.在打开的迁移任务界面框中,输入数据库所在主机IP,数据库访问端口,sql server系统默认安装时,端口号都为1433,数据库登录用户名,数据库登录密码和准备迁移的数据库名称,”数据库名(M)”这一项如果没有相应的数据库出来,可点击后面的“刷新”按钮进行刷新,具体如下图所示:
这里有一点需要特别说明的,如果数据库名这一项是空的,没有相应的数据库列表显示,代表没有正确连接到对应的数据库服务,这时需要检查上面的信息是否填写有误,另外,“主机名”这一项,建议直接用IP,像我们在安装sql server时,有时会指定实例名称,这时如果加上实例名称,有可能会连接不上,我这边在迁移时,由于带了实例名,就一直连接不上数据库,如果建议直接用IP连接,不要带上实例名;
3.填写将要迁移到的达梦数据库的相关登录信息,如下图所示:
4.在这一步骤中,“创建模式”这一项勾选之后,在迁移时,会默认在DM8数据库中创建一个dbo模式,另外,后面的“保持对象名大小写”这一项,如果勾选中,那么在迁移后,在DM8中,对应的表名、视图名等会与Sql server中的表名、视图名等的大小写保持一致,如果此项不勾选,那么迁移完之后,所有的表名、视图名等都会变成大写的,如下图所示:
5.在此步骤可勾选将要迁移的表、视图,如下图所示:
6.在此步骤中,点击“完成”按钮可进行数据库的迁移工作,如下图所示:
7.在此步骤中,可看到相关的迁移进度信息,如下图所示:
迁移结束后,界面会显示相关的迁移结果信息,如果有迁移失败的,可通过点击“查看详细信息”按钮进行查看具体的迁移失败原因,如下图所示:
在本次迁移结束后,查看迁移结果发现,所有的表都已成功迁移过来了,但视图没有成功迁移过来,点击上图的“查看详细信息”后发现,视图迁移失败主要是由于双引号问题所导致的,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语句之后再进行执行就可以把视图迁移过去了,迁移之后如下图所示:
通过登录DM8数据库,可看到相关表和视图已成功迁移过来了。
上面主要是我这次把数据库从sql server迁移到DM8的一些心得。
通过这几天的学习和了解,达梦数据库目前已做得很不错了,从使用方式来说,和国外比较知名的sql server、MySql和Oracle数据库的区别也不太大,所以对于有sqlserver、MySql和Oracle数据库使用经验的人来说,也比较容易上手,特别是DM8的管理工具,使用起来非常的方便。同时,对于项目国产化,由于有DM数据迁移工具,给从其它数据库迁移到DM8数据库上提供了很大的方便。
通过这几天简单的了解,总体来说,DM8还是做得很不错的,希望达梦数据库会越来越好,我们自己的国产数据库会越来越好用,在未来可彻底代替国外的数据库。
本文地址:https://blog.csdn.net/xwkxwk/article/details/108980707
推荐阅读
-
『Word2007技巧』使用 ODBC 驱动程序从 SQL Server 2000 或 2005 数据库中导入数据
-
『Word2007技巧』从 SQL Server 数据库中导入数据
-
从SQL SERVER迁移数据库到达梦DM8数据库
-
在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法
-
从0开始学golang--1.1--连接ms sql server数据库
-
迁移数据库数据到SQL Server 2017
-
Oracle数据库的结构和数据迁移到PostgreSql数据库(MYSQL,SQL Server相似)
-
sql server数据库 从单用户模式改为多用户模式
-
谈谈数据从sql server数据库导入mysql数据库地体验_MySQL
-
SQL Server 2008数据库迁移