文档首页 > > 工具指南> Migration Tool SQL语法迁移工具> 配置Migration Tool> Migration Tool配置

Migration Tool配置

分享
更新时间: 2019/08/09 GMT+08:00

Migration Tool的配置包含如下三项:

  • 设置application.properties:用于配置工具的迁移行为,例如,是否要覆盖目标文件夹下的文件,是否对sql文件格式化。
  • 设置TOOL_HOME:用于配置工具包路径。
  • 设置Java内存分配:用户配置工具在迁移过程中可使用的内存资源,超出设置的内存,工具将显示错误消息并退出。

设置application.properties

application.properties文件中包括一系列应用配置参数,用于控制Migration Tool在迁移数据库脚本时的行为,该文件中的参数为通用控制参数,适用于Teradata、Oracle和Oracle(Beta)。

设置方法如下。

  1. 打开config文件夹中的application.properties文件。
  2. 根据实际需要修改application.properties文件中参数的值。

    application.properties文件中的参数解释见 表1
    说明:
    • 参数值不区分大小写。
    • 除了列出的参数外,用户不得更改任何参数值。

  3. 保存后退出。
表1 application.properties文件的配置参数

参数

说明

取值范围

默认值

示例

  • formattedSourceRequired

指定是否使用SQL Formatter对源SQL文件进行格式化。

若该参数设为true,则对输入文件的副本进行格式化并保存到{输出路径}/formattedSource文件夹。

  • true
  • false

true

formattedSourceRequired=true

  • target_files

指定要在输出/目标文件中执行的操作。

Overwrite:用于覆盖输出文件夹中的现有文件。

指定是否必须覆盖输出文件夹中的文件。

Delete:用于删除目标文件夹中的所有文件。

Cancel:用于在输出/目标文件夹中存在文件时取消操作。

  • overwrite
  • delete
  • cancel

overwrite

target_files=overwrite

  • encodingFormat

指定输入/源文件的编码格式。

如果未设置该参数(或该参数被注释掉),则工具将基于区域设置使用默认编码。

说明:
  • 文件编码的自动检测功能并不准确。为确保正确的编码格式,请使用本参数指定格式。
  • 有关Oracle(Beta)的参数设置详情,请参见Oracle(Beta)SQL配置
  • UTF8
  • UTF16
  • UTF32
  • ASCII等

基于区域设置的默认编码

encodingFormat=UTF8

  • NoOfThreads

指定用于迁移的线程数。

说明:

有关Oracle(Beta)的参数设置详情,请参见NoOfThreads

取决于可用的系统资源

3

NoOfThreads=3

  • MaxFileSizeWarning

指定输入文件大小告警阈值,单位为B(字节)、KB、MB或GB

如果指定的值无效,那么将使用默认值。

如果指定的源文件大小超过指定的值,则会向用户显示以下警告消息:

*****************
[WARNING] : Migration of the following files(>100KB) will take more time:
bigfile001.sql
bigfile008.sql
*****************

10 KB - 1 GB

10MB

MaxFileSizeWarning=10MB

  • MaxSqlLen

指定待迁移的单个查询的最大长度。

如果指定的值无效,则工具会将其重置为默认值,并且控制台上将显示以下错误消息:

The query length parameter (MaxSqlLen) value is out of range. Resetting to default value.

如果输入查询超过指定的最大长度,则查询迁移会预验证失败。工具会跳过该查询,并记录以下错误消息:

2018-07-06 12:05:57,598 ERROR TeradataBulkHandler:195 Error occurred during processing of input in Bulk Migration. PreQueryValidation failed due to: Invalid termination; OR exclude keyword found in query; OR query exceeds maximum length (MaxSqlLen config parameter). filename.sql for Query in position : xx

1 .. 52,428,800字节

(1字节 - 50 MB)

1048576

(1 MB)

MaxSqlLen=1048576

  • initialJVMMemory

设置初始内存

N/A

256 MB

initialJVMMemory=256MB

表明内存达到256MB时,进程将启动。

  • maxJVMMemory

设置最大内存

N/A

