阿里 Otter 简单双A同步配置

环境准备:

  1. zookeeper

  2. manager.deployer-4.2.18

  3. node.deployer-4.2.18

环境搭建:

  1. 启动zookeeper

  2. 启动 manager.deployer-4.2.18

    2.启动managerwindows:bin/startup.bat或者linux:bin/startup.sh

    1. 浏览器访问 http://localhost:9999/ 进入otter图形化配置界面

    2. 启动前更改 manager配置, 在 conf/otter.properties 中修改

      ##otter名称
      otter.domainName=127.0.0.1
      ##ottermanagerhttpport
      otter.port=9999
      ##zookeeper地址
      otter.zookeeper.cluster.default=127.0.0.1:2181
      ##zookeepersession超时
      otter.zookeeper.sessionTimeout=60000##otter数据库配置,otter配置依赖mysql,数据库配置的建表语句写在下面
      otter.database.driver.class.name=com.mysql.jdbc.Driver
      otter.database.driver.url=jdbc:mysql://127.0.0.1:3306/otter
      otter.database.driver.username=root
      otter.database.driver.password=root
      

      数据库执行语句(ottermanager依赖)

        CREATEDATABASE/*!32312IFNOTEXISTS*/`otter`/*!40100DEFAULTCHARACTERSETutf8COLLATEutf8_bin*/;USE`otter`;SETsql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';CREATETABLE`ALARM_RULE`(`ID`bigint(20)unsignedNOTNULLAUTO_INCREMENT,`MONITOR_NAME`varchar(1024)DEFAULTNULL,`RECEIVER_KEY`varchar(1024)DEFAULTNULL,`STATUS`varchar(32)DEFAULTNULL,`PIPELINE_ID`bigint(20)NOTNULL,`DESCRIPTION`varchar(256)DEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,`MATCH_VALUE`varchar(1024)DEFAULTNULL,`PARAMETERS`textDEFAULTNULL,PRIMARYKEY(`ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`AUTOKEEPER_CLUSTER`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`CLUSTER_NAME`varchar(200)NOTNULL,`SERVER_LIST`varchar(1024)NOTNULL,`DESCRIPTION`varchar(200)DEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`CANAL`(`ID`bigint(20)unsignedNOTNULLAUTO_INCREMENT,`NAME`varchar(200)DEFAULTNULL,`DESCRIPTION`varchar(200)DEFAULTNULL,`PARAMETERS`textDEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),UNIQUEKEY`CANALUNIQUE`(`NAME`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`CHANNEL`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`NAME`varchar(200)NOTNULL,`DESCRIPTION`varchar(200)DEFAULTNULL,`PARAMETERS`textDEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),UNIQUEKEY`CHANNELUNIQUE`(`NAME`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`COLUMN_PAIR`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`SOURCE_COLUMN`varchar(200)DEFAULTNULL,`TARGET_COLUMN`varchar(200)DEFAULTNULL,`DATA_MEDIA_PAIR_ID`bigint(20)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_DATA_MEDIA_PAIR_ID`(`DATA_MEDIA_PAIR_ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`COLUMN_PAIR_GROUP`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`DATA_MEDIA_PAIR_ID`bigint(20)NOTNULL,`COLUMN_PAIR_CONTENT`textDEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_DATA_MEDIA_PAIR_ID`(`DATA_MEDIA_PAIR_ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`DATA_MEDIA`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`NAME`varchar(200)NOTNULL,`NAMESPACE`varchar(200)NOTNULL,`PROPERTIES`varchar(1000)NOTNULL,`DATA_MEDIA_SOURCE_ID`bigint(20)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),UNIQUEKEY`DATAMEDIAUNIQUE`(`NAME`,`NAMESPACE`,`DATA_MEDIA_SOURCE_ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`DATA_MEDIA_PAIR`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`PULLWEIGHT`bigint(20)DEFAULTNULL,`PUSHWEIGHT`bigint(20)DEFAULTNULL,`RESOLVER`textDEFAULTNULL,`FILTER`textDEFAULTNULL,`SOURCE_DATA_MEDIA_ID`bigint(20)DEFAULTNULL,`TARGET_DATA_MEDIA_ID`bigint(20)DEFAULTNULL,`PIPELINE_ID`bigint(20)NOTNULL,`COLUMN_PAIR_MODE`varchar(20)DEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_PipelineID`(`PIPELINE_ID`,`ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`DATA_MEDIA_SOURCE`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`NAME`varchar(200)NOTNULL,`TYPE`varchar(20)NOTNULL,`PROPERTIES`varchar(1000)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),UNIQUEKEY`DATAMEDIASOURCEUNIQUE`(`NAME`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`DELAY_STAT`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`DELAY_TIME`bigint(20)NOTNULL,`DELAY_NUMBER`bigint(20)NOTNULL,`PIPELINE_ID`bigint(20)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_PipelineID_GmtModified_ID`(`PIPELINE_ID`,`GMT_MODIFIED`,`ID`),KEY`idx_Pipeline_GmtCreate`(`PIPELINE_ID`,`GMT_CREATE`),KEY`idx_GmtCreate_id`(`GMT_CREATE`,`ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`LOG_RECORD`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`NID`varchar(200)DEFAULTNULL,`CHANNEL_ID`varchar(200)NOTNULL,`PIPELINE_ID`varchar(200)NOTNULL,`TITLE`varchar(1000)DEFAULTNULL,`MESSAGE`textDEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`logRecord_pipelineId`(`PIPELINE_ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`NODE`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`NAME`varchar(200)NOTNULL,`IP`varchar(200)NOTNULL,`PORT`bigint(20)NOTNULL,`DESCRIPTION`varchar(200)DEFAULTNULL,`PARAMETERS`textDEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),UNIQUEKEY`NODEUNIQUE`(`NAME`,`IP`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`PIPELINE`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`NAME`varchar(200)NOTNULL,`DESCRIPTION`varchar(200)DEFAULTNULL,`PARAMETERS`textDEFAULTNULL,`CHANNEL_ID`bigint(20)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),UNIQUEKEY`PIPELINEUNIQUE`(`NAME`,`CHANNEL_ID`),KEY`idx_ChannelID`(`CHANNEL_ID`,`ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`PIPELINE_NODE_RELATION`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`NODE_ID`bigint(20)NOTNULL,`PIPELINE_ID`bigint(20)NOTNULL,`LOCATION`varchar(20)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_PipelineID`(`PIPELINE_ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`SYSTEM_PARAMETER`(`ID`bigint(20)unsignedNOTNULL,`VALUE`textDEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`))ENGINE=InnoDBDEFAULTCHARSET=utf8;CREATETABLE`TABLE_HISTORY_STAT`(`ID`bigint(20)unsignedNOTNULLAUTO_INCREMENT,`FILE_SIZE`bigint(20)DEFAULTNULL,`FILE_COUNT`bigint(20)DEFAULTNULL,`INSERT_COUNT`bigint(20)DEFAULTNULL,`UPDATE_COUNT`bigint(20)DEFAULTNULL,`DELETE_COUNT`bigint(20)DEFAULTNULL,`DATA_MEDIA_PAIR_ID`bigint(20)DEFAULTNULL,`PIPELINE_ID`bigint(20)DEFAULTNULL,`START_TIME`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`END_TIME`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_DATA_MEDIA_PAIR_ID_END_TIME`(`DATA_MEDIA_PAIR_ID`,`END_TIME`),KEY`idx_GmtCreate_id`(`GMT_CREATE`,`ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`TABLE_STAT`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`FILE_SIZE`bigint(20)NOTNULL,`FILE_COUNT`bigint(20)NOTNULL,`INSERT_COUNT`bigint(20)NOTNULL,`UPDATE_COUNT`bigint(20)NOTNULL,`DELETE_COUNT`bigint(20)NOTNULL,`DATA_MEDIA_PAIR_ID`bigint(20)NOTNULL,`PIPELINE_ID`bigint(20)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_PipelineID_DataMediaPairID`(`PIPELINE_ID`,`DATA_MEDIA_PAIR_ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`THROUGHPUT_STAT`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`TYPE`varchar(20)NOTNULL,`NUMBER`bigint(20)NOTNULL,`SIZE`bigint(20)NOTNULL,`PIPELINE_ID`bigint(20)NOTNULL,`START_TIME`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`END_TIME`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`idx_PipelineID_Type_GmtCreate_ID`(`PIPELINE_ID`,`TYPE`,`GMT_CREATE`,`ID`),KEY`idx_PipelineID_Type_EndTime_ID`(`PIPELINE_ID`,`TYPE`,`END_TIME`,`ID`),KEY`idx_GmtCreate_id`(`GMT_CREATE`,`ID`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`USER`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`USERNAME`varchar(20)NOTNULL,`PASSWORD`varchar(20)NOTNULL,`AUTHORIZETYPE`varchar(20)NOTNULL,`DEPARTMENT`varchar(20)NOTNULL,`REALNAME`varchar(20)NOTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),UNIQUEKEY`USERUNIQUE`(`USERNAME`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLE`DATA_MATRIX`(`ID`bigint(20)NOTNULLAUTO_INCREMENT,`GROUP_KEY`varchar(200)DEFAULTNULL,`MASTER`varchar(200)DEFAULTNULL,`SLAVE`varchar(200)DEFAULTNULL,`DESCRIPTION`varchar(200)DEFAULTNULL,`GMT_CREATE`timestampNOTNULLDEFAULT'0000-00-0000:00:00',`GMT_MODIFIED`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`ID`),KEY`GROUPKEY`(`GROUP_KEY`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLEIFNOTEXISTS`meta_history`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENTCOMMENT'主键',`gmt_create`datetimeNOTNULLCOMMENT'创建时间',`gmt_modified`datetimeNOTNULLCOMMENT'修改时间',`destination`varchar(128)DEFAULTNULLCOMMENT'通道名称',`binlog_file`varchar(64)DEFAULTNULLCOMMENT'binlog文件名',`binlog_offest`bigint(20)DEFAULTNULLCOMMENT'binlog偏移量',`binlog_master_id`varchar(64)DEFAULTNULLCOMMENT'binlog节点id',`binlog_timestamp`bigint(20)DEFAULTNULLCOMMENT'binlog应用的时间戳',`use_schema`varchar(1024)DEFAULTNULLCOMMENT'执行sql时对应的schema',`sql_schema`varchar(1024)DEFAULTNULLCOMMENT'对应的schema',`sql_table`varchar(1024)DEFAULTNULLCOMMENT'对应的table',`sql_text`longtextDEFAULTNULLCOMMENT'执行的sql',`sql_type`varchar(256)DEFAULTNULLCOMMENT'sql类型',`extra`textDEFAULTNULLCOMMENT'额外的扩展信息',PRIMARYKEY(`id`),UNIQUEKEYbinlog_file_offest(`destination`,`binlog_master_id`,`binlog_file`,`binlog_offest`),KEY`destination`(`destination`),KEY`destination_timestamp`(`destination`,`binlog_timestamp`),KEY`gmt_modified`(`gmt_modified`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8COMMENT='表结构变化明细表';CREATETABLEIFNOTEXISTS`meta_snapshot`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENTCOMMENT'主键',`gmt_create`datetimeNOTNULLCOMMENT'创建时间',`gmt_modified`datetimeNOTNULLCOMMENT'修改时间',`destination`varchar(128)DEFAULTNULLCOMMENT'通道名称',`binlog_file`varchar(64)DEFAULTNULLCOMMENT'binlog文件名',`binlog_offest`bigint(20)DEFAULTNULLCOMMENT'binlog偏移量',`binlog_master_id`varchar(64)DEFAULTNULLCOMMENT'binlog节点id',`binlog_timestamp`bigint(20)DEFAULTNULLCOMMENT'binlog应用的时间戳',`data`longtextDEFAULTNULLCOMMENT'表结构数据',`extra`textDEFAULTNULLCOMMENT'额外的扩展信息',PRIMARYKEY(`id`),UNIQUEKEYbinlog_file_offest(`destination`,`binlog_master_id`,`binlog_file`,`binlog_offest`),KEY`destination`(`destination`),KEY`destination_timestamp`(`destination`,`binlog_timestamp`),KEY`gmt_modified`(`gmt_modified`))ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8COMMENT='表结构记录表快照表';insertintoUSER(ID,USERNAME,PASSWORD,AUTHORIZETYPE,DEPARTMENT,REALNAME,GMT_CREATE,GMT_MODIFIED)values(null,'admin','801fc357a5a74743894a','ADMIN','admin','admin',now(),now());insertintoUSER(ID,USERNAME,PASSWORD,AUTHORIZETYPE,DEPARTMENT,REALNAME,GMT_CREATE,GMT_MODIFIED)values(null,'guest','471e02a154a2121dc577','OPERATOR','guest','guest',now(),now());

