在上文Canal大做戰基本已經實現了數據庫實時根據binlog同步到ES的增刪改。可是若要放到生產中,基本配置顯然是不夠的。接下去我就平時遇到的點記錄下來!mysql
重點sql
1.canal服務重啓或者新部署,以前未進行同步的數據該怎麼處理?
這個狀況要分兩種,第一種是以前的數據沒有binlog,那麼這個只能本身經過代碼來進行初始化的同步,第二種是有binlog的。第二種比較好操做,只要指定下canal server起來的時候讀取的binlog便可,以下圖:數據庫
canal.instance.master.journal.name 通常在/var/lib/mysql路徑下,能夠本身決定從哪一個binlog開始。.net
canal.instance.master.position 能夠在mysql下經過show master status in 'xxx'(binlog名) limit 0, 10指令來獲取你須要的position;日誌
這個時候這裏有個坑,就是和instance.properties平級的目錄下有一個meta.dat文件中記錄了code
meta.dat文件中記錄了canal服務取binlog的信息。若是不刪掉,或者修改,那麼就算在instance.properties改了也是不起效果的。server
最後發現canal服務啓動的時候打的日誌就能夠知道成功啦!blog