通过docker构建otter

article/2025/10/20 15:37:40

本文是通过docker构建otter环境与mysql环境

 

一、使用docker构建otter

docker pull canal/otter-all

curl -fsSL https://raw.githubusercontent.com/alibaba/otter/master/docker/run.sh | bash

访问otter:http://192.168.102.212:8080

账号密码默认是admin/admin,管理员权限

 

二、使用docker构建mysql环境

构建mysql docker服务

Pull mysql镜像,使用5.6版本,由于是试验性质,不需要配置其他信息

docker pull mysql:5.6

启动mysql容器,此容器的服务为源表。为了不跟已有的服务端口冲突,对外暴露的是13306端口,默认密码是123456,并且在防火墙上打开13306、13307端口;

docker run -p 13306:3306 --name mysql-liukun -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

docker run -p 13307:3306 --name mysql-liukun2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

firewall-cmd --permanent --zone=public --add-port=13306/tcp

firewall-cmd --permanent --zone=public --add-port=13307/tcp

systemctl restart firewalld.service

要注意:otter拉取的主库,要打开binlog,并且主从复制模式是row模式

默认docker服务5.6版本mysql是没有开启binlog的,需要修改mysql的my.cnf配置,但是发现容器默认没有vi、vim、geidt等编辑工具,那么需要进行安装,但是发现安装过程特别慢,是因为默认apt-get源不在国内,所以要先修改源,再进行安装vim

1. 修改apt-get源

修改apt-get数据源为阿里云

cp /etc/apt/sources.list /etc/apt/sources.list.bak

echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" > /etc/apt/sources.list

apt update

有时候在执行apt update会报错W: GPG error: http://mirrors.aliyun.com/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B4FE6ACC0B21F32

此时,执行apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32,注意最后的串号要相同

然后再执行apt update即可

2. 安装vim

apt-get install vim

安装完vim之后,进入编辑模式,默认是visual模式,就是在右键粘贴的时候,会变成选中,修改办法如下

问题:vi visual模式 无法右键粘贴

修复方案:

vi ~/.vimrc

if has('mouse')

        set mouse-=a

endif

3. 打开binlog,配置主从复制模式为row模式

修改mysql 打开binlog,设置主从同步模式为row模式

vi /etc/mysql/my.cnf

[mysqld]

log-bin=/var/lib/mysql/mysql-bin

binlog_format=ROW

将docker容器重启即可让配置生效

docker restart xxxx

4. 确认mysql是否开启了binlog,在mysql执行以下命令

SHOW VARIABLES LIKE 'log_%';

确认mysql复制模式是否是row模式,执行以下命令

SHOW VARIABLES LIKE 'binlog_format%';

 

 

 

三、构建mysql源库和目标库

按照“使用docker构建mysql环境”,我们已经创建好了源库和目标库,需要在两个实例的库中分别建好对应的表

create database if not exists test default character set = 'utf8';

USE test;

CREATE TABLE  `example` (

  `id` INT(11)  NOT NULL AUTO_INCREMENT,

  `name` VARCHAR(32) COLLATE utf8_bin DEFAULT NULL ,

   PRIMARY KEY (`ID`)

) ENGINE=INNODB DEFAULT CHARSET=utf8;

 

四、配置otter

添加数据库

a. 源库 jdbc:mysql://192.168.102.212:13306

b. 目标库 jdbc:mysql://192.168.102.212:13307

填写如下信息

Jdbc为jdbc:mysql://192.168.102.212:13306/test

同理添加13307的数据源,jdbc为jdbc:mysql://192.168.102.212:13307/test

最终结果如下

添加canal

a. 提供数据库ip信息

只需要填写红框的内容,其他不用动

结果如下

添加同步表信息

a. 源数据表 test.example

b. 目标数据表 test.example

填写如下内容

再新增一个13307的数据表

最终结果如下

添加channel

只需要填写红框内容

添加pipeline

a. 选择node节点

b. 选择canal

添加同步映射规则

a. 定义源表和目标表的同步关系

如果表相同,直接保存即可

启动

测试数据

在源表中插入一条数据

INSERT INTO `example` (`name`) VALUES ("kelvin");

查看目标表是否有数据同步过来

数据已经同步,配置成功!

更多otter配置参考教程:https://blog.csdn.net/liupeifeng3514/article/details/79687095

 


http://chatgpt.dhexx.cn/article/NsfNfj2H.shtml

相关文章

Otter详解

otter girthub链接: https://github.com/alibaba/otter 有兴趣的同学可以移步笔者的个人博客 更多博客 整体架构 子模块解释 zooKeeper 分布式一致性协调服务,主要用来调度配置好的node模块。 manager 管理中心,用来配置同步信息&#…

otter 配置问题笔记

