首批通过分布式安全可靠测评,为关键业务系统打造
产品形态
更新时间:2024-03-01 18:15:42
本文为您介绍 OceanBase 迁移评估工具(OceanBase Migration Assessment,OMA)的命令行形式以及命令行的参数。
命令行形式
OMA 直接使用命令行模式运行。
如果是 Windows 环境,请使用
start.bat。如果是 Linux 环境,请使用
sh bin/start.sh。
OMA 工具的一个运行示例如下:
user@Server1 oma-x.x.x % sh bin/start.sh --name test_11g \
--mode ANALYZE \
--from-type DB \
--evaluate-mode SOURCE_TARGET \
--source-db-type ORACLE \
--source-db-version 11g \
--source-db-host xxx.xxx.xxx.xxx \
--source-db-port 1234 \
--source-db-user user \
--source-db-password password \
--source-db-service-name orcl11g.example.oracle.com \
--schemas "OBDBA" \
--target-db-type OBORACLE \
--target-db-version x.x.xx
____ ____ __ __ _ _ _ _
/ __ \ | _ \ | \/ (_) | | (_) /\ | |
| | | | ___ ___ __ _ _ __ | |_) | __ _ ___ ___ | \ / |_ __ _ _ __ __ _| |_ _ ___ _ __ / \ ___ ___ ___ ___ ___ _ __ ___ ___ _ __ | |_
| | | |/ __/ _ \/ _` | '_ \| _ < / _` / __|/ _ \ | |\/| | |/ _` | '__/ _` | __| |/ _ \| '_ \ / /\ \ / __/ __|/ _ \/ __/ __| '_ ` _ \ / _ \ '_ \| __|
| |__| | (_| __/ (_| | | | | |_) | (_| \__ \ __/ | | | | | (_| | | | (_| | |_| | (_) | | | | / ____ \\__ \__ \ __/\__ \__ \ | | | | | __/ | | | |_
\____/ \___\___|\__,_|_| |_|____/ \__,_|___/\___| |_| |_|_|\__, |_| \__,_|\__|_|\___/|_| |_| /_/ \_\___/___/\___||___/___/_| |_| |_|\___|_| |_|\__|
__/ |
|___/
OceanBase Migration Assessment version : x.x.xx
Power by Ant Group
[INFO ] 16:24:27.165 [main] c.a.oceanbase.oma.command.Commander - Start OceanBase Migration Assessment version [x.x.xx] ...
[INFO ] 16:24:27.168 [main] c.a.oceanbase.oma.command.Commander - command parameters :
--name test_11g
--mode ANALYZE
--from-type DB
--evaluate-mode SOURCE_TARGET
--source-db-type ORACLE
--source-db-version 11g
--source-db-host xxx.xxx.xxx.xxx
--source-db-port 1234
--source-db-user user
--source-db-password user
--source-db-service-name orcl11g.example.oracle.com
--schemas OBDBA
--target-db-type OBORACLE
--target-db-version x.x.xx
[INFO ] 16:24:27.179 [main] c.a.o.o.s.ScheduleServiceImpl - local jdbc jdbc:sqlite:./db/oma.sqlite
......
================================================================
[INFO ] 16:25:15.638 [main] c.a.o.o.s.ScheduleServiceImpl - all schema finished ...
[INFO ] 16:25:15.638 [main] c.a.o.o.s.ScheduleServiceImpl - 评估完成,压缩评估报告,可能需要一定时间,请耐心等待...
评估程序OMA运行完成,评估报告简报:
任务 : test_11g-20210527_162427 开始时间 : 2021.05.27 16:24:27 结束时间 : 2021.05.27 16:25:15
SCHEMA : OBDBA 评估耗时 : 47895 毫秒
+-------------------------------------------------------------------+
| schema: schema | source: sourceDB | target: targetDB |
+-----------------+---------+---------+---------+---------+---------+
| Object Type | pass | convert | failure | total | percent |
+-----------------+---------+---------+---------+---------+---------+
| TABLE | 186 | 0 | 1 | 187 | 99.5 % |
+-----------------+---------+---------+---------+---------+---------+
| PROCEDURE | 4 | 0 | 0 | 4 | 100.0% |
+-----------------+---------+---------+---------+---------+---------+
| TRIGGER | 0 | 0 | 1 | 1 | 0.0 % |
+-----------------+---------+---------+---------+---------+---------+
| PACKAGE | 1 | 0 | 0 | 1 | 100.0% |
+-----------------+---------+---------+---------+---------+---------+
| SEQUENCE | 2 | 0 | 0 | 2 | 100.0% |
+-----------------+---------+---------+---------+---------+---------+
| INDEX | 127 | 0 | 0 | 127 | 100.0% |
+-----------------+---------+---------+---------+---------+---------+
| VIEW | 9 | 0 | 0 | 9 | 100.0% |
+-----------------+---------+---------+---------+---------+---------+
| PACKAGE BODY | 1 | 0 | 0 | 1 | 100.0% |
+-----------------+---------+---------+---------+---------+---------+
================================================================
对于 convert 和 failure 的情况,您可以联系 OMA 的技术服务人员解决问题。
命令行参数说明
除 DuseUidToSchemaMap 和 DuserAndPassword 前使用单横线(-)外,其它参数统一使用双横线(--)输入。下表为您介绍 start.sh 脚本的各项参数。
| 参数 | 描述 | 可选值 | 默认值 | 适用场景 |
|---|---|---|---|---|
| name | 任务的名称。 | 任意字符串 | 随机生成唯一 ID | 所有场景 |
| mode | 任务模式。 |
|
analyze | 所有场景 |
| target-db-type | 目标端的类型。 | OBORACLE / OBMYSQL |
|
所有场景 |
| target-db-version | 目标端的版本。 | 2.2.50、2.2.70、3.1.20、3.2.1 和 3.2.2
|
Oracle 和 DB2 LUW 为 3.1.2,MySQL、PostgreSQL 和 TiDB 为固定值 2.2.x | 所有场景 |
| target-db-host | 目标端的地址。 | -- | 无默认值 | 回放场景 |
| target-db-port | 目标端的端口。 | -- | 无默认值 | 回放场景 |
| target-db-user | 目标端的用户名。 | -- | 无默认值 | 回放场景 |
| target-db-password | 目标端的密码。 | -- | 必填,无默认值 | 回放场景 |
| target-db-schemas | 目标端的 Schemas。 | -- | 必填,无默认值 | 回放场景 |
| source-file | 当数据来源为 TEXT、Mybatis、iBatis 或 OMA 时使用,表示来源的文件路径。 | Mybatis 和 iBatis 模式支持文件夹,其它模式仅支持单个文件 | 必填,无默认值 | 所有场景 |
| from-type | 数据来源。 |
|
必填,无默认值 | 兼容性评估 |
| evaluate-mode | 评估类型。 |
|
必填,无默认值 | 兼容性评估 |
| source-db-type | 来源数据库的类型。 | 支持 ORACLE、MYSQL、POSTGRESQL、TIDB、DB2 LUW、RDS MYSQL、POLARMYSQL、POLARO 和 DRDS。 | ORACLE | 兼容性评估 |
| source-db-version | 来源数据库的版本。 |
|
Oracle 数据库的默认值为 11g,其它类型的数据库暂无默认值 | 兼容性评估 |
| source-db-host | 源数据库的地址。 | -- | 必填,无默认值 | 兼容性评估 |
| source-db-port | 源数据库的端口。 | -- | 必填,无默认值 | 兼容性评估 |
| source-db-user | 源数据库的用户名。 | 如果用户名中有空格,需要使用引号将用户名引起来。例如,"'sys as dba'"。 | 必填,无默认值 | 兼容性评估 |
| source-db-password | 源数据库的密码。 | -- | 必填,无默认值 | 兼容性评估 |
| source-db-sid | 源数据库的 SID。 | -- | 和 source-db-service-name 任选其一,无默认值 |
兼容性评估 |
| source-db-service-name | 源数据库的 Service name,您也可以替换为 source-db-sid 表示 SID。 |
-- | 和 source-db-sid 任选其一,无默认值 |
兼容性评估 |
| source-db-name | 当源端为 DB2 LUW 数据库时,用于指定该数据库的名称。 | -- | 必填,无默认值 | 兼容性评估 |
| schemas | Schema。 |
|
必填,无默认值 | 兼容性评估 |
| objects | 需要评估的对象,使用英文逗号(,)分隔。 | "TABLE,INDEX,VIEW,SEQUENCE, SYNONYM,FUNCTION, PROCEDURE, PACKAGE,TRIGGER,PACKAGE BODY, TYPE,TYPE BODY" | 全部对象 | 兼容性评估 |
| collect-start-time | 数据来源为 COLLECT 时使用,表示收集的起始时间。 字符串,格式为 "YYYY-MM-DD HH:mm:ss"。 | -- | 必填,无默认值 | 兼容性评估 |
| collect-during-time | 数据来源为 COLLECT 时使用,表示收集的持续时间(分钟)。 | 整数,单位为分钟 | 必填,无默认值 | 兼容性评估 |
| collect-loop | 数据来源为 COLLECT 时使用,表示是否持续采集。 | 布尔值,有此参数为 true | false | 兼容性评估 |
| collect-interval | 数据来源为 COLLECT 时使用,表示收集的时间间隔(秒)。 | 整数,单位为秒 | 必填,无默认值 | 兼容性评估 |
| store-in-db | 是否存储结果至数据库中。OMA 工具自带一个 SQLite 数据库,可以存储结果至该数据库中。 |
|
false | 兼容性评估 |
| collect-filter | 过滤条件。 | 自定义过滤条件。 --collect-filter "1=1" 的情况将不进行任何过滤 |
没有该参数的情况下,默认过滤条件为 COMMAND_TYPE=3 AND SERVICE!='SYS@USERS' |
兼容性评估 |
| collect-end-time | 采集结束时间。 | 例如,2021-04-07\ 19:00:51,请注意中间的空格有 \ 转义符。 | 必填,无默认值 | 兼容性评估 |
| scan-sql | 采集执行的 SQL 语句。 | 指定 SQL 语句,语句需要使用双引号引起来。同时,如果 SQL 语句中引用了表名带有 $ 的表,需要进行转义。 例如, --scan-sql "\"SELECT sql_fulltext FROM v\\\$sql where rownum < 10\"" |
无默认值 | 兼容性评估,且 from-type 为 COLLECT、源端为 Oracle |
| task-interval | 不填写该参数表示只采集一次,否则每隔指定秒数会重新运行一次任务,适用于长期采集任务。 | -- | 无默认值 | 兼容性评估 |
| collect-filter | 自定义过滤条件。添加为 " " 的情况将不进行任何过滤,注意中间有个空格。 | -- | 无默认值 | 兼容性评估 |
| useUidToSchemaMap | 使用 Oracle 负载信息解析 11g 的 Oracle 文件时,该参数用于表示 UID 至 Schema 的映射关系。 注意: 该参数前使用的是单横线(-)。 |
使用冒号(:)分隔用户的 UID 和 Schema 名称,多个映射关系之间使用英文逗号(,)分隔。 例如, -D useUidToSchemaMap=11:SCHEMA1,22:SCHEMA2 |
必填,无默认值 | 性能评估 |
| replay-phase | 回放流程。 回放包括采集、分析和发送三个阶段,该参数指定当前命令对应的阶段。 | COLLECT、ANALYZE 和 SEND 如果选择 COLLECT,且 with-reduce 参数配置为 true,则采集和分析阶段合并到一条命令运行。 | 必填,无默认值 | 性能评估 |
| with-reduce | 是否合并采集和分析阶段。 通过指定该参数可以将采集阶段和分析阶段合并到一条命令运行。 | 如果填写该参数,表示 true。如果未填写该参数,表示 false。 如果该参数为 true,则 replay-phrase 参数只能选择 COLLECT。 | false | 性能评估 |
| nls-format | OceanBase 数据库端的 date format 格式,用于转换 date 格式。 使用 show variables like '%nls%format%';查看具体的 nls 配置。 |
-- | 如果不填写该参数,默认为 "DD-MON-RR" | 性能评估 |
| split-count | 分片数。 | -- | 必填,无默认值 | 性能评估 |
| source-tenant | 需要采集的租户名称。 | -- | 必填,无默认值 | 性能评估 |
| parallel-count | 并行处理线程数。 | 线上库使用 20。 | 5 | 性能评估 |
| replay-process-name | 回放进程的名称。 | -- | 无默认值 | 性能评估 |
| delay-start-time | 开始回放的时间。例如,delay-start-time 5,表示 5 秒后开始回放。 |
-- | 无默认值 | 性能评估 |
| replay-scale | 回放倍数,默认按照原始速度回放。 | -- | 1 | 性能评估 |
| warm-up | 系统预热时间。由于回放时存在冷启动问题,需要配置一个预热时间,单位为秒。 | -- | 0 | 性能评估 |
| replay-sample | 抽样率,0~1 之间。默认为 1,即全抽样。 | -- | 1 | 性能评估 |
| max-parallel | 最大线程数。 | 不能超过 400。 | 400 | 性能评估 |
| target-db-tenant-cluster | 租户和集群名,使用#分开。前面是租户,后面是集群。目前多个 USER 回放仅支持同一租户下的多用户。 | -- | 无默认值 | 性能评估 |
| userAndPassword | 登录的用户名和密码。 注意: 该参数前使用的是单横线(-)。 |
使用冒号(:)分隔用户名和密码,每组之间使用英文逗号(,)分隔。 例如,-D userAndPassword=user1:password1,user2:password2 |
无默认值 | 性能评估 |
| hide-detail | 报告中是否隐藏评估语句细节。 | 指定该参数时,报告中不显示待评估的语句,仅显示评估结果。不指定该参数时,正常生成报告。 | 默认为不指定该参数,正常生成报告。 | 兼容性评估 |
| tuning-mode | 开启调优模式。 | 如果填写该参数,表示 true。如果不填写该参数,表示 false。 | 无默认值 | 兼容性评估 |
| metadata-from | 调优需要的数据库信息来源。如果未填写 tuning-mode 参数,则无需指定该参数。 | 目前仅支持 jdbc。 | jdbc | 兼容性评估 |