上面的是配置說明,下面的是配置過程:環境背景是兩個數據庫同步到異地的兩個數據庫: A-C、B-D。一共用了5台主機,192.168.64.132~134、139、140。zk部署在192.168.64.132~134。134部署3個實例,
132、133各部署一個實例;實例類型為observer。node節點也是在192.168.64.132~134上各配置1個。134配置2個canal實例和manager。
192.168.64.132~133 、192.168.64.139~140分別各部署一個MySQL實例。同步規則:139->132、140->133其他的配置這裡不說,在manager上配置的時候,簡單說明一下。這裡的服務器內部環境配置跳過。
manager配置: 操作步驟: 1.添加zk群集 2.添加node 3.添加數據庫: a. 源庫 jdbc:mysql://192.168.64.139:3306 b.目標 jdbc:mysql://192.168.64.132:3306 4.添加同步表信息: a.源數據表 .* b.目標數據表 .* 5.添加canal: a.提供數據庫IP信息 6.添加channel: 7.添加pipeline: a.選擇node節點 b.選擇canal 8.添加同步映射規則 a.定義源表和目標表的同步關系 9.啟動 10.測試數據添加zk群集:機器管理->添加zookeeper管理:
群集列表以逗號分隔,冒號結束
添加node節點:機器管理->添加node管理:
機器端口建議為2088
紅色方框中的需要就是我們上面所說的nid標識
我們把nid添加到服務器的node裡面吧,啟動一下node
添加數據庫:這裡使用默認的test庫。源和目標庫都要有相應的庫: 字符集: [client] default-character-set=utf8 [mysqld] character-set-server=utf8 表: CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment COMMENT '用戶ID', `name` varchar(50) NOT NULL default '' COMMENT '名稱', `sex` int(1) NOT NULL default '0' COMMENT '0為男,1為女', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
配置數據表:
無論是目標還是源,都要有一樣的庫表存在
添加canal: 這裡是在一個服務器配置兩個canal實例:需要考慮到id、port沖突: 添加channel: 添加pipelin: 添加同步映像規則: 開啟同步: 測試數據: 多個實例和單個實例都是一樣的,在這個環境中;兩個源庫,用的是兩個canal模擬slave。不同的庫關聯相對應的canal、node,即可。這裡我們又想到,上面的實例只是單個庫--->單個庫。 若是多個庫呢?如何破?其實都是一樣的,我們可以在同一個channal--> Pipeline-->映射表;添加映射表即可。也可以做一個庫表對應一個channal--> Pipeline-->映射表。方法有很多。
上回文檔:基於alibaba開源的分布式數據同步系統安裝配置文檔otter之環境配置