ob和mysql兼容吗_从ORACLE/MySQL到OceanBase:ORACLE 兼容性评估

以前文章《从ORACLE/MySQL到OceanBase序列》介绍了从 ORACLE/MySQL 到 OceanBase 中使用问题,还缺一个兼容性评估工具介绍。OceanBase 发布了工具 OMA (OceanBase Migration Assessment)填补了这一环。本文分享 ORACLE 迁移到 OceanBase 的兼容性评估工具的使用。需要评估 ORACLE 迁移到 OceanBase 兼容性大概成本的朋友可以看看,工具暂时官网没有放出,可以联系我获取。

软件包软件包很简单,就是一个使用文档《OceanBase 迁移评估 V2.2.0 产品手册 20201201.pdf》和一个压缩文件。直接解压缩可用。工具还在迭代开发中,不同版本功能会有些差异,文件名也不一样。$ls -lrth Oracle2OB-2.2.0.tar.gz-rw-r--r-- 1 obpilot users 61M Dec 6 09:07 Oracle2OB-2.2.0.tar.gz$tar zxvf Oracle2OB-2.2.0.tar.gz

使用方法[root@ocp root/Oracle2OB-2.2.0]#sh bin/OracleToOb.sh analyze-object --help$sh bin/OracleToOb.sh --helpget version from META-INF.Welcome to Oceanbase Migration Assessment Tool 2.2.0Usage: OracleToOb.sh [options] [command] [command options] Options: -h, --help 参数说明 Default: false Commands: dump Dump数据库对象成为ddl文件 Usage: dump [options] Options: --blacklist 待评估数据库对象黑名单 -c, --config 配置文件,注意其参数会被对应命令行参数覆盖 -d, --dialect 生成DDL语句的语法方言 Possible Values: [AS_SOURCE, AS_TARGET] --docker-conn docker宿主机连接方式 -f, --file 待评估的sql文件目录 -e, --file-encoding 配置文件字符编码,默认UTF-8 Default: UTF-8 --file-type 待评估文件类型OMA|SQLAREA|MABATIS --help 参数说明 Default: false -h, --host 待评估数据库地址 --image 镜像名称 --image-path 镜像路径 -t, --object-types 待评估数据库对象类型 -p, --password 待评估数据库密码 -P, --port 待评估数据库端口 --scanner scanner类型 Default: NOT_SCAN Possible Values: [FILEREADER, CRAWLER, NOT_SCAN] -s, --schema 待评估的数据库schema --schemas 待评估的数据库schema列表, 会与-s/--schema的参数叠加 --service 待评估Oracle数据库service name --sid 待评估Oracle数据库sid --source-db-connectionTimeout 待评估数据库连接超时参数 Default: -1 --source-db-type 待评估数据库类型 --source-db-version 待评估数据库版本 --target-db-connectionTimeout 目标OceanBase数据库连接超时参数 Default: 0 --target-db-host 目标OceanBase数据库地址 --target-db-password 目标OceanBase数据库用户密码 --target-db-port 目标OceanBase数据库端口 --target-db-schema 目标库schema, 注意pl对象中的语句可能包含对源schema的引用,将不会被转换,可能会导致dump出的pl对象创建语句无法在目的库成功执行 --target-db-service 目标oracle service name --target-db-sid 目标oracle sid --target-db-type 目标OceanBase数据库租户类型 OBORACLE|OBMYSQL --target-db-user 目标OceanBase数据库用户名 --target-db-version 目标OceanBase数据库版本 -u, --user 待评估数据库用户名 --whitelist 待评估数据库对象白名单 -D 其它辅助参数 Syntax: -Dkey=value Default: {} analyze-object 评估数据库对象的兼容性 Usage: analyze-object [options] Options: --blacklist 待评估数据库对象黑名单 -c, --config 配置文件,注意其参数会被对应命令行参数覆盖 --docker-conn docker宿主机连接方式 -f, --file 待评估的sql文件目录 -e, --file-encoding 配置文件字符编码,默认UTF-8 Default: UTF-8 --file-type 待评估文件类型OMA|SQLAREA|MABATIS --help 参数说明 Default: false -h, --host 待评估数据库地址 --image 镜像名称 --image-path 镜像路径 -t, --object-types 待评估数据库对象类型 -p, --password 待评估数据库密码 -P, --port 待评估数据库端口 --scanner scanner类型 Default: NOT_SCAN Possible Values: [FILEREADER, CRAWLER, NOT_SCAN] -s, --schema 待评估的数据库schema --schemas 待评估的数据库schema列表, 会与-s/--schema的参数叠加 --service 待评估Oracle数据库service name --sid 待评估Oracle数据库sid --source-db-connectionTimeout 待评估数据库连接超时参数 Default: -1 --source-db-type 待评估数据库类型 --source-db-version 待评估数据库版本 --target-db-connectionTimeout 目标OceanBase数据库连接超时参数 Default: 0 --target-db-host 目标OceanBase数据库地址 --target-db-password 目标OceanBase数据库用户密码 --target-db-port 目标OceanBase数据库端口 --target-db-schema 目标库schema, 注意pl对象中的语句可能包含对源schema的引用,将不会被转换,可能会导致dump出的pl对象创建语句无法在目的库成功执行 --target-db-service 目标oracle service name --target-db-sid 目标oracle sid --target-db-type 目标OceanBase数据库租户类型 OBORACLE|OBMYSQL --target-db-user 目标OceanBase数据库用户名 --target-db-version 目标OceanBase数据库版本 -u, --user 待评估数据库用户名 --whitelist 待评估数据库对象白名单 -w, --with-evaluator 评估方式 Possible Values: [PARSER, DB, CRAWLER] -D 其它辅助参数 Syntax: -Dkey=value Default: {} analyze-sql 评估sql语句(包含plsql)的兼容性 Usage: analyze-sql [options] Options: --blacklist 待评估数据库对象黑名单 -c, --config 配置文件,注意其参数会被对应命令行参数覆盖 --docker-conn docker宿主机连接方式 -f, --file 待评估的sql文件目录 -e, --file-encoding 配置文件字符编码,默认UTF-8 Default: UTF-8 --file-type 待评估文件类型OMA|SQLAREA|MABATIS --help 参数说明 Default: false -h, --host 待评估数据库地址 --image 镜像名称 --image-path 镜像路径 -t, --object-types 待评估数据库对象类型 -p, --password 待评估数据库密码 -P, --port 待评估数据库端口 --scanner scanner类型 Default: NOT_SCAN Possible Values: [FILEREADER, CRAWLER, NOT_SCAN] -s, --schema 待评估的数据库schema --schemas 待评估的数据库schema列表, 会与-s/--schema的参数叠加 --service 待评估Oracle数据库service name --sid 待评估Oracle数据库sid --source-db-connectionTimeout 待评估数据库连接超时参数 Default: -1 --source-db-sql 定义查询语句执行以从数据库中获取采集到的sqlarea sql语句 --source-db-type 待评估数据库类型 --source-db-version 待评估数据库版本 --target-db-connectionTimeout 目标OceanBase数据库连接超时参数 Default: 0 --target-db-host 目标OceanBase数据库地址 --target-db-password 目标OceanBase数据库用户密码 --target-db-port 目标OceanBase数据库端口 --target-db-schema 目标库schema, 注意pl对象中的语句可能包含对源schema的引用,将不会被转换,可能会导致dump出的pl对象创建语句无法在目的库成功执行 --target-db-service 目标oracle service name --target-db-sid 目标oracle sid --target-db-type 目标OceanBase数据库租户类型 OBORACLE|OBMYSQL --target-db-user 目标OceanBase数据库用户名 --target-db-version 目标OceanBase数据库版本 -u, --user 待评估数据库用户名 --whitelist 待评估数据库对象白名单 -w, --with-evaluator 评估方式 Possible Values: [PARSER, DB, CRAWLER] -D 其它辅助参数 Syntax: -Dkey=value Default: {}命令行的参数还是很丰富的。这里简单介绍一下,主要是要指定下列参数:指定是根据 SQL Parser 规则评估 还是连接到一个目标 OB 去评估。如果没有 OB 目标环境就选择 Parser 评估。通常使用目标 OB 环境去评估更精准。OB 安装部署方法可以参考以前文章。

