记录otter遇到问题

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

1、源码编译找不到jtester包

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

cd otter/lib

./install.sh (安装jtester,若没有权限执行chmod +x install.sh)

cd ..

mvn clean install -Dmaven.test.skip -Denv=release

2、node部署依赖aria2

aria2的安装依赖本机的gcc版本,可升级gcc再安装最新aria2,也可以使用低版本aria2。

当前gcc是4.4.7,采用低版本aria2:

wget https://ayera.dl.sourceforge.net/project/aria2/stable/aria2-1.16.4/aria2-1.16.4.tar.gz
tar -xzf aria2-1.16.4.tar.gz
cd aria2-1.16.4
./configure
make & make install

3、分库分表自增id问题

在分库分表情况下,把多表合成一个大表,如果用自增id作为主键,则会出现数据覆盖情况。因为otter以主键生成新sql插入目标数据库。

解决办法:在pipeline设置同步字段时候去掉id,再表新增其他字段作为主键,例如orderId/userId

4、全量同步数据

4.1、在源DB创建retl库,执行source otter-system-ddl-mysql.sql
4.2、对source端的用户授与retl这个数据库的select权限
4.3、执行 insert into retl.retl_buffer(ID,TABLE_ID, FULL_NAME,TYPE,PK_DATA,GMT_CREATE,GMT_MODIFIED) (select null,0,'数据库名称.表名称','U',主键名称,now(),now() from 数据库名称.表名称);

4.4、两种方式插入需要同步数据:一指定table-id(就是manager中表配置的序号)而full-name置null、二使用full-name(schemaName.tableName)而table-id置0

5、数据库主备切换问题

如果MySQL使用VIP是去HA,当MYSQL发生主从切换的时候,canal会可能会报错,因为和备机上的binlog和position对不上。

canal v1.1.0已支持gtid模式订阅

6、同步延迟问题

6.1、批量改表可能产生上g的binlog,导致延迟

6.2、数据库QPS>3000,otter同步数据会出现延迟

6.3、同个node节点上的pipeline延迟会相互影响

6.4、单个pipeline能够同步的数据最高不超过25万/秒

7、

转载于:https://my.oschina.net/kyle1970/blog/2984824

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值