otter 部署启动 : 1,启动zookeeper 2,启动manager 3,启动node 4 在manger管理界面配置zookeeper 和node 添加映射关系表 点击pipeline的名称, 点击[批量添加] (一个一个的添加, 太累) 按照以下格式输入 数据库名,表1,【数据源配置】序号,目的数据源的序号 item,s…

otter快速开始

目录 一、Otter简介二、Otter目前支持了什么三、Canal & Otter 的一些注意事项四、otter单向同步搭建测试1. 环境准备2. Manager使用(任务配置整个流程)配置完整流程 3. 过程问题整理3.1 Problem accessing /channelList.htm. Reason:3.2 show maste…

Otter

一.概述 Otter 阿里巴巴分布式数据库同步系统:https://github.com/alibaba/otter Otter底层依赖Canal接收和解析mysql binlog日志,提供了可配置化的同步机制,纯java开发,免费开源的,基于数据库增量日志解析&#xff…

otter学习 | otter 基本介绍

一、项目介绍 名称:otter [‘ɒtə(r)] 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库。 二、工作原理 原理描述&#xf…

Otter-安装配置

简介 OTTER是阿里巴巴公司为了解决杭州/美国机房数据间同步研发的一个开源软件。OTTER基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,是一个分布式数据库同步系统。 工作原理图: 原理描述: 基于Can…

Otter入门简介

一、Otter简介 1.1 otter是什么? otter 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。Ottter是…

2.Otter原理介绍

Introduction 项目介绍 名称:otter [ɒtə(r)] 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 工作原理 image 原理描述&…

斐波那契数列输出的C语言实现

斐波那契数列输出的C语言实现 1.流程图 2.代码实现 #include <stdio.h>#define num1 0//第一项 #define num2 1//第二项int Fibonacci_Sequence(int num_n1, int num_n2, int times_0,int times_already)//num_1为第n-2位数&#xff0c;int num_n2为第n-1位数&#xf…

蓝桥杯入门训练Fibonacci数列 C语言

Fibonacci数列 C语言 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 说明: 在本题中…

C语言 计算斐波那契数列

C语言 计算斐波那契数列 前言 在学习C语言的道路上多次遇到了求斐波那契数列的问题&#xff0c;今天来总结一下我所知道的几种思想方法。方法一&#xff1a;循环 使用斐波那契数列的推导式&#xff0c;通过循环将每一个值保存到数组fib中。需要说明的是&#xff0c;这里的fi…

c语言数组的斐波那契数列

c语言数组的斐波那契数列 核心思想&#xff1a;后一项是前一项的和 a[i]a[i-1]a[i-2]&#xff1b; 题干 转换为代码 #include<stdio.h> int main() {int i,n,a[20]{1,1};scanf("%d",&n);if(n<2)printf("%d",1);else{for(i2;i<n;i)a[i]a…

C语言数组之斐波那契数列

目录 一、斐波那契数列是什么&#xff1f; 二、代码展示 1.斐波那契数列 2.冒泡排序 总结 一、斐波那契数列是什么&#xff1f; 斐波那契数列指的是这样一个数列&#xff1a;1、1、2、3、5、8、13、21、34、……在数学上&#xff0c;斐波那契数列以如下被以递推的方法定义…

斐波那契数列c语言实现 每行五个输出

斐波那契数列 指的是这样一个数列&#xff1a; 0 1 1 2 3 5 8 13 21 34 55 89 144 233… 这个数列从第3项开始&#xff0c;每一项都等于前两项之和。 设计思路&#xff0c;考虑到数列是从第三项开始呈现规律&#xff0c;故将前两项先定义&#xff0c;第三项设为变量。 后续通过…

斐波那契数列C语言实现

斐波那契数列(Fibonacci) 斐波那契数列&#xff08;意大利语: Successione di Fibonacci)&#xff0c;又称黄金分割数列、费波那西数列、费波拿契数、费氏数列&#xff0c;指的是这样一个数列&#xff1a;0、1、1、2、3、5、8、13、21、……在数学上&#xff0c;斐波纳契数列以…

斐波那契数列C语言

1.斐波那契数列是指这样一个数列&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;21&#xff0c;34&#xff0c;55&#xff0c;89..... 这个数列从第3项开始&#xff0c;每一项都等于前两项之和。 主要思想&#…

斐波那契数列C语言设计步骤,斐波那契数列c语言函数

(C语言)用递归方法编写CSS布局HTML小编今天和大家分享斐波那契数列的函数 用递归方法编写CSS布局HTML小编今天和大家分享斐波那契数列的函数&#xff0c;返回值为长整型。斐波那契数列的#include long func(long n) { if(n0||n1)return n; else return func(n-1)func(n-2); } m…

C语言斐波那契数列

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一个数列&#xff1a;…

斐波那契数列【C语言实现】

1. 定义&#xff1a; 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样…

【C语言】斐波那契数列

一.斐波那契数列是什么&#xff1f; 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xf…