从 SQL Server 迁移到 DM

本文详细介绍了如何从SQLServer2014迁移到达梦V8数据库,包括软件准备、安装步骤、数据迁移工具的使用以及Java连接时的注意事项。重点强调了配置数据源、迁移方式和Java连接时模式的选择问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从 SQL Server 迁移到 DM

软件:

SqlServer:2014

DM(达梦):v8

系统:win11

一.安装软件

首先得准备好我们迁移所需要的软件,

SqlServer:

  1. 官方网站:Microsoft Data Platform | Microsoft
  2. SqlServer文档:SQL Server technical documentation - SQL Server | Microsoft Learn
  3. SqlServer教程:Create Python Server | W3Schools.com | W3Schools Spaces

DM(达梦):

  1. 官方网站:武汉达梦数据库股份有限公司 (dameng.com)
  2. DM(达梦)文档:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台 (dameng.com)
  3. DM(达梦)SQL开发指南:SQL 开发指南 | 达梦技术文档 (dameng.com)

  1. 安装

关于SqlServer的安装我这边就不过多介绍了

SQLServer:SQL Server 2014安装教程(保姆级图解教程)_sql2014安装教程图解-优快云博客

DM(达梦)安装:数据库安装 | 达梦技术文档 (dameng.com)

DM官网里面有一整套的安装流程,包含(Windows,linux,DOcker

  • SQLServer迁移DM(达梦)

参考文档:DM_DBA手记之SQL_Server移植到DM.pdf (dameng.com)

1.

在我们安装完成达梦V8之后,可以在我们的导航搜索栏搜索 “DM数据迁移工具” 进行迁移工作

找到我们的DM数据迁移工具之后,我们就可以开始我们的迁移工作了

新建我们的迁移项目组

右键迁移项目组,新建我们的迁移

选择好我们要迁移的数据库,我们这边是将SQLServer迁移至DM数据库

然后配置好SQLServer的链接数据源,和制定迁移的数据,可以通过点击刷新测试数据源是否正确

关于DM的配置端口号可以自定义设置但是一定要记住,默认端口是5236

默认的账户/密码:SYSDBA

这里可以指定我们迁移的方式,我这里使用的是默认迁移方式,当然也可以根据自身的需求来更改

默认指定的模式:源模式为:DBO , 目的模式:DBO

指定之后,后续迁移都会迁移到DBO文件下,如果要迁移至别的目的模式下,可以在这里进行修改

到了这一步就可以迁移我们数据库里面的表和数据了,

迁移数据库里面的数据如果数据量太大了的话可以在转换里面像我这样配置,

我这样配置了之后,会默认勾选的表只迁移100条数据,大大的节省了我们迁移数据库的时间,如果是全部迁移的话可以不按照我的来默认就行了

之后下一步就可以完成我们的迁移工作了。

  • 使用

我这边的话使用的是Java连接DM的,来看看Java的注意事项吧

Url的话后面需要加上我们的模式源 DBO因为SQL的话有通过Mybtais-puls生成的代码,

达梦是支持mybatis-puls的

里面还有一些我们之前通过SQLServer写的死Sql存在不兼容的问题

1.

如果不加上DBO的话会出现无效表或视图名的问题

SQLServer是可以直接通过表名进行查询的

但是DM是不可以的

DM是通过 数据源.表名的形式进行查询数据的

如果我们按照SQLServer的写法是会报错的

<think>嗯,用户问的是关于将SQL Server迁移DM数据库的事情。首先,我得确认用户的需求是什么。可能他们公司要换数据库,或者项目需要适配国产化环境?达数据库是国产的,可能涉及政策或兼容性问题。所以用户需要了解迁移的步骤和注意事项。 首先,我应该先概述迁移的整体流程,让用户有个大致的了解。然后分步骤详细说明,比如评估阶段、准备阶段、迁移实施、测试验证、上线维护。每个阶段需要做什么,需要注意什么。 接下来,用户可能关心的是迁移工具。SQL Server和达都有自己的工具,比如DTS和DTS工具。需要介绍这些工具的使用方法,或者有没有其他第三方工具可用。另外,手动迁移的话,要注意哪些问题,比如语法差异、数据类型转换等。 然后是数据类型映射,这部分很重要。SQL Server的一些数据类型在达中可能不同,比如varchar、datetime,需要对应到达的VARCHAR、DATETIME等。可能需要列出常见数据类型的对比,帮助用户避免错误。 存储过程和函数转换也是难点。SQL Server的T-SQL和达的PL/SQL有区别,比如变量声明、流程控制语句。需要举例说明如何修改,比如变量前缀@改成达的声明方式,分页语句的调整等。 权限迁移也不能忽视,用户和角色的权限结构可能不同,需要重新配置。性能优化方面,索引和统计信息可能需要调整,特别是达的存储机制和SQL优化器可能与SQL Server不同,需要测试和优化。 最后,常见问题处理,比如字符集、自增字段、兼容模式等。这些都是实际迁移中容易遇到的问题,提前给出解决方案能帮助用户节省时间。 用户可能的隐藏需求是希望迁移过程尽量平滑,减少业务中断,保证数据一致性和性能。所以需要强调备份、测试和验证的重要性,以及上线后的监控步骤。 需要确保回答结构清晰,步骤明确,给出实用的建议和示例,让用户能够一步步操作。同时提醒他们注意细节,比如注释处理、语法差异,避免迁移后出现隐藏的问题。可能还需要建议在复杂情况下联系原厂支持,确保迁移顺利。</think>SQL Server迁移至达数据库操作指南(结构化分步说明) 一、迁移前评估阶段 1. 对象兼容性分析 使用达官方提供的**DTS迁移工具**进行自动化扫描: - 检查存储过程、触发器中的T-SQL语法差异 - 标识不兼容函数(如`GETDATE()`需改为`SYSDATE`) - 检测专有特性(如SQL Server的`TOP`需转换为达的`ROWNUM`) 2. 性能基准测试 建立典型业务场景的基准指标: $$ TPS_{基准} = \frac{事务总数}{测试时间(s)} $$ $$ 响应时间_{平均} = \frac{\sum_{i=1}^{n} 单次响应时间}{n} $$ 二、迁移实施步骤 1. 环境准备 - 达数据库部署参数建议: ```ini PAGE_SIZE = 32 # 页大小与SQL Server 8K页对齐 CASE_SENSITIVE = 0 # 关闭大小写敏感 ``` 2. 结构迁移 使用DTS工具自动转换时注意: - 自增列处理:达使用`IDENTITY(1,1)`替代`INT IDENTITY` - 时间类型转换: | SQL Server | 达 | |------------------|--------------| | DATETIME | DATETIME | | DATETIME2 | DATETIME(6) | 3. 数据迁移 分批迁移策略示例: ```sql -- 达数据装载命令示例 dmfldr CONTROL=\'YOUR_CTL_FILE.ctl\' LOG=\'load.log\' BADFILE=\'err.bad\' ``` 三、代码层适配要点 1. 分页查询改造 原始SQL Server语句: ```sql SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY id) AS RN, * FROM table ) AS tmp WHERE RN BETWEEN 11 AND 20 ``` 达适配方案: ```sql SELECT * FROM table ORDER BY id LIMIT 10 OFFSET 10 ``` 2. 存储过程改造实例 原始T-SQL: ```sql CREATE PROCEDURE test_proc AS BEGIN DECLARE @cnt INT = 0; WHILE @cnt < 10 BEGIN PRINT 'Count: ' + CAST(@cnt AS VARCHAR); SET @cnt += 1; END END ``` 达PL/SQL改写: ```sql CREATE OR REPLACE PROCEDURE test_proc AS cnt INT := 0; BEGIN WHILE cnt < 10 LOOP PRINT 'Count: ' || TO_CHAR(cnt); cnt := cnt + 1; END LOOP; END; ``` 四、验证与优化 1. 数据一致性验证 使用达提供的`dmdbchk`工具进行校验: $$ \text{校验准确率} = \frac{\text{匹配记录数}}{\text{总记录数}} \times 100\% $$ 2. 性能调优要点 - 索引优化:达的位图索引性能特征与SQL Server差异较大 - 统计信息更新频率建议: ```sql DBMS_STATS.GATHER_TABLE_STATS('模式名','表名'); ``` 五、典型问题解决方案 1. 乱码问题处理 确认三方字符集配置: - 数据库服务器:`UNICODE_FLAG=1` - 客户端:设置`LC_ALL=zh_CN.utf8` 2. 事务隔离级别适配 达默认使用READ COMMITTED,但实现机制不同,需验证业务逻辑: ```sql SET TRANSACTION ISOLATION LEVEL READ COMMITTED; ``` 迁移后建议保持1周的并行运行期,通过达DMHS实时同步工具保持双库数据同步,待验证完全通过后再切换生产流量。复杂系统建议联系达原厂技术支持获取定制化迁移方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值