配置Zookeeper和Node:

点击右上角登陆: 用户名和密码默认都是 admin

配置zookeeper

机器管理>zookeeper管理>添加

配置 node

机器管理>node管理>添加

配置完后会回到列表页面,可以看到该配置对应的 id

记住这个序号

启动nodenode.deployer-4.2.18

1): 在conf目录下创建一个 名为 nid 的文件, 里面的内容是刚才创建node配置时返回的序号, 比如刚才我创建配置返回的序号为1

那么我创建的nid文件的内容为 1

2): 更改conf/otter.properties文件

#更改ottermanager的地址,ottermanager默认的通讯地址是1099
otter.manager.address=127.0.0.1:1099

3): 启动 node, windows: bin/startip.bat linux: bin/startup.sh

然后我们进入 otterManager中可以看到状态为已启动

配置数据库相关

1. 配置数据源

配置管理>数据源配置>添加

这一步的目的是指定同步的数据源和被同步的数据源,由于我是本地测试,且只有一个数据源,配一个就好了

  • 注意, 如果点击验证链接数据源出错,提升数据库编码不正确,则修改数据库编码为 utf-8

    mysql修改方式: 修改my.ini文件

    [mysqld] 上面添加一行

    default-character-set=utf8

    [mysqld]下面添加

    default-storage-engine=INNODB
    character-set-server=utf8
    collation-server=utf8_general_ci

    然后重启mysql即可

