2024年5月25日发(作者:)

DM DBA手记之SQLServer移植到DM

一、概述

随着国家对自主可控的日益重视,目前在党政机关、军队、大型央企等行业和区域中面

临越来越多的国产化。

DM数据库和SQLServer结构存在差异,TSQL语法也存在差异。DM数据库针对

SQLServer做了部分兼容性。但由于有根本性的差异,兼容度不高。从SQLServer迁移到

DM数据库,DM数据库提供了自动迁移工具,但在开发级别还需要人工干预进行同步。

SQLServer到DM的移植主要有以下几个方面的工作:

1. 分析待移植系统,确定移植对象。

2. 通过数据迁移工具DTS完成常规数据库对象及数据的迁移。

3. 通过人工完成TSQL的移植。

4. 移植完成后对移植的结果进行校验,确保移植的完整性和正确性。

5. 对应用系统进行移植、测试和优化。

二、移植过程

2.1 待移植系统分析

应用后台操作系统

数据库后台操作系统

WINDOWS 2008

WINDOWS 2008

后台数据库

应用开发平台

应用开发接口

需要移植的数据库对象

SQLServer

.NET

.Net Provider

表(数据量)

视图

触发器

存储过程、函数

对待移植系统进行分析,确定需要移植的数据库对象,给出移植列表,给用户确认,作为移

植的依据,给出

SQLServer

的统计脚本

2.2.1 统计SQLServer数据库基础信息

--统计编码格式

SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS',

'CodePage')

--936 简体中文GBK

--950 繁体中文BIG5

--437 美国/加拿大英语

--932 日文

--949 韩文

--866 俄文

--65001 unicode UFT-8

2.2.2 统计SQLServer数据中的对象以及表数据量

a. 根据指定用户统计用户下的各对象类型和数目

select type,COUNT(*) from _objects where schema_id=1 and

parent_object_id=0 and is_ms_shipped=0 group by type;

b. 统计指定用户下所有的对象,并记录到新的记录表中

create table sql_objects(obj_owner varchar(100),obj_name

varchar(100),obj_type varchar(50));

insert into sql_objects select DB_NAME(),name,type from _objects

where schema_id=1 AND type IN ('U','V','FN','P','TR');

select * from sql_objects;