暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase 迁移评估OMA操作手册

IT那活儿 2021-08-25
2486

1. 准备OMA评估工具

oma-3.1.10.tar.gz

2. 上传至OB主机解压

tar xf oma-3.1.10.tar.gz
cd tmp/oma-3.1.10

3. 打开目录下的readme.txt

## OMA快速上手

 

OMA是一个集采集,评估,回放,验证为一体的OceanBase迁移评估工具,在将数据库从Oracle/MySQL迁移到OB的过程中进行功能和性能的评估,帮助

用户快速了解整个系统的迁移难度。

 

### 评估一个Oracle实例的对象

 

sh bin/start.sh --name task_name \  # 任务名称,可随意取值

--mode ANALYZE \                    # 分析模式

--from-type DB \                    # 来源为数据库

--evaluate-mode SOURCE_TARGET \     # 评估方式,如果是oracle请使用SOURCE_TARGET

--source-db-type ORACLE \           # 来源数据库类型

--source-db-version 12c \           # 来源数据库版本

--source-db-host 111.222.333.44 \   # 来源数据库地址

--source-db-port 1521 \             # 来源数据库端口

--source-db-user user \             # 来源数据库用户名

--source-db-password password \     # 来源数据库密码

--source-db-service-name serv.localdomain \ # 来源数据库service-name/也可以换成 --source-db-sid 表示SID

--schemas "SCHEMA1,SCHEMA2" \         # 需要评估的schema,多个可以用,分割,需要大写

--target-db-type OBORACLE \         # 目标类型,只能填OBORACLE

--target-db-version 2.2.70          # 目标版本,2.2.70表示2.2.7X版本和3.X,不用特意区分

 

 

 

### 评估一个MySQL实例

 

sh bin/start.sh --name task_name \      # 任务名称,可随意取值

--mode ANALYZE \                        # 分析模式

--from-type DB \                        # 来源为数据库

--evaluate-mode ONLY_TARGET \           # 评估方式,如果是mysql请使用ONLY_TARGET

--source-db-type MYSQL \                # 来源数据库类型

--source-db-version 5.7 \               # 来源数据库版本

--source-db-host 100.11.22.33 \         # 来源数据库地址

--source-db-port 3306 \                 # 来源数据库端口

--source-db-user user \                 # 来源数据库用户名

--source-db-password pass \             # 来源数据库密码

--schemas "yewu_test" \                 # 需要评估的schema,MYSQL暂不支持评估多个schema

--target-db-type OBMYSQL \              # 目标类型,固定值 OBMYSQL

--target-db-version 2.2.x               # 目标版本,固定值 2.2.x

 

### 评估Oracle的SQL语句(从GV$SQL中采集)

 

sh bin/start.sh --name test_11g \               # 任务名称,可随意取值

--mode ANALYZE \                                # 分析模式

--from-type COLLECT \                           # 来源为从数据库采集

--collect-start-time "2020-04-07\ 15:30:00" \   # 采集的SQL的开始时间,注意时间中间的空格需要\转义

--collect-end-time "2020-04-07\ 16:30:00" \     # 采集的SQL的结束时间,注意时间中间的空格需要\转义,无此参数表示到当前时间

--evaluate-mode SOURCE_TARGET \                 # 评估方式,如果是oracle请使用SOURCE_TARGET

--source-db-type ORACLE \                       # 来源数据库类型

--source-db-version 11g \                       # 来源数据库版本

--source-db-host 11.159.61.XX \                 # 来源数据库地址

--source-db-port 1521 \                         # 来源数据库端口

--source-db-user aaaaa \                        # 来源数据库用户名

--source-db-password bbbbb \                    # 来源数据库密码

--source-db-service-name orcl11g.us.oracle.com \# 来源数据库service-name/也可以换成 --source-db-sid 表示SID

--schemas "OBDBA" \                             # 需要评估的schema,不支持多schema

--target-db-type OBORACLE \                     # 目标端类型

--target-db-version 2.2.70 \                    # 目标端版本

