- 简介
- 环境依赖
- 快速上手
- 配置文件
- 命令介绍
- mtk
- init-project
- config
- license
- mig
- show
- sync
- sync-schema
- sync-sequence
- sync-object-type
- sync-domain
- sync-wrapper
- sync-server
- sync-user-mapping
- sync-queue
- sync-table
- sync-nickname
- sync-rule
- sync-table-data
- sync-table-data-estimate
- sync-index
- sync-constraint
- sync-db-link
- sync-view
- sync-mview
- sync-function
- sync-procedure
- sync-package
- sync-trigger
- sync-synonym
- sync-table-data-com
- sync-alter-sequence
- sync-coll-statistics
- check-table-data
- gen
- gen completion
- encrypt
- convert-plsql
- report
- self
- mvd
- usql
- 图形化
- 常见问题
- Release
MTK Parameter
Parameter
autoAddMySQLAutoIncr
类型: bool
描述: 迁移到MySQL自动添加MySQL AUTO_INCREMENT
列
v2.8.0之前参数为true
,当原表不存在自增列,自动增加AUTO_INCREMENT
列,并把新增列设置为主键,原来主键改为唯一键.
v2.8.0之后参数为true
,当原表不存在自增列,自动增加AUTO_INCREMENT
列,并把新增列设置为UNIQUE键,原来主键保持不变.
v2.9.6之后参数为true
- 当原表不存在自增列
- 原表存在PK_ID列,不在处理
- 自动增加AUTO_INCREMENT列,并把新增列设置为主键,原来主键变为唯一键.
- 当原表存在自增列
- 源主键第一列为自增列保持不变
- 源唯一键第一列为自增列变为主键,主键变为唯一键
- 源表存在自增列单列索引变为主键,主键变为唯一键
- 以上都不存在添加主键,源主键变为唯一键,其他保持不变
PK_ID BIGINT UNSIGNED UNIQUE KEY AUTO_INCREMENT NOT NULL [INVISIBLE]
- MySQl 8.0.23 之前为
visible
- MySQl 8.0.23 为
invisible column
- 原表存在
PK_ID
列,不在处理
MySQL supports invisible columns as of MySQL 8.0.23.
An invisible column is normally hidden to queries, but can be accessed if explicitly referenced.
Prior to MySQL 8.0.23, all columns are visible.
在某下场景下需要配合ignoreTabPartition参数使用. 如分区表分区键不包含主键
-
DB2迁移到MySQL
-
DB2
CREATE TABLE MTK1.TAB_PK_TEST ( COL1 VARCHAR(10) NOT NULL, ID BIGINT NOT NULL, COL2 VARCHAR(10), COL3 VARCHAR(10) ) IN USERSPACE1 ORGANIZE BY ROW
-
MySQL
CREATE TABLE db2_mtk.tab_pk_test ( -- 自动增加自增列并设置主键约束 pk_id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL INVISIBLE, col1 VARCHAR(10) NOT NULL, id BIGINT NOT NULL, col2 VARCHAR(10), col3 VARCHAR(10), UNIQUE KEY ( col1 ) )
-
默认值: false
新增于: v2.1.1
autoAddMySQLAutoIncrTabList
类型: []string
描述: 配合autoAddMySQLAutoIncr
参数使用.
配置哪些表自动增加auto_incr
列. 默认为空代表为全部表.
参数不区分大小写
- "TABLE_1" 迁移对象中所有表名为TABLE_1的表
- "Schema1.TABLE_1" 迁移对象中Schema1下的TABLE_1的表
默认值: null
示例:
autoAddMySQLAutoIncrTabList Example
{
"autoAddMySQLAutoIncrTabList": [
"TABLE_1",
"SCHEMA1.TABLE_1"
]
}
新增于: v2.2.1
ignoreNotSupportDefault
类型: bool
描述: 支持忽略部分不支持列默认值.如Oracle的sys_guid
。MTK会内嵌白名单进行忽略。
默认值: false
replaceZeroDate
类型: string
描述: openGauss/MogDB/PostgreSQL 时间格式不支持 0000-00-00
. 配置此参数会进行对应替换. 替换的范围如下:
- 列默认值
- 存储过程/函数中的SQL语句
When find a "zero" date:
0000-00-00 00:00:00
it is replaced by a NULL.This could be a problem if your column is defined with NOT NULL constraint. If you can not remove the constraint,
use this directive to set an arbitral date that will be used instead.
You can also use -INFINITY if you don't want to use a fake date.
示例:
Replace Zero Date Example
{
"replaceZeroDate": "1970-01-01 00:00:00"
}
virtualColToNormalCol
类型: bool
描述: 是否把源库虚拟列转成目标库的正常列.
默认值: false
可选值:
- true
- false
virtualColConv
类型: map[string]string
描述: 虚拟列表达转换功能.
示例:
virtualColConv example
{
"virtualColConv": {
"LEFT(HOST,POSSTR(HOST,':')-1)": "SPLIT_PART(HOST,':',1)",
"TRUNC_TIMESTAMP(SNAPTIME,'HH')+ (MINUTE(SNAPTIME)/10*10 +10) MINUTES": "date_trunc('hour',snaptime) + (date_part('minute',snaptime) / 10 +1)::int * interval '10 min'"
}
}
mySQLToOgCharExpression
类型: string
描述: MySQL 迁移到 openGauss 针对 char/varchar列进行计算列长表达式. 默认不计算 如 * 3
表示原来到长度*3
Deprecated: mtk scales up the length based on the db type,column type, db compatibility mode
convertOracleIntegerToNumeric
类型: bool
描述: 转换Oracle的Integer类型为NUMERIC. 支持openGauss/MogDB/PostgreSQL
默认值: false
可选值:
- true
- false
enableOgBlobClob
类型: bool
描述: 迁移其他数据库的Blob、Clob为openGauss的Blob、Clob.
默认值: false
可选值:
- true
- false
skipColumnType
类型: map[string]int
描述: 迁移时跳过某个数据类型列
格式为: "列类型": option
- 1 不创建列并不迁移数据
- 2 创建列但不迁移数据
可选值:
- 0
- 1
- 2
示例:
Skip ColumnType Example
{
"skipColumnType": {
"COL_TYPE_1": 1,
"COL_TYPE_2": 2
}
}
skipColumnName
类型: map[string]int
描述: 迁移时跳过某个列
优先级高于 skipColumnType
格式为 "schema.table_name.column": option
- 1 不创建列并不迁移数据
- 2 创建列但不迁移数据
可选值:
- 0
- 1
- 2
示例:
Skip ColumnName Example
{
"skipColumnName": {
"SCHEMA1.TAB_01.COL1": 1,
"SCHEMA1.TAB_01.COL2": 2
}
}
charLengthChangeExclude
类型: []string
描述: 跨字符集迁移时,针对CHAR类型指定表达式,对列名进行匹配并不进行长度扩充. 注意忽略大小写问题.
^update_time*
忽略列名开头为update_time
的列^update_time
忽略列名为update_time
的列(?i)^update_time$
忽略列名大小写的情况下update_time
的列.
示例:
Char Length Change Exclude Example
{
"charLengthChangeExclude": [
"^update_time*",
"^visit_date$",
"(?i)^visit_date$"
]
}
新增于: v2.5.2
enableCharTrimRightSpace
类型: bool
描述: 针对char迁移为varchar允许截取char
类型右侧空格. 只支持目标端为openGauss/MogDB
默认值: false
可选值:
- true
- false
新增于: v2.7.1
customColMap
类型: map[string]SQLType
描述: 自定义列类型映射,只支持openGauss和MogDB
示例:
Custom Column Type Map
{
"customColMap": {
"col_type_char": {
"defaultLength2": 0,
"defaultLength": 0,
"name": "col_type_varchar"
}
}
}
新增于: v2.9.3