使用OMA评估MySQL兼容性

OMA快速上手

OMA是一个集采集,评估,回放,验证为一体的OceanBase评估工具,在将数据库从Oracle/MySQL迁移到OB的过程中进行功能和性能的评估,帮助
用户快速了解整个系统的迁移难度。

首先先阅读官方提供的文档使用手册
https://www.oceanbase.com/docs/oceanbase-migration-assessment/oma/V3.2.1/product-features
文档说明非常全

评估 MySQL 实例

官方提供的样例:

sh bin/start.sh --name task_name \ # 任务的名称,可以随意取值
--mode ANALYZE \ # 分析模式
--from-type DB \ # 来源为数据库
--evaluate-mode SOURCE_TARGET \ # 评估⽅式
--source-db-type MYSQL \ # 源数据库的类型
--source-db-version 5.6/5.7/8.0 \ # 源数据库的版本
--source-db-host 10.10.10.1 \ # 源数据库的地址
--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

实验鸡

192.168.1.11使用docker启动一个MySQL5.7
并创建库创建表最后写入一些数据。
最后再安装一个不小于1.8版本的jdk

安装OMA

去官方下载oma-3.3.0.tar

解压并进入目录

tar xvf oma-3.3.0.tar -C /usr/local 
cd oma-3.3.0.tar

验证MySQL

如何获取MySQL schemas ?
https://www.yiibai.com/mysql/show-databases.html

sh bin/start.sh --name MoveDatabase \
--mode ANALYZE \
--from-type DB \
--evaluate-mode SOURCE_TARGET \
--source-db-type MYSQL \
--source-db-version 5.7 \
--source-db-host 192.168.1.11 \
--source-db-port 3306 \
--source-db-user root \
--source-db-password 123456 \
--schemas "test" \
--target-db-type OBMYSQL \
--target-db-version 2.2.x 

执行输出