--collect-filter "COMMAND_TYPE=3"               # 【注意】可选参数,评估中的附加过滤条件

--task-interval 15                              # 【注意】可选参数,有此参数表示每隔15秒重新运行一次评估,重新运行的开始时间为上次的结束时间,结束时间为当前时间,用来不间断采集SQL进行评估

 

 

### 从文本进行评估

文本中的SQL必须以单行的$$标识符进行分割,如

SELECT * FROM A;

$$

SELECT * FROM B;

$$

SELECT * FROM C;

$$

 

sh bin/start.sh --name test_11555g \

--mode ANALYZE \

--from-type TEXT \

--evaluate-mode SOURCE_TARGET \

--source-file "/Users/wuyinghao/Downloads/test.sql" \ # 文本文件路径

--source-db-type ORACLE \

--source-db-version 11g \

--schemas DEFAULT \

--target-db-type OBORACLE \

--target-db-version 2.2.70 \

--process-thread-count 5

 

 

### 查看报告

 

评估完成以后,会在report文件夹下面看到对应的报告,并且会在结束后在控制台打印出简报:

 

评估程序OMA运行完成,评估报告简报:

任务 : task_name-XXXXXXX 开始时间 : 2021.01.02 18:24:34 结束时间 : 2021.01.02 18:25:50

 

SCHEMA : yewu_test 评估耗时 : 75927 毫秒

+-------------------------------------------------------------------+

| schema: schema  | source: sourceDB      | target: targetDB        |

+-----------------+---------+---------+---------+---------+---------+

|  Object Type    |  pass   | convert | failure |  total  | percent |

+-----------------+---------+---------+---------+---------+---------+

| TABLE           | 360     | 0       | 2       | 362     |  99.4 % |

+-----------------+---------+---------+---------+---------+---------+

| PROCEDURE       | 1       | 0       | 0       | 1       | 100.0 % |

+-----------------+---------+---------+---------+---------+---------+

| TYPE            | 2       | 0       | 0       | 2       | 100.0 % |

+-----------------+---------+---------+---------+---------+---------+

| VIEW            | 3       | 0       | 0       | 2       | 100.0 % |

+-----------------+---------+---------+---------+---------+---------+

 

### 命令行模式

 

命令行模式用来对单条SQL语句进行快速评估

直接使用 sh bin/start.sh --mode CONSOLE 进入命令行模式,输入以后屏幕会出现以下打印,并开启内部shell:

 

========================================

欢迎使用 OMA 命令行交互模式,直接对SQL语句进行评估

 

请在命令行直接输入你的SQL语句,并以$$为结尾行,系统将自动对SQL进行评估

输入oracle并回车,切换为oracle模式,输入mysql并回车,切换为mysql模式

exit 或者 Ctrl+D结束程序;Ctrl+C取消本次输入

 

示例 : 评估Oracle

OMA >> (ORACLE MODE) ] oracle SELECT *

FROM AA

$$

 

OMA >> (ORACLE MODE) ]

 

========================================

可以直接在终端输入SQL语句,换行加$$结尾完成输入,可以获得此SQL的评估结果,用来进行快速验证,默认使用oracle模式,

如需切换为mysql,直接输入mysql并回车,控制台将变成mysql模式:

OMA >> (MYSQL MODE) ]

 

有问题或者有DB-Replay需求,请联系:yinghao.wyh@alipay.com

4. 兼容性评估测试

sh bin/start.sh --name test_tbcs_sms \--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 1521 \--source-db-user dbauser \ # 用户需要访问数据字典的权限,建议是DBA角色--source-db-password xxxxxx \--source-db-service-name xxxxxx \--schemas "SMS,TBCS"\ # 这里schema需要大写!--target-db-type ORACLE \--target-db-version 2.2.70

执行效果如下:

5. 查看评估报告

进入到report目录下面,可以把zip包下载到windows服务器,用浏览器查看

浏览器查看

可以查看具体的兼容性详情

目前主要还是DBLINK不兼容。

END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论