資料庫同步利器 otter 雙A同步配置

天愛有情發表於2020-03-15

阿里 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
      ## 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管理>新增

資料庫同步利器 otter 雙A同步配置

配置 node

機器管理>node管理>新增

資料庫同步利器 otter 雙A同步配置

配置完後會回到列表頁面,可以看到該配置對應的 id

資料庫同步利器 otter 雙A同步配置

記住這個序號

啟動nodenode.deployer-4.2.18

1): 在conf目錄下建立一個 名為 nid 的檔案, 裡面的內容是剛才建立node配置時返回的序號, 比如剛才我建立配置返回的序號為1

那麼我建立的nid檔案的內容為 1

資料庫同步利器 otter 雙A同步配置

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中可以看到狀態為已啟動

資料庫同步利器 otter 雙A同步配置

配置資料庫相關

1. 配置資料來源

配置管理>資料來源配置>新增

這一步的目的是指定同步的資料來源和被同步的資料來源,由於我是本地測試,且只有一個資料來源,配一個就好了

資料庫同步利器 otter 雙A同步配置

  • 注意, 如果點選驗證連結資料來源出錯,提升資料庫編碼不正確,則修改資料庫編碼為 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. 配置資料表

資料庫同步利器 otter 雙A同步配置

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

資料庫同步利器 otter 雙A同步配置

配置canal

canal是阿里開源的用來監聽mysql bnarylog 日誌的一個工具

配置管理>canal>新增canal

資料庫同步利器 otter 雙A同步配置

配置cannel

1. 建立cannel

同步管理>新增

資料庫同步利器 otter 雙A同步配置

2. 配置pipeline

點選 cannel的名稱進入pipeline配置

資料庫同步利器 otter 雙A同步配置
點選新增pipeline

資料庫同步利器 otter 雙A同步配置

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

3.配置pipeline的關係對映表

點選pipeline的名稱進入對映關係表配置

新增關係表配置, 配置好後儲存即可

資料庫同步利器 otter 雙A同步配置

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

4. 配置 database1 到 database0 的pipeline

資料庫同步利器 otter 雙A同步配置

5. 配置 database1 到 database0的表關係對映

點選database1->database0的pipeline的名稱,進入表關係對映配置

資料庫同步利器 otter 雙A同步配置

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

資料庫同步利器 otter 雙A同步配置

檢視日誌 點選 channel>pipeline 檢視 日誌

至此雙A同步配置完成,

在 database0 中進行 cud操作, 會同步到 database1中,

在database1 中進行 cud操作, 會同步到database0中

github:  github.com/alibaba/ott…

----------------------------------------- 廣告時間 -----------------------------------------

各位看官,  歡迎關注公眾號,每天推送有意思的小東西哦!!! 嘻嘻

資料庫同步利器 otter 雙A同步配置

相關文章