1024 MB

maxJVMMemory=2048m

表明内存达到2048 MB时,进程将启动。

  • formatterrequired

若该参数配置发生改变,工具将无法按预期运行。

  • true
  • false

true

formatterrequired=true

  • prevalidationFlag

若该参数配置发生改变,工具将无法按预期运行。

  • true
  • false

true

prevalidationFlag=true

  • commentSeparatorFlag

若该参数配置发生改变,工具将无法按预期运行。

  • true
  • false

true

commentSeparatorFlag=true

  • queryDelimiter

若该参数配置发生改变,工具将无法按预期运行。

N/A

4 Hours

Timeout=4

  • blogicDelimiter

若该参数配置发生改变,工具将无法按预期运行。

N/A

4 Hours

Timeout=4

  • formattedSourceRequired

格式化源的值可以为true或者false。

  • true
  • false

true

formattedSourceRequired=true

  • target_files

目标文件的值可以为overwrite,or delete,或cancel。

  • overwrite
  • delete
  • cancel

overwrite

target_files=overwrite

  • encodingFormat

编码格式额值可以为UTF8 或or GB2312。

  • UTF8
  • GB2312

UTF8

encodingFormat=UTF8

  • NoOfThreads

  

线程数的值可以是基于当前系统的任何整数。

N/A

24

NoOfThreads=24

  • MaxFileSizeWarning

设置文件的最大大小。

N/A

10MB

MaxFileSizeWarning=10MB

  • MaxSqlLen

设置查询的最大长度。

N/A

1048576

MaxSqlLen=1048576

  • initialJVMMemory

初始化JVM内存。

N/A

1000m

initialJVMMemory=1000m

  • maxJVMMemory

最大JVM内存。

N/A

40000m

maxJVMMemory=40000m

  • exceptionHandler

异常注释的值可以为true或false。

  • true
  • false

false

exceptionHandler=False

  • TxHandler

事务命令注释的值可以是true或false。

  • true
  • false

true

TxHandler=true

  • foreignKeyHandler

外键约束注释的值可以是true或false。

  • true
  • false

true

foreignKeyHandler=true

  • globalTempTable

值可以是global或local。

  • global
  • local

local

globalTempTable=LOCAL

onCommitDeleteRows

删除的值可以为DELETE或PRESERVE。

  • DELETE
  • PRESERVE

PRESERVE

onCommitDeleteRows=PRESERVE

maxValInSequence

值序列的最大值应大于0。

N/A

9223372036854775807

maxValInSequence=922337203685477580

mergeImplementation

Merge Implementation有两种类型,一种使用WITH子句,另一种使用分割查询。值可以是With,Split或None。

  • With
  • Split
  • None

None

mergeImplementation=None

RemoveListPartition

LIST分区的值可为 true或者false。

若设置为true,将注释掉LIST分区。

  • true
  • false

true

RemoveListPartition=true

RemoveHashPartition

HASH 分区的值可为true或者false。

若设置为true,将注释掉HASH分区 。

  • true
  • false

true

RemoveHashPartition=true

RemoveListSubPartition

LIST子分区的值可为 true或false。

若设置为true,将注释掉 LIST子分区。

  • true
  • false

true

RemoveListSubPartition=true

RemoveHashSubPartition

HASH子分区的值可为 true或false

若设置为true,将注释掉HASH子分区。

  • true
  • false

true

RemoveHashSubPartition=true

RemoveRangeSubPartition

RANGE子分区的值可为true或 false。

若设置为true,将注释掉RANGE子分区。

  • true
  • false

true

RemoveRangeSubPartition=true

MigSupportSequence

SEQUENCE迁移的值可为true或false。

若设置为true,将创建脚本改变为插入脚本。

  • true
  • false

false

MigSupportSequence=false

RemovePartitionTS

删除分区TS注释的值可以为true或false。

若设置为true,将注释掉表空间。

  • true
  • false

true

RemovePartitionTS=true

BitmapIndexSupport

BitmapIndex的值可以为 comment或btree。

  • comment
  • btree

comment