[root@node1 oma-3.3.0]# sh bin/start.sh --name MoveDatabase --mode ANALYZE --from-type DB --evaluate-mode SOURCE_TARGET --source-db-type MYSQL --source-db-version 5.7 --source-db-host 192.168.1.11 --source-db-port 3306 --source-db-user root --source-db-password 123456 --schemas "test" --target-db-type OBMYSQL --target-db-version 2.2.x 

   ____                       ____                   __  __ _                 _   _                                                                   _   
  / __ \                     |  _ \                 |  \/  (_)               | | (_)                 /\                                              | |  
 | |  | | ___ ___  __ _ _ __ | |_) | __ _ ___  ___  | \  / |_  __ _ _ __ __ _| |_ _  ___  _ __      /  \   ___ ___  ___  ___ ___ _ __ ___   ___ _ __ | |_ 
 | |  | |/ __/ _ \/ _` | '_ \|  _ < / _` / __|/ _ \ | |\/| | |/ _` | '__/ _` | __| |/ _ \| '_ \    / /\ \ / __/ __|/ _ \/ __/ __| '_ ` _ \ / _ \ '_ \| __|
 | |__| | (_|  __/ (_| | | | | |_) | (_| \__ \  __/ | |  | | | (_| | | | (_| | |_| | (_) | | | |  / ____ \\__ \__ \  __/\__ \__ \ | | | | |  __/ | | | |_ 
  \____/ \___\___|\__,_|_| |_|____/ \__,_|___/\___| |_|  |_|_|\__, |_|  \__,_|\__|_|\___/|_| |_| /_/    \_\___/___/\___||___/___/_| |_| |_|\___|_| |_|\__|
                                                               __/ |                                                                                      
                                                              |___/                                                                                       

OceanBase Migration Assessment version : 3.3.0
Power by Ant Group
[INFO ] 10:38:43.774 [main] c.a.oceanbase.oma.command.Commander - Start OceanBase Migration Assessment version [3.3.0] ...
[INFO ] 10:38:43.776 [main] c.a.oceanbase.oma.command.Commander - command parameters : 
--name MoveDatabase 
--mode ANALYZE 
--from-type DB 
--evaluate-mode SOURCE_TARGET 
--source-db-type MYSQL 
--source-db-version 5.7 
--source-db-host 192.168.1.11 
--source-db-port 3306 
--source-db-user root 
--source-db-password 123456 
--schemas test 
--target-db-type OBMYSQL 
--target-db-version 2.2.x
[INFO ] 10:38:43.788 [main] c.a.o.o.s.ScheduleServiceImpl - local jdbc jdbc:sqlite:/usr/local/oma-3.3.0/db/oma.sqlite
[INFO ] 10:38:43.812 [main] c.a.o.oma.common.ds.conf.JdbcHelper - [SQLITE_3.2.0] URL:[jdbc:sqlite:/usr/local/oma-3.3.0/db/oma.sqlite] connect count init:[5] : max[20] properties [{}]
[INFO ] 10:38:44.067 [main] c.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
[INFO ] 10:38:44.098 [ScheduleTask] c.a.o.o.scheduler.tasks.ScheduleTask - start process objects/sql now ...
[INFO ] 10:38:44.102 [ScheduleTask] c.a.o.oma.common.ds.conf.JdbcHelper - [MYSQL_5.7] URL:[jdbc:mysql://192.168.1.11:3306/test] connect count init:[5] : max[20] properties [{autoReconnect=true, useUnicode=true, characterEncoding=utf8, useSSL=false, testWhileIdle=false, failOverReadOnly=true}]
[INFO ] 10:38:44.268 [ScheduleTask] c.alibaba.druid.pool.DruidDataSource - {dataSource-2} inited
[INFO ] 10:38:44.287 [PerfEvaluateTask] c.a.o.o.s.t.PerformanceEvaluateTask - start performance evaluate now ...
[INFO ] 10:38:44.333 [work-thread-3] c.alipay.oceanbase.oma.scanner.c.a.a - ALL BASE TABLE COUNT [1]
[INFO ] 10:38:44.334 [work-thread-3] c.alipay.oceanbase.oma.scanner.c.a.a - ALL VIEW COUNT [0]
[INFO ] 10:38:44.341 [work-thread-3] c.alipay.oceanbase.oma.scanner.c.a.a - ALL TRIGGER COUNT [0]
[INFO ] 10:38:44.344 [work-thread-3] c.alipay.oceanbase.oma.scanner.c.a.a - ALL FUNCTION COUNT [0]
[INFO ] 10:38:44.346 [work-thread-3] c.alipay.oceanbase.oma.scanner.c.a.a - ALL PROCEDURE COUNT [0]
[INFO ] 10:38:44.348 [work-thread-3] c.alipay.oceanbase.oma.scanner.c.a.a - ALL EVENT COUNT [0]
[INFO ] 10:38:44.348 [work-thread-3] c.alipay.oceanbase.oma.scanner.c.a.a - ALL OBJECTS COUNT [ 1 ]
[WARN ] 10:38:44.348 [work-thread-3] c.a.o.o.scheduler.tasks.CollectTask - scan cost 61 ms
[INFO ] 10:38:44.348 [work-thread-3] c.a.o.o.scheduler.tasks.CollectTask - ready to collect 1 objects
[INFO ] 10:38:44.353 [work-thread-3] c.a.o.o.scheduler.tasks.CollectTask - scan finish ...
[INFO ] 10:38:44.354 [work-thread-3] c.a.o.o.scheduler.tasks.ScheduleTask - task : collect-DB -- 01143 finish ... 
[INFO ] 10:38:44.355 [ConvertTask] c.a.o.o.scheduler.tasks.ConvertTask - convert process finish ...
[INFO ] 10:38:44.356 [ConvertTask] c.a.o.o.scheduler.tasks.ScheduleTask - task : convert-task -- 28e4a finish ... 
[ test(0|0) ] Progress:                                                                                                      |0%  [INFO ] 10:38:45.227 [EvaluateTask] c.a.o.o.scheduler.tasks.EvaluateTask - evaluate process finish ...
[WARN ] 10:38:45.228 [EvaluateTask] c.a.o.o.scheduler.tasks.EvaluateTask - evaluateCostTime 873 ms dumpCostTime 0 ms
[INFO ] 10:38:45.228 [EvaluateTask] c.a.o.o.scheduler.tasks.ScheduleTask - task : evaluate-DB -- b96e8 finish ... 
[ test(0|1) ] Progress:                                                                                                      |0%  [INFO ] 10:38:45.230 [PerfEvaluateTask] c.a.o.o.s.t.PerformanceEvaluateTask - performance evaluate process finish ...
[WARN ] 10:38:45.230 [PerfEvaluateTask] c.a.o.o.s.t.PerformanceEvaluateTask - performanceEvaluateCostTime 0 ms dumpCostTime 0 ms
[INFO ] 10:38:45.230 [PerfEvaluateTask] c.a.o.o.scheduler.tasks.ScheduleTask - task : performance-DB -- 4ec2b finish ... 
[ test(0|1) ] Progress:                                                                                                      |0%  [INFO ] 10:38:45.235 [work-thread-1] c.a.o.oma.scheduler.tasks.TuningTask - tuning process finish ...
[WARN ] 10:38:45.235 [work-thread-1] c.a.o.oma.scheduler.tasks.TuningTask - turningCostTime 0 ms
[INFO ] 10:38:45.235 [work-thread-1] c.a.o.o.scheduler.tasks.ScheduleTask - task : tuning-DB -- 6bddd finish ... 
[INFO ] 10:38:45.466 [ReportTask] c.a.o.oma.scheduler.tasks.ReportTask - evaluate process finish ...
[INFO ] 10:38:45.467 [ReportTask] c.a.o.oma.scheduler.tasks.ReportTask - report task finish report-DB-da723 finish...1
[INFO ] 10:38:45.467 [ReportTask] c.a.o.o.scheduler.tasks.ScheduleTask - task : report-DB -- da723 finish ... 
[INFO ] 10:38:49.288 [ScheduleTask] c.a.o.o.s.ScheduleServiceImpl - finished ...
[INFO ] 10:38:49.288 [ScheduleTask] c.a.o.o.s.ScheduleServiceImpl - finished running...
[INFO ] 10:38:49.288 [ScheduleTask] c.a.o.o.s.ScheduleServiceImpl - finished create report...
[ test(0|1) ] Progress: #################################################################################################### |100%  
[INFO ] 10:38:49.288 [ScheduleTask] c.a.o.oma.reporter.ReportServiceImpl - report get count : 1
SCHEMA : test 评估耗时 : 5218 毫秒
+-------------------------------------------------------------------+
| schema: schema  | source: sourceDB      | target: targetDB      |
+-----------------+---------+---------+---------+---------+---------+
|  Object Type    |  pass   | convert | failure |  total  | percent |
+-----------------+---------+---------+---------+---------+---------+
| TABLE           | 1       | 0       | 0       | 1       |  100.0% |
+-----------------+---------+---------+---------+---------+---------+

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

[INFO ] 10:38:50.338 [ScheduleTask] c.a.o.o.s.ScheduleServiceImpl - all schema finished ...start Time : [ 2022.03.10 10:38:44 ] end Time : [ 2022.03.10 10:38:50 ] cost time :  6 Sec
[INFO ] 10:38:50.339 [ScheduleTask] c.a.o.o.s.ScheduleServiceImpl - 评估完成,压缩评估报告,可能需要一定时间,请耐心等待...


评估程序OMA运行完成,评估报告简报:
任务 : MoveDatabase_20220310_103843 开始时间 : 2022.03.10 10:38:44 结束时间 : 2022.03.10 10:38:50

SCHEMA : test 评估耗时 : 5218 毫秒
+-------------------------------------------------------------------+
| schema: schema  | source: sourceDB      | target: targetDB      |
+-----------------+---------+---------+---------+---------+---------+
|  Object Type    |  pass   | convert | failure |  total  | percent |
+-----------------+---------+---------+---------+---------+---------+
| TABLE           | 1       | 0       | 0       | 1       |  100.0% |
+-----------------+---------+---------+---------+---------+---------+

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

[root@node1 oma-3.3.0]# 

咳咳,数据量比较小,这个实验仅用于记录。

评估报告

命令运行完成后,可在终端查看评估报告的概览,同时也会在 report 目录下生成对应 Task 的评估
报告。

posted @ 2022-03-10 10:37  iXiAo9  阅读(329)  评论(0编辑  收藏  举报