-
Notifications
You must be signed in to change notification settings - Fork 14
2. 快速上手
woqutech-qdecoder edited this page Mar 11, 2022
·
5 revisions
o2k非常容易上手,只须简单配置,就可以开始工作。主要配置有:
- 源端oracle数据库配置:数据库名,用户名,密码,ASM帐号和密码
- 需要解析的表名,如:user1.t1,user2.t2
- 输出目的地:kafka/socket/file
执行如下命令,启动o2k,通过交互方式配置并运行o2k:
docker run -it --name=o2k -p 9191:9191 -p 9092:9092 --pull always registry.cn-hangzhou.aliyuncs.com/woqutech/o2k
o2k内部会使用以下端口:
- 9191: 用于从o2k获取binlog。如果o2k输出binlog的方式是socket或file,用户可以从这个端口读取binlog。
- 9192: parser和assembler通信使用,外界无须关注。
- 9193: o2k的管理端口,qdcadm工具可以通过这个端口管理o2k。
- 9194: o2k状态服务端口,prometheus server可以从这个端口读取o2k的各种metrics
- 9092: 如果选择将binlog输出到kafka,且bootstrap.server选择了默认的localhost:9092,则内部会启动kafka,使用该端口。
如果binlog输出到容器内部的kaffa,且要从外部读取容器内部的kafka,请导出9092端口;
如果binlog输出到file/socket,请导出9191端口。
如果要从主机查看o2k的metrics,请导出9194端口。
下图演示了o2k的启动和配置过程:
注意: 如果要在内网中运行docker,且内网机器无法访问docker镜像仓库,那么需要先找一台能访问docker镜像仓库的机器,拉取qdeocder镜像,将镜像保存为tar包,然后将tar包复制到内网机器上,再在内网机器上导入镜像即可:
// 在能访问docker镜像仓库的机器上安装docker,拉取镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/woqutech/o2k
// 将镜像保存为tar包:
docker save registry.cn-hangzhou.aliyuncs.com/woqutech/o2k > o2k-docker-image.tar
// 将o2k-docker-image.tar复制到内网机器上,然后在内网机器上加载镜像:
docker load < o2k-docker-image.tar
// 在内网机器上运行o2k
docker run -it --name=o2k -p 9191:9191 -p 9092:9092 registry.cn-hangzhou.aliyuncs.com/woqutech/o2k
更多信息,请参考o2k的docker hub页面
** 初级用户不建议在主机上运行o2k! **
- 将o2k解压到/app/o2k
mkdir /app/
cd /app
tar xzvf o2k-3.0.3-4C.el7.x86_64.tar.gz
tar xzvf o2k-oracle-lib-19.13.tar.gz
- 设置LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/app/o2k/lib:/app/o2k/lib/oracle:$LD_LIBRARY_PATH
/app/o2k/bin/startup.sh
按照提示配置和运行o2k即可。
- 如果binlog输出到kafka,可以用binlogdumpK读取并查看binlog:
/app/o2k/bin/binlogdumpK -b 127.0.0.1:9092 -s user1
其中-b指定kafka bootstrap.server, -s指定schema name,该示例读取user1这个schema下所有table的binlog。
- 如果binlog输出到socket,可以用binlogdumpS读取并查看binlog:
/app/qdecoder/bin/binlogdumpS -a 127.0.0.1:9191
其中-a指定binlog server的地址和端口
请参考github中的o2k相关代码,其中:
- JBinlogDump: java程序读取并反序列化binlog
- JBinlogDumpK: 从kafka读取binlog
- JBinlogDumpS: 从socket读取binlog
- binlogdump: C++程序读取并反序列化binlog
- binlogdumpK: 从kafka读取binlog
- binlogdumpS: 从socket读取binlog
o2k提供了一个命令行配置管理工具qdcadm,可以在运行时查看或更新o2k的一些配置。如:
/app/o2k/bin/qdcadm 127.0.0.1:9193 qdecoder list
/app/o2k/bin/qdcadm 127.0.0.1:9193 qdecoder get_conf binlog.output.dest
其中第一个参数: 127.0.0.1:9193为o2k AdmServer的地址和端口,第二个参数为AdmServer设置的密码,后面是发送给AdmServer的实际命令和参数。
更多使用方法,请参考QDAdm使用手册。
杭州沃趣科技股份有限公司版权所有