#参数说明
在项目解压目录下,启动YMP前可以根据自己需要对部分参数进行配置。通过修改参数可以适配一些用户特定的需求,并且保证YMP任务的正常执行。
Note:
以下参数修改后均需要重启YMP才能生效,具体重启步骤请参考重启YMP指令参考。
# conf/db.properties
| 参数名 | 参数说明 | 默认值 |
|---|---|---|
| YASDB_PORT | 默认内置库默认端口号 | 8091 |
| YASDB_PASSWORD | 默认内置库sys用户默认密码密文,需要通过password指令修改,参见password指令 | Ymppw602. |
| YASDB_CHARACTER_SET | 默认内置库字符集,可选值:UTF8, ASCII, ISO88591, GBK | UTF8 |
| YASDB_MODE | 默认内置库语法模式,可选值:yashandb, mysql | yashandb |
# conf/application.properties
| 参数名 | 参数说明 | 默认值 |
|---|---|---|
| server.port | YMP启动占用的端口。 | 8090 |
| shiro.session.timeout | 用户登录后空闲过期时间,单位秒(s),默认15分钟。 | 900 |
| ymp_memory | YMP使用的最大堆内存,支持按绝对内存指定(如:4G)和按物理机实际内存的百分比指定(如:50%),当迁移达梦数据库时,此值可以适当调大(建议≥16G)。 | 4G |
| ymp_direct_memory | YMP使用的堆外内存,单位:GB。 | 2 |
| time_zone_id | YMP使用的时区ID,YMP时区需要和源端、目标数据库时区保持一致。 | GMT+8:00 |
| ymp.canSavePassword | 控制浏览器是否可以保存相关密码,包括平台登录用户密码和数据源添加用户密码。 | true |
| ymp.stat.interval | YMP内存采集频率,单位:MS。 | 2000 |
| ymp.heap.exceed.sleep | YMP内存不足时睡眠等待时间,单位:MS。 | 3000 |
| ymp.heap.slow.threshold | YMP内存阈值,单位:百分比。 | 80 |
| ymp.cpu.threshold | YMP CPU使用率阈值,单位:百分比。 | 80 |
| ymp.disk.io.threshold | YMP磁盘IO阈值,单位:百分比。 | 90 |
| spring.datasource.url | 内置库的JDBC URL,自定义内置库安装YMP时,改为自定义内置库的url。 | jdbc:yasdb://127.0.0.1:8091/yashan |
| spring.datasource.username | 内置库要连接的用户名称。 | YMP_DEFAULT |
| spring.datasource.password | 内置库要连接的用户的密码密文,需要通过password指令修改,参见password指令 | BPZ0VmrxlFoUgfm1UOS2pg |
| spring.datasource.largePoolSize | 内置库默认内部大数据块的总大小。 | 64M |
| spring.datasource.cursorPoolSize | 内置库默认共享缓存区中游标缓存区的内存大小。 | 64M |
| spring.datasource.defaultTableType | 默认内置库表类型,默认HEAP,可选HEAP/TAC/LSC。 | HEAP |
| spring.datasource.openCursors | 内置库默认每个会话可打开的游标数上限。 | 3000 |
| spring.datasource.sharePoolSize | 内置库默认共享缓存区使用的内存大小。 | 2G |
| spring.datasource.dateFormat | 内置库DATE类型的默认显示格式。 | yyyy-mm-dd hh24:mi:ss |
| spring.datasource.ddlLockTimeout | 内置库默认DDL加表锁等待超时的时间。 | 2 |
| report.schedule.time | 定时清理超过保存时间的报告CRON。 | 0 0 3 * * ? |
| task.parallel.max-num | YMP的最大并行任务数。 | 500 |
| commons.dataMigrateSpeed | 预计数据迁移速度,KB/s。修改会影响评估结果预计迁移时间的大小。 | 51200 |
| commons.objMigrateSpeed | 预计对象迁移速度,number/s。修改会影响评估结果预计迁移时间的大小。 | 200 |
| assessment.ddlCount | 评估任务单个会话获取DDL的数量,如果Oracle性能较差,则需要降低该值。 | 20 |
| assessment.maxThreadCount | 评估任务最多同时拥有的会话数,如果Oracle性能较差,则需要降低该值。 | 20 |
| assessment.rowidToVarchar | Oracle的ROWID和UROWID是否转换为VARCHAR类型 | true |
| isLscTable | 内置库表类型是否为LSC,默认为false。 | false |
| schemaBlackList.oracle | 拦截的Oracle数据源db/schema黑名单。 | ANONYMOUS,APEX_030200, APEX_PUBLIC_USER,APPQOSSYS,BI, CTXSYS,DBSNMP,DIP,EXFSYS, FLOWS_FILES,HR,IX,MDDATA, MDSYS,MGMT_VIEW,OE,OLAPSYS, ORACLE_OCM,ORDDATA,ORDPLUGINS, ORDSYS,OUTLN,OWBSYS,OWBSYS_AUDIT, PM,SCOTT,SH,SI_INFORMTN_SCHEMA, SPATIAL_CSW_ADMIN_USR, SPATIAL_WFS_ADMIN_USR,SYS, SYSMAN,SYSTEM,WMSYS,XDB,XS$NULL |
| schemaBlackList.mysql | 拦截的MySQL数据源db/schema黑名单。 | information_schema,mysql, performance_schema,sys |
| schemaBlackList.dm | 拦截的dm数据源db/schema黑名单。 | SYS,SYSDBA,SYSSSO,SYSAUDITOR,CTISYS |
| schemaBlackList.pg | 拦截的pg数据源db/schema黑名单。 | information_schema,pg_catalog,pg_toast |
| schemaBlackList.db2 | 拦截的db2数据源db/schema黑名单。 | |
| exp.sql.delete | 评估完成后是否删除SQL文件。 | true |
| isSpiltPartitionTable | 是否对超长分区表进行拆分。 | true |
| partitionsNumber | 拆分分区表时,alter语句中的分区个数。 | 100 |
| indexPartitionLength=1000 | 分区索引语句最大长度,超过该长度直接转为LOCAL语法,不再携带分区信息。 | 1000 |
| db2.installation.directory | db客户端安装路径,默认值为空,当该参数为空时,db2客户端指向yashan-migrate-platform/tools/db2_client。 | |
| migration.rename | 迁移SCHEMA改名功能是否开启,默认为false。 | true |
| migration.csvfile.Path | 导出的表数据CSV文件保存路径,默认在安装路径的./tmp/下,修改的新路径,需保证系统所在用户拥有读写权限,参考:chmod 777 xxx/tmp/。 | ${ymp.home}/tmp/ |
| migration.character_set | dts导出方式迁移使用的编码,要求源库和目标库是一致,默认值:UTF8,可选项[GBK, UTF8, GB18030]。 | UTF8 |
| migration.national_character_set | dts导出方式下Oracle在的导出时的national编码,默认值:UTF8,可选项: [UTF8, GBK]。 | UTF8 |
| migration.rowBuffer | 全量数据迁移每行允许的最大数据量范围,单位M,取值范围:[1,1023],行内无法迁移1G及以上的数据,请合理设置任务JDBC行内导出的所有LOB字段最大大小。 | 2 |
| checkTask.datasource.max-connection | 校验任务限制每个数据源支持的最大连接数。 | 500 |
| checkTask.datasource.connection-timeout | 校验任务获取连接超时时间,单位:ms。 | 10000 |
| checkTask.datasource.minimum-idle | 校验任务获取的连接池中维持的最小连接数。 | 0 |
| checkTask.task.parallel.max-num | 校验任务的最大并行任务数。 | 20 |
| checkTask.subTask.parallel.max-num | 校验任务最大并行校验表,即一个任务多少个表在同时校验。设置超出会自动配置到该值。 | 200 |
| checkTask.sqlBatchSize | SQL语句批处理数目。 | 500 |
# conf/properties-validation-rules.yml
YMP启动时会对conf/application.properties和conf/db.properties参数进行校验,提前规避因错误配置导致运行期异常。
校验规则外部化:YashanDB将所有参数校验规则统一维护在独立的配置文件
properties-validation-rules.yml中,支持规则的外部化管理与自定义覆盖,具体机制如下:- 内置规则(默认):YMP已内置一套完整的校验规则,无需额外配置即可直接使用。
- 外置规则:用户可根据实际需求,在
conf/中新建同名properties-validation-rules.yml文件,并在其中按格式定义或修改校验规则。新建文件后:- YMP将自动加载用户文件中定义的规则
- 用户自定义规则可覆盖对应参数的内置规则
- 未在用户文件中定义的参数,仍沿用系统内置规则
校验规则参数多样化:
非空校验:
必填项:server.port、time_zone_id、spring.datasource.url、spring.datasource.username、spring.datasource.password等参数。
可选项:ymp.logging.level、spring.datasource.defaultTableType、migration.character_set、migration.national_character_set等参数。
数值范围校验:对数字型参数校验合法区间,超出则报错。
格式校验:支持时区ID、CRON表达式、枚举可选值、布尔值等类型校验。
properties-validation-rules.yml文件默认不对外展示。若用户需要修改校验规则,需在conf目录下新建该文件。
# YMP properties validation rules configuration
properties:
server.port:
required: true
type: number
range: [1, 65535]
isLscTable:
type: boolean
ymp.logging.level:
type: options
options: [INFO, DEBUG]
time_zone_id:
required: true
type: timeZone
spring.datasource.sharePoolSize:
type: size
report.schedule.time:
required: true
type: cron