指定源库 ORACLE 的版本、连接账户密码(DBA 权限)、源 SCHEMA(需要评估的 SCHEMA)。

指定目标 OB(如果有的话)连接账户密码(ORACLE 租户的 DBA 权限)、目标 SCHEMA(空的,没有数据库对象)。

指定目标 OB 或要评估的 OB 版本号。

使用示例找一个 ORACLE 环境。这里我网上下载了一个 ORACLE 镜像用来测试。源 SCHEMA 使用 ORACLE 的示例 SCHEMA HR 。#docker imagesREPOSITORYreg.docker.alibaba-inc.com/oceanbase-platform/oracle-xe-11g 1.0.0 ad13c30ec346 22 months ago 2.13GB#docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESab9c12e442c6 reg.docker.alibaba-inc.com/oceanbase-platform/oracle-xe-11g:1.0.0 "/bin/sh -c '/usr/sb…" 4 months ago Up About an hour 22/tcp, 8080/tcp, 0.0.0.0:1521->1521/tcp oracle-xe-11g根据语法规则评估 ORACLE 的 HR 在 OB(ORACLE)上兼容性 (2 选 1)。sh bin/OracleToOb.sh analyze-object --with-evaluator parser --source-db-type ORACLE --source-db-version 11g -h 172.17.0.2 -P 1521 --sid XE -p obdba --user obdba --schema HR --target-db-type OBORACLE --target-db-version 2.2.70

