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

DBCAT工具的部署与实践

IT那活儿 2024-09-11
870
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!   



DBCAT简介



DBCAT 是一款轻量级的命令行工具,可用于提供源数据库到 OceanBase 数据库的 DDL 转换和 Schema 比对等功能。工具文件名为 dbcat-[版本号]-SNAPSHOT.tar.gz,下载后解压缩即可使用,可执行文件名为 dbcat。

DBCAT 是 OMS 的一个组件,是数据对象采集和转换组件,但是 DBCAT 也会以独立命令行工具的方式供用户使用。
环境准备:
  • DBCAT 能运行在 CentOS、MacXOS、Windows 下。
  • 需要安装 JDK 1.8 以上(含)版本。可以使用 OpenJDK,安装好后配置环境变量 JAVA_HOME 。




JDK1.8部署



2.1 JDK1.8下载地址

https://www.oracle.com/java/technologies/downloads/

2.2 创建一个java目录来存放java文件
cd /usr
mkdir java
cd java

2.3 将下载好的java文件存放到/usr/java目录并解压
cd /usr/java
tar -zxvf jdk-8u281-linux-x64.tar.gz

2.4 配置环境变量
vim etc/profile
将下方的内容添加到/etc/profile文件中
#java
export JAVA_HOME=/usr/java/jdk-1.8.0_281
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
#让文件立即生效
source /etc/profile

2.5 执行java -version命令验证java是否安装成功




DBCAT部署



3.1 创建一个目录用于存放dbcat安装包

3.2 解压dbcat安装文件
tar -zxvf dbcat-1.8.0-SNAPSHOT.tar.gz
cd dbcat-1.8.0-SNAPSHOT/bin
./dbcat --version
1.8.0-SNAPSHOT

目录文件说明:
  • bin:可执行文件目录。
  • conf: 日志文件配置目录。
  • lib:运行时期依赖的包。
  • meta: 离线转换场景下,导出字典表数据。
  • ~/output SQL 文件与报告文件,运行时生成。




DBCAT实践



以导出oracle11g版本数据库的数据库用户为例:

nohup /dump/tmp/dbcat-1.8.0-SNAPSHOT/bin/dbcat convert --
host xx.xx.xx.xx -P 1521 -u xxxx
-p xxxx --service-name xxx -D xxxx --from oracle11g --to oboracle322 --all -f /dump/tmp/dbcat_ddl &

参数详解如下:
  • -H:数据库主机地址ip;
  • -P:oracle数据库监听的端口号;
  • -u:连接数据库的用户名;
  • -p:连接数据库的用户名密码;
  • --service-name:oracle数据库的服务名;
  • -D:要导出的oracle数据库用户;
  • --from:oracl数据库版本;
  • --to:转换成oboracle版本;
  • -f:指定导出的sql文件和报告文件的存储路径;
  • --all:导出用户下所有对象类型的ddl结构。
目前--to所支持的的类型及版本如下:
更多的导出命令可以详见帮助查看更多的参数信息:
注意:
执行dbcat convert导出用户对象结构时,发现oracle数据库的CPU打满100%了,后面查阅资料,dbcat-1.8.0版本的默认是会开启大量并发执行导出动作的,
解决方法:
下载更新版本的dbcat-2.1.1包,可以通过--query-meta-thread参数控制并发度来执行导出操作,从而降低数据库资源的消耗,最好是在oracle的adg备库执行导出操作,避免影响生产业务。

END


本文作者:刘思龙(上海新炬中北团队)

本文来源:“IT那活儿”公众号

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

评论