阿里 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 ## otter manager http port 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: github.com/alibaba/ott…
----------------------------------------- 廣告時間 -----------------------------------------
各位看官, 歡迎關注公眾號,每天推送有意思的小東西哦!!! 嘻嘻