2. 配置数据表

比如我要同步database0库下的所有表

配置canal

canal是阿里开源的用来监听mysql bnarylog 日志的一个工具

配置管理>canal>添加canal

配置cannel

1. 创建cannel

同步管理>添加

2. 配置pipeline

点击 cannel的名称进入pipeline配置

点击添加pipeline

至此 database0 同步到 database1的pipeline创建完成

3.配置pipeline的关系映射表

点击pipeline的名称进入映射关系表配置

添加关系表配置, 配置好后保存即可

至此 database0 同步到 database1 的pipeline已经配置成功了

4. 配置 database1 到 database0 的pipeline

5. 配置 database1 到 database0的表关系映射

点击database1->database0的pipeline的名称,进入表关系映射配置

6. 在要同步的数据实例中创建 retl库,双A同步需要记录一些日志

源实例和目标实例都要创建该库

建库语句

/*
供otter使用,otter需要对retl.*的读写权限,以及对业务表的读写权限
1.创建databaseretl
*/
CREATEDATABASEretl;/*2.用户授权给同步用户授权*/
CREATEUSERretl@'%'IDENTIFIEDBY'retl';
GRANTUSAGEON*.*TO`retl`@'%';
GRANTSELECT,REPLICATIONSLAVE,REPLICATIONCLIENTON*.*TO`retl`@'%';
GRANTSELECT,INSERT,UPDATE,DELETE,EXECUTEON`retl`.*TO`retl`@'%';
/*业务表授权,这里可以限定只授权同步业务的表*/
GRANTSELECT,INSERT,UPDATE,DELETEON*.*TO`retl`@'%';/*3.创建系统表*/
USEretl;
DROPTABLEIFEXISTSretl.retl_buffer;
DROPTABLEIFEXISTSretl.retl_mark;
DROPTABLEIFEXISTSretl.xdual;CREATETABLEretl_buffer
(
IDBIGINT(20)AUTO_INCREMENT,
TABLE_IDINT(11)NOTNULL,
FULL_NAMEvarchar(512),
TYPECHAR(1)NOTNULL,
PK_DATAVARCHAR(256)NOTNULL,
GMT_CREATETIMESTAMPNOTNULL,
GMT_MODIFIEDTIMESTAMPNOTNULL,
CONSTRAINTRETL_BUFFER_IDPRIMARYKEY(ID)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;CREATETABLEretl_mark
(
IDBIGINTAUTO_INCREMENT,
CHANNEL_IDINT(11),
CHANNEL_INFOvarchar(128),
CONSTRAINTRETL_MARK_IDPRIMARYKEY(ID)
)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;CREATETABLExdual(
IDBIGINT(20)NOTNULLAUTO_INCREMENT,
XtimestampNOTNULLDEFAULTCURRENT_TIMESTAMP,
PRIMARYKEY(ID)
)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;/*4.插入初始化数据*/
INSERTINTOretl.xdual(id,x)VALUES(1,now())ONDUPLICATEKEYUPDATEx=now();

启动channel

查看日志 点击 channel>pipeline 查看 日志

至此双A同步配置完成,

在 database0 中进行 cud操作, 会同步到 database1中,

在database1 中进行 cud操作, 会同步到database0中

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

----------------------------------------- 广告时间 -----------------------------------------

各位看官, 欢迎关注公众号,每天推送有意思的小东西哦!!! 嘻嘻

数据库同步利器 otter 双A同步配置相关推荐

  1. 使用Bucardo配置PostgreSQL14数据库双主同步

    一.前言 目标是 PostgreSQL 的双主同步 Bucardo 官方网站的手册语焉不详 Bucardo 有限制,不同步DDL,也就是表结构变化不会同步,大对象也不会同步,表必须有唯一主键 Buca ...

  2. ott盒子 MySQL_mysql双A同步搭建Otter一键部署教程

    mysql双A同步搭建Otter一键部署教程 Ottter是由阿里巴巴开源的一个数据同步产品,它的最初的目的是为了解决跨国异地机房双A架构,两边可写的场景,目前阿里巴巴B2B内部的本地/异地机房的同步 ...

  3. 数据库双A同步实现方案

    需求: 工作中的业务数据,目前分别存储在美国的服务器和中国的服务器(mysql),需要把对应的表实施数据同步. 解决方案canal(源码java) 这个工具还是挺强大的,主要实现其实类似于mysql的 ...

  4. 数据库binlog同步工具--otter使用指南

    一. Otter简介 otter是一款基于Java且免费.开源基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库的解决方案. 官方描述: 阿里巴巴B2B公司,因为业务 ...

  5. MySQL同步机制、主从复制半同步和双主配置

    复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史. 在2000年,MySQL 3.23.15版本引入了Replication.Replication作为一种准实时同步方式,得到 ...

  6. 数据同步 之 Otter

    一.Otter 语言:java 定位:基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统. 1.工作原理: 2.原理描述 1. 基于Cana ...

  7. mq同步mysql数据 duplicate entry_MySQL数据同步之otter

    一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...

  8. mysql 定时同步数据_MySQL数据同步之otter

    一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...

  9. mysql otter 数据同步_MySQL数据同步之otter

    一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...

最新文章

  1. php程序设计依赖注入_PHP控制反转和依赖注入
  2. 想服务器不宕机,你了解Linux“体检”指标吗?
  3. android 改变图像亮度,【Android】使用SeekBar调整图像的色度、饱和及度亮度
  4. iOS开发之获取当前手机语言
  5. 21. Upgrade-Insecure-Requests: 1
  6. imagej边缘提取
  7. 数字化测图是利用计算机自动绘制地形图,数字化测图详解
  8. 像素、英寸、厘米的换算
  9. 实验室设计规范与标准
  10. Python用selenium爬取高德地图商家数据
  11. mysql lsl_GitHub - LSL-Git/MyBatis_Dynamic_SQL: mybatis 动态SQL使用
  12. 安卓ui xml_创建声明性XML UI语言
  13. python——文档字符串
  14. android开发百度地图步行导航
  15. Android 点击短信链接打开App
  16. 高企!2022年武汉市高新技术企业奖励补贴以及申报条件汇总!
  17. 如何破解EXCEL的单元格保护密码
  18. 使用postcss报错
  19. python同时打开两个文件_在python中使用with打开多个文件的方法
  20. HTML期末学生大作业 基于HTML+CSS+JavaScript通用的后台管理系统ui框架模板

热门文章

  1. 光纤的模式-单模和多模
  2. Google C++编程风格
  3. vue之axios封装
  4. 数据库学习之(5)详解DBMS
  5. SCADS简介及应用
  6. 线性代数之——对称矩阵及正定性
  7. ‘java‘ 不是内部或外部命令,也不是可运行的程序
  8. Text to face:寻找黛玉-从语言描述到人脸图像生成
  9. 【Web前端大作业实例网页代码】html+css新闻资讯网页带dw模板和登陆注册(9页)
  10. Kubernetes secret使用详解