get version from META-INF.Welcome to Oceanbase Migration Assessment Tool 2.2.0Start to query source schema [HR]Progress to query table [7/7]Preprocessed objects: [4/65]ANALYZE database jdbc:oracle:thin:@172.17.0.2:1521:XE schema HR finish analysis根据目标 OB 评估 ORACLE 的 HR 在 OB(ORACLE)上兼容性 (2 选 1)。sh bin/OracleToOb.sh analyze-object --with-evaluator db --source-db-type ORACLE --source-db-version 11g -h 127.0.0.1 -P 1521 --sid XE -u obdba -p obdba -s HR --target-db-type OBORACLE --target-db-version 2.2.70 --target-db-host 11.***.***.*39 --target-db-user obdba@oboracle#obtest --target-db-password obdba --target-db-port 2883 --target-db-schema hr

get version from META-INF.Welcome to Oceanbase Migration Assessment Tool 2.2.0Start to query source schema [HR]Progress to query table [7/7]Preprocessed objects: [65/65]Evaluated objects: [5/20]

查看报告报告在软件目录的 analysis 目录下[obpilot@xxxxxx home/obpilot/Oracle2OB-2.2.0]$ls -lrth analysis/total 40K-rw-r--r-- 1 obpilot users 16K Dec 6 09:17 HR.20201206091727.html-rw-r--r-- 1 obpilot users 3.4K Dec 6 09:17 HR.20201206091727.incompatible.txt-rw-r--r-- 1 obpilot users 3.4K Dec 6 09:43 HR.20201206094318.incompatible.txt-rw-r--r-- 1 obpilot users 16K Dec 6 09:43 HR.20201206094318.html报告会把不兼容的对象的 ddl 单独列出,也有一个 html 文件用于看总报告。

63faa644b5c16317800c659795a5e0f8.png

a5b25d9ed60773ad07b6466182dbcd4a.png不兼容的部分可能有两个原因是 OB(ORACLE)对 ORACLE DDL 的一些细项功能还不支持,通常后续版本会支持。OceanBase 当前和后续版本重点发展方向之一就是 进一步丰富 ORACLE 兼容性 。你可以随时跟 OB 技术支持人员获取最新版本的 OB 或者 OMA 来评估你的 ORACLE 业务。问题反馈

其他参考有关产品工具介绍见 OceanBase 官网:oceanbase.com 。官网文档非常丰富。

有关产品培训可以关注 OBCA 和 OBCP 认证。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值