项目03(上云otter测试01)

7 篇文章 0 订阅

背景

测试Mysql数据库迁移工具otter的使用(阿里开源的DTS工具,已商业化(java),阿里巴巴分布式数据库同步系统。 本次测试其使用方法,原理方面在官方github有描述(见以下链接)

https://github.com/alibaba/otter/wiki/Faq

link

补充说明

https://github.com/alibaba/otter/wiki/Docker_QuickStart
https://www.bookstack.cn/read/otter/8.md
https://www.cnblogs.com/softidea/p/12897530.html

link
link
link

架构

(来自补充说明里面的第三个文章,建议看一下)
在这里插入图片描述

术语

#https://www.cnblogs.com/softidea/p/12897530.html
otter强依赖于canal,并对canal的配置有一定的约束。也正是因为强约束,在node中集成了canal,
canal作为node的线程运行,使用otter搭建mysql同步环境不需要先手工搭建canal。
在开始进入搭建环节之前,建议先看下术语,除非很清楚了,不然相信我,你还是要回过头来看的。

Channel:同步通道,单向同步中一个Pipeline组成,在双向同步中有两个Pipeline组成
Pipeline:从源端到目标端的整个过程描述,主要由一些同步映射过程组成
DataMediaPair:根据业务表定义映射关系,比如源表和目标表,字段映射,字段组等
DataMedia : 抽象的数据介质概念,可以理解为数据表/mq队列定义
DataMediaSource : 抽象的数据介质源信息,补充描述DateMedia
ColumnPair : 定义字段映射关系
ColumnGroup : 定义字段映射组
Node : 处理同步过程的工作节点,对应一个jvm

如果您已经大概或是较为清晰了其中的原理,那么下面我们一起探索一下如何使用它。

计划之后的《项目03系列》,会介绍独立安装mysql、zookeeper、manager、node、jdk
下文为使用官方docker的部署方式,快速浏览一下。

Docker_QuickStart

#整个docker镜像
包含了otter所依赖的所有组件,比如mysql、zookeeper、manager、node,
几个组件的互相依赖的配置都已经初始化完成.整个镜像设计为单机的QuickStart启动模式,全部都是单点启动,
并没有高可用的能力。

本篇的由来是,按照官方 [https://www.bookstack.cn/read/otter/9.md#启动otter] 。 记录一些个人测试使用时,出现不同的地方。(时间点20201118)

快速搭建

环境介绍
CentOS Linux 8
Docker version 19.03.12
#
docker search otter #寻找镜像canal/otter-all
docker pull canal/otter-all   #拉取image  大约1.06G
#构建容器--name otter
docker run -d -it --privileged   -v /data/ddata/otter/mysql:/var/lib/mysql 
-v /data/ddata/otter/zkData:/home/admin/zkData -v /data/ddata/dfile/:/dfile 
-p 8080:8080 -p 8081:8081 -p 2181:2181 -p 2088:2088 -p 2089:2089 -p 2090:2090 -p33061:3306 -m 2048m -p1070:22 --network mydockernet --ip 192.168.68.70  
--name otter  canal/otter-all /bin/bash
#aa23ba69e89813d37df65afb11a1521709fdda560e56210861f9fcf66f5a7b68

-v #本地目录映射到docker中 (otter) #所以请提前建立目录
-p #映射端口
--network mydockernet #自建的docker 网络 
举例:docker network create --subnet=192.168.68.0/24 mydockernet
--ip #自定义的docker容器otter的ip地址192.168.68.70
/bin/bash #这个一个保证容器可以启动的命令 #个人测试写成/usr/sbin/init不行(otter容器无法启动)

验证宿主机
#有些服务没有启动
docker logs aa23ba69e89813d37df65afb11a1521709fdda560e56210861f9fcf66f5a7b68
登入
docker exec -it otter bash #之后可以改下root密码写下宿主机的/etc/hosts方便之后ssh使用
启动所有组件服务(otter容器中)
/home/admin
/bin/bash app.sh &   #后台运行
(app.sh里面还记录了数据库中用户和密码otter(otter);root(Hello1234))
(使用的容器3306端口,Mysql5.1.73,版本有点低哦)

启动脚本截图
在这里插入图片描述
在这里插入图片描述

登录web界面

容器中脚本虽然显示为 http://192.168.68.70:8080/,
因为外部PC和docker容器网络不通,所以使用宿主机(Linux虚拟机)的firefox访问。
(存疑的地方,PC只能访问192.168.66.135:8080,其他点击,会跳转到192.168.68.70:8080,所以无法访问。
这个问题应该是可以解决的(待测试))

访问: http://127.0.0.1:8080/,出现otter的页面,即代表启动成功
在这里插入图片描述
真正的登录界面

访问:http://127.0.0.1:8080/login.htm,初始密码为:admin/admin,即可完成登录. 目前:匿名用户只有只读查看的权限,登录为管理员才可以有操作权限

关闭
sh stop.sh
在这里插入图片描述
读者需要注意的地方(坑)
新版本的otter4.2.18 on 2 Sep 2019(也就是镜像canal/otter-all里面的数据库是5.1.73字符集为latin1);"数据源配置界面",不包含这个字符集。【所以mysql数据源的字符集和otter版本需要对应】

以后的使用方式,以otter为工具,配置远程数据库(目前是docker)和远程数据库的同步。
(那我们可以这样理解,otter容器自带的mysql是工具自用的。数据库需要我们自己准备)。

添加数据源

在这里插入图片描述
在这里插入图片描述
权限

#上图中提及的权限(可自定义)
create user 'otter'@'%' identified by '123456';
grant usage on *.* to 'otter'@'%';
grant select,replication slave,replication client on *.* to 'otter'@'%';
grant select,insert,update,delete,execute on *.* to 'otter'@'%';

因为篇幅有限,之后博文进行补充。

本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值