数据库同步利器 otter 双A同步配置
阿里 Otter 简单双A同步配置
环境准备:
zookeeper
manager.deployer-4.2.18
node.deployer-4.2.18
环境搭建:
启动
zookeeper
启动
manager.deployer-4.2.18
2.启动managerwindows:
bin/startup.bat
或者linux:bin/startup.sh
浏览器访问
http://localhost:9999/
进入otter图形化配置界面启动前更改 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-8mysql修改方式: 修改
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同步配置相关推荐
- 使用Bucardo配置PostgreSQL14数据库双主同步
一.前言 目标是 PostgreSQL 的双主同步 Bucardo 官方网站的手册语焉不详 Bucardo 有限制,不同步DDL,也就是表结构变化不会同步,大对象也不会同步,表必须有唯一主键 Buca ...
- ott盒子 MySQL_mysql双A同步搭建Otter一键部署教程
mysql双A同步搭建Otter一键部署教程 Ottter是由阿里巴巴开源的一个数据同步产品,它的最初的目的是为了解决跨国异地机房双A架构,两边可写的场景,目前阿里巴巴B2B内部的本地/异地机房的同步 ...
- 数据库双A同步实现方案
需求: 工作中的业务数据,目前分别存储在美国的服务器和中国的服务器(mysql),需要把对应的表实施数据同步. 解决方案canal(源码java) 这个工具还是挺强大的,主要实现其实类似于mysql的 ...
- 数据库binlog同步工具--otter使用指南
一. Otter简介 otter是一款基于Java且免费.开源基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库的解决方案. 官方描述: 阿里巴巴B2B公司,因为业务 ...
- MySQL同步机制、主从复制半同步和双主配置
复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史. 在2000年,MySQL 3.23.15版本引入了Replication.Replication作为一种准实时同步方式,得到 ...
- 数据同步 之 Otter
一.Otter 语言:java 定位:基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统. 1.工作原理: 2.原理描述 1. 基于Cana ...
- mq同步mysql数据 duplicate entry_MySQL数据同步之otter
一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...
- mysql 定时同步数据_MySQL数据同步之otter
一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...
- mysql otter 数据同步_MySQL数据同步之otter
一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...
最新文章
- php程序设计依赖注入_PHP控制反转和依赖注入
- 想服务器不宕机,你了解Linux“体检”指标吗?
- android 改变图像亮度,【Android】使用SeekBar调整图像的色度、饱和及度亮度
- iOS开发之获取当前手机语言
- 21. Upgrade-Insecure-Requests: 1
- imagej边缘提取
- 数字化测图是利用计算机自动绘制地形图,数字化测图详解
- 像素、英寸、厘米的换算
- 实验室设计规范与标准
- Python用selenium爬取高德地图商家数据
- mysql lsl_GitHub - LSL-Git/MyBatis_Dynamic_SQL: mybatis 动态SQL使用
- 安卓ui xml_创建声明性XML UI语言
- python——文档字符串
- android开发百度地图步行导航
- Android 点击短信链接打开App
- 高企!2022年武汉市高新技术企业奖励补贴以及申报条件汇总!
- 如何破解EXCEL的单元格保护密码
- 使用postcss报错
- python同时打开两个文件_在python中使用with打开多个文件的方法
- HTML期末学生大作业 基于HTML+CSS+JavaScript通用的后台管理系统ui框架模板