更新时间:2025-12-11 GMT+08:00

了解DSC

当企业决定从传统数据库切换到华为云DWS数据库时,会遇到数据库迁移的挑战,特别是应用程序SQL脚本的迁移,这通常是一个复杂、高风险且耗时的过程。

如何确保应用程序SQL脚本能够高效、准确地迁移至DWS数据库,同时减少迁移过程中的风险和停机时间?DSC是一款运行在Linux或Windows操作系统上的命令行工具,致力于向客户提供简单、快速、可靠的应用程序SQL脚本迁移服务,通过内置的语法迁移逻辑解析源数据库应用程序sql脚本,并迁移为适用于DWS数据库的应用程序sql脚本。

DSC不需要连接数据库,可在离线模式下实现零停机迁移,迁移过程中还会显示迁移过程状态,并用日志记录操作过程中发生的错误,便于快速定位问题

DSC内置语法解析器只能识别标准的SQL语法,输入脚本中如包含了其他语言的文本,则会导致语法解析异常,请在使用DSC工具前对输入脚本进行清洗。

迁移对象

DSC支持迁移的数据源如表1,具体支持迁移的数据库对象有:

  • DDL语句:模式、表、视图、存储过程、自定义函数
  • DML语句:select、update、delete、insert、truncate
表1 支持的源数据库

数据库名称

数据库版本

Teradata

17.20

MySQL

8.0

Oracle

11g Release 2,12c Release 1

AnalyticDB For MySQL

-

BigQuery

-

Postgres

9.2.x,11.x

Redshift

-

Greenplum

7.0.0

Hologres

3.1.17

Netezza

-

Hive

-

其他源:Doris, StarRocks, SQL Server, Synapse, Impala

-

迁移流程

DSC迁移sql脚本流程如下:

  1. 从源数据库导出待迁移的sql脚本到已安装了DSC的Linux或Windows服务器。
  2. 执行DSC命令进行语法迁移,命令中指定输入文件路径、输出文件路径以及日志路径。
  3. DSC自动将迁移后的sql脚本和日志信息归档在指定路径中。
图1 DSC处理流程

硬件要求

DSC对硬件的要求如表2所示。

表2 DSC硬件环境要求

硬件

配置

CPU

AMD或Intel Pentium (最小频率:500 MHz)

最小内存

1 GB

磁盘空间

1 GB

软件要求

操作系统要求

DSC兼容的操作系统如表3所示。

表3 兼容的操作系统

服务器

操作系统

版本

通用x86服务器

SUSE Linux Enterprise Server 11

SP1(SUSE11.1)

SP2(SUSE11.2)

SP3(SUSE11.3)

SP4(SUSE11.4)

SUSE Linux Enterprise Server 12

SP0(SUSE12.0)

SP1(SUSE12.1)

SP2(SUSE12.2)

SP3(SUSE12.3)

RHEL

6.4-x86_64(RedHat6.4)

6.5-x86_64(RedHat6.5)

6.6-x86_64(RedHat6.6)

6.7-x86_64(RedHat6.7)

6.8-x86_64(RedHat6.8)

6.9-x86_64(RedHat6.9)

7.0-x86_64(RedHat7.0)

7.1-x86_64(RedHat7.1)

7.2-x86_64(RedHat7.2)

7.3-x86_64(RedHat7.3)

7.4-x86_64(RedHat7.4)

CentOS

6.4(CentOS6.4)

6.5(CentOS6.5)

6.6(CentOS6.6)

6.7(CentOS6.7)

6.8(CentOS6.8)

6.9(CentOS6.9)

7.0(CentOS7.0)

7.1(CentOS7.1)

7.2(CentOS7.2)

7.3(CentOS7.3)

7.4(CentOS7.4)

Windows

7.0,10,11

其他软件要求

DSC对其他软件版本的要求如表4所示。

表4 其他软件要求

软件

用途

JDK 1.8.0_141 or later(必选)

Used to run DSC.

Perl 5.8.8(可选)

Used to migrate Perl files.

Perl 5.28.2 and later(可选)

Used to migrate Perl files in Windows.

Python 3.8.2(可选)

Used to verify post migration script.

命令行格式约定

本手册中可能出现下列命令行格式约定,它们所代表的含义如下:

表5 命令行格式列表

格式

说明

粗体

命令行关键字(命令中保持不变、必须照输的部分)采用加粗字体表示。

斜体

命令行参数,路径,文件或文件夹采用斜体表示。

[ ]

表示用“[ ]”括起来的部分(关键词和参数)在命令配置时是可选的。

{ x | y | ... }

表示用“{}”分组选项,各选项之间以“|”分隔。从两个或多个选项中选取一个。

[ x | y | ... ]

表示用“[ ]”分组选项,各选项之间以“|”分隔。从两个或多个选项中选取一个或者不选。

{ x | y | ... }*

表示用“{}”分组选项,各选项之间以“|”分隔。从两个或多个选项中选取多个,最少选取一个,最多选取所有选项。

[ x | y | ... ]*

表示用“[ ]”分组选项,各选项之间以“|”分隔。从两个或多个选项中选取多个或者不选。

&<1-n>

表示&符号前的内容可重复1到n次。

#

表示注释。

第三方许可

本节包含适用于该工具的第三方许可。

  • ANTLR v4.9.3
  • Apache Commons IO 2.11
  • Apache Commons CLI 1.5
  • Apache Log4j 2.17.2
  • JSON.org json 20220320
  • postgresql 42.4.1
  • sql-formatter 2.0.3