BitmapIndexSupport=comment

pkgSchemaNaming

pkg Schema Naming的值可以为true或false。

若设置为true , schema1.package1#procedure1会将被变为package1.procedure1。

若设置为false,schema1.package1#procedure1将被删除。

  • true
  • false

true

pkgSchemaNaming=true

plsqlCollection

值可以为varray, localtable,或none。

  • varray
  • localtable
  • none

varray

plsqlCollection=varray

commentStorageParameter

create table中存储参数的值可以为true或false。

若设置为true,将注释掉存储参数。

  • true
  • false

true

commentStorageParameter=true

MigSupportForListAgg

值可以为true或 false。

  • true
  • false

true

MigSupportForListAgg=true

MigSupportForRegexFunc

值可以true或false。

  • true
  • false

true

MigSupportForRegexFunc=true

commentPragmaAutomationTrans

值可以为true或false。

  • true
  • false

true

commentPragmaAutomationTrans=true

supportJoinOperator

值可以为true或false。

  • true
  • false

false

supportJoinOperator=false

migInsertWithTableAlias

值可以为true或false。

  • true
  • false

true

migInsertWithTableAlias=true

varraySize

Varray数据类型的大小。

N/A

1024

varraySize=1024

varrayObjectSize

Varray对象数据类型的大小。

N/A

10240

varrayObjectSize= 10240

migrationScope

值可以为pkgSplit或completeMigration。

  • pkgSplit
  • completeMigration

completeMigration

migrationScope=completeMigration

migSupportConnectBy

值可以为true或 false。

  • true
  • false

true

migSupportConnectBy=true

migSupportUnnest

值可以为true或 false。

  • true
  • false

true

migSupportUnnest=true

extendedGroupByClause

extendedGroupByClause的迁移支持的值可以为grouping sets,cube,或rollup。

  • true
  • false

false

extendedGroupByClause=false

supportDupValOnIndex

对DUP_VAL_ON_INDEX - UNIQUE_VIOLATION(V1R8)或OTHERS(旧版本)的迁移支持

  • UNIQUE_VIOLATION
  • OTHERS

UNIQUE_VIOLATION

supportDupValOnIndex=UNIQUE_VIOLATION

pkgvariable

值可以为localtable, sys_set_context或none。

  • localtable
  • sys_set_context
  • none

localtable

pkgvariable=localtable

addPackageNameList

值可以为true或false。

  • true
  • false

true

addPackageNameList=true

addPackageTag

值可以为true或false。

  • true
  • false

true

addPackageNameList=true

addGrantLine

值可以为true或false。

  • true
  • false

false

addGrantLine = false

MigDbmsLob

值可以为true或false。

  • true
  • false

true

MigDbmsLob=true

uniqueConsForPartitonedTable

  

分区表的唯一键或主键约束。值可以是comment_partition,comment_unique或none。

  

  • comment_partition
  • comment_unique
  • none

comment_partition

uniqueConsForPartitonedTable=comment_partition

  • volatile

volatile值可以为 local temporary或unlogged。

  • local temporary
  • unlogged

LOCAL TEMPORARY

volatile=LOCAL TEMPORARY

  • distributeByHash

值可以是one或many。

  • one
  • many

MANY

distributeByHash=MANY

  • rowstoreToColumnstore

从行存储到列存储的值可以为true或false。

  • true
  • false

false

rowstoreToColumnstore=false

  • inToExists

IN和NOT IN运算符的查询优化。值可以是true或false。若设置为true,'IN'/'NOT IN'运算符将更改为'EXISTS'/'NOT EXISTS'。

  • true
  • false

false

inToExists=false

  • session_mode

应用程序设置会话模式以实现最佳性能。值可以是teradata或ANSI。

  

在Teradata系统中,表可以是MULTISET或SET。Teradata模式下,默认为SET。ANSI模式下,默认值为MULTISET。

  

  • teradata
  • ANSI

teradata

session_mode=teradata

  • deleteToTruncate

值可以为true或 false。

若设置为true,删除关键字将变为Truncate true。

  • true
  • false

false

