更新时间:2022-08-16 GMT+08:00

使用DSC迁移

注意事项

  • 启动迁移程序前,必须指定输出文件夹路径。输入文件夹路径、输出文件夹路径以及日志路径以空格隔开。输入文件夹路径不能包含空格。路径空格会导致DSC执行错误。详情请参见DSC故障处理
  • 如果输出文件夹中包含子文件夹或文件,DSC会在执行迁移前将其删除或者根据用户设置(config文件夹中application.properties配置文件)将其覆盖。已删除或覆盖的子文件夹或文件无法通过DSC恢复。
  • 如果在同一台服务器上并发进行迁移(由同一个或不同DSC执行),不同的迁移任务必须使用不同的输出文件夹路径和日志路径。
  • 用户可以通过可选参数指定日志存储路径。如果路径未指定,DSC在TOOL_HOME下自动创建log文件夹。详情请参见日志参考

迁移方法

用户可在Linux和Windows操作系统中执行runDSC.shrunDSC.bat命令进行迁移,各迁移场景的命令详见表1

表1 Windows和Linux场景迁移

迁移场景

命令行参数

Teradata SQL迁移

> ./runDSC.sh
 --source-db Teradata
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--target-db/-T][Optional]
> runDSC.bat
--source-db Teradata
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--target-db/-T][Optional]

Oracle SQL迁移

./runDSC.sh
--source-db Oracle
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--conversion-type <Conversion-Type-BulkOrBlogic>]
[--target-db/-T]
runDSC.bat
--source-db Oracle
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--conversion-type <Conversion-Type-BulkOrBlogic>]
[--target-db/-T]

Teradata Perl迁移

> ./runDSC.sh
--source-db Teradata
[--application-lang Perl]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--target-db/-T][Optional]
> runDSC.bat
  --source-db Teradata
[--application-lang Perl]
[--input-folder <input-script-path> ]
[--output-folder <output-script-path> ]
[--log-folder <log-path>]
[--target-db/-T][Optional]

MySQL SQL迁移

> ./runDSC.sh
--source-db MySQL
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--conversion-type <conversion-Type-BulkOrBlogic>]
[--target-db/-T]
> runDSC.bat
--source-db MySQL
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--conversion-type <conversion-Type-BulkOrBlogic>]
[--target-db/-T]

Netezza SQL迁移

> ./runDSC.sh
--source-db Netezza
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--target-db/-T][Optional]
> runDSC.bat
--source-db Netezza
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--target-db/-T][Optional]

DB2语法迁移

> ./runDSC.sh
--source-db db2
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--conversion-type <Conversion-Type-BulkOrBlogic>]
[--target-db/-T]
> runDSC.bat
--source-db db2
[--application-lang SQL]
[--input-folder <input-script-path>]
[--output-folder <output-script-path>]
[--log-folder <log-path>]
[--conversion-type <Conversion-Type-BulkOrBlogic>]
[--target-db/-T]
  • 命令行参数说明:
    • source-db指定源数据库,参数值为Teradata、Oracle,不区分大小写。
    • conversion-type指定迁移类型,为可选参数。DSC支持以下迁移类型:

      -Bulk:迁移DML和DDL脚本。

      -BLogic:迁移业务逻辑,如存储过程和函数。BLogic适用于Oracle PL/SQL及Netezza。

    • target-db指定目标数据库,参数值为GaussDB(DWS)
  • 命令回显说明:

    Migration process start time和Migration process end time分别表示迁移开始时间和结束时间。Total process time表示迁移总时长,单位为ms。此外,迁移文件总数、处理器总数、已使用处理器数量、日志文件路径以及错误日志文件路径也会显示在控制台上。

  • 关于命令行参数的详细信息,请参考数据库模式迁移

任务示例

  • 示例:将Oracle数据库的SQL文件迁移到适用于Linux系统下的GaussDB(DWS)的SQL脚本中。
    ./runDSC.sh --source-db Oracle --input-folder D:\test\conversion\input --output-folder D:\test\conversion\output --log-folder D:\test\conversion\log --conversion-type bulk --targe-tdb gaussdbA
  • 示例:执行以下命令,将Oracle数据库的SQL文件迁移到适用于Windows操作系统下的GaussDB(DWS)的SQL脚本中。
    runDSC.bat --source-db Oracle --input-folder D:\test\conversion\input --output-folder D:\test\conversion\output --log-folder D:\test\conversion\log --conversion-type bulk --target-db gaussdbA

控制台上显示迁移详情(包括进度和完成状态):

********************** Schema Conversion Started *************************  
DSC process start time : Mon Jan 20 17:24:49 IST 2020  
Statement count progress 100% completed [FILE(1/1)]    
Schema Conversion Progress 100% completed  
**************************************************************************   
Total number of files in input folder : 1  
Total number of valid files in input folder : 1  
**************************************************************************   
Log file path :....../DSC/DSC/log/dsc.log  
Error Log file :    
DSC process end time : Mon Jan 20 17:24:49 IST 2020  
DSC total process time : 0 seconds  
********************* Schema Conversion Completed ************************