deleteToTruncate=false

  • extendedGroupByClause

对扩展组的迁移支持可以是grouping sets,cube,或rollup。

  • grouping sets
  • cube
  • rollup

false

extendedGroupByClause=false

  • tdMigrateZEROIFNULL

ZERO IF NULL迁移支持的值可为true或false。

  • true
  • false

true

tdMigrateZEROIFNULL=true

  • tdMigrateNULLIFZERO

NULL IF ZERO迁移支持的值可为true或false。

  • true
  • false

true

tdMigrateNULLIFZERO=true

  • tdMigrateDollar

DOLLAR符号迁移支持的值可为true或false。

  • true
  • false

true

tdMigrateDollar=true

  • tdMigrateALIAS

别名迁移支持的值可为true或false。

  • true
  • false

false

tdMigrateALIAS=false

  • tdMigrateLOCKOption

锁迁移支持的值可为true或false。

  • true
  • false

false

tdMigrateLOCKOption=false

  • tdMigrateVIEWCHECKOPTION

检查迁移支持的值可以为true或false。

  • true
  • false

false

tdMigrateVIEWCHECKOPTION=false

  • tdMigrateCharsetCase

图表集案例迁移支持的值可以为true或false。

  • true
  • false

false

tdMigrateCharsetCase=false

  • terdataUtilities

对teradata实用程序的迁移支持的值可以为true或false。

  • true
  • false

true

terdataUtilities=true

  • unique_primary_index_in_column_table

不支持为列表创建唯一索引,参数值可为true或false。

  • true
  • false

true

unique_primary_index_in_column_table=true

  • fileExtension

如果该参数有任何修改,则工具将无法按预期运行。

  • csv
  • txt
  • sql

sql

fileExtension=sql

说明:

如果为配置参数提供了错误或无效值,Migration Tool将采用该参数的默认值。

设置TOOL_HOME

TOOL_HOME指定Migration Tool软件包的解压目录。该目录必须包含config文件夹,lib文件夹,以及migrate.sh和migration.jar,用以执行Migration Tool。

说明:

如果需要从其它路径执行Migration Tool,修改TOOL_HOME的值。

按照以下步骤在Linux中设置TOOL_HOME。

  1. 执行以下命令打开migrate.sh文件:

    vi migrate.sh

  2. 按i进入编辑模式修改TOOL_HOME的值。

    例如,将TOOL_HOME设置为/home/user/test/MigrationTool:

    export TOOL_HOME=/home/user/test/MigrationTool
    说明:

    如果TOOL_HOME的值包含空格,将值用双引号括起来。例如,如果路径为/home/user/test/Migration Tool,设置TOOL_HOME为"/home/user/test/Migration Tool"。

  3. 按Esc,输入:wq,按Enter保存路径并退出。

设置Java内存分配

Migration Tool支持通过参数控制Java虚拟机(JVM)的内存分配量,并预设默认值。

在迁移操作期间,如果内存使用超过设置的值,Migration Tool将提示“java.lang.OutOfMemoryError: GC overhead limit exceeded”错误消息并退出,此时用户可通过更改application.properties配置文件中的initialJVMMemory和maxJVMMemory 的值,以分配更多内存。

说明:

可用系统资源决定了内存分配量。

表2 JVM内存分配的控制参数

参数

说明

推荐取值

Xms

指定初始内存分配量,单位为MB。

该参数最小值为256 MB,最大值取决于可用的系统资源。

默认值:256

Xmx

指定内存分配量的上限,单位为MB。

该参数最小值为1024 MB,最大值取决于可用的系统资源。

默认值:1024

按照以下步骤在Linux中设置Java内存分配。

  1. 执行以下命令打开migrate.sh文件:

    vi migrate.sh

  2. 按i进入编辑模式设置Xms和Xmx

    例如,设置Xms和Xmx分别为256 MB和1024 MB。

    java -Xms256m -Xmx1024m -Dconfig.dir=$TOOL_HOME/config -Dlog4j.conf...

  3. 按Esc,输入:wq,按Enter保存路径并退出。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区