日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ubuntun系统mysql数据库同步_Canal 实现 Mysql数据库实时数据同步

發布時間:2024/8/23 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntun系统mysql数据库同步_Canal 实现 Mysql数据库实时数据同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

1.1 canal介紹

? Canal是一個基于MySQL二進制日志的高性能數據同步系統。Canal廣泛用于阿里巴巴集團(包括https://www.taobao.com),以提供可靠的低延遲增量數據管道,github地址:https://github.com/alibaba/canal

Canal Server能夠解析MySQL binlog并訂閱數據更改,而Canal Client可以實現將更改廣播到任何地方,例如數據庫和Apache Kafka。

它具有以下功能:

  • 支持所有平臺。
  • 支持由Prometheus提供支持的細粒度系統監控。
  • 支持通過不同方式解析和訂閱MySQL binlog,例如通過GTID。
  • 支持高性能,實時數據同步。(詳見Performance)
  • Canal Server和Canal Client都支持HA / Scalability,由Apache ZooKeeper提供支持
  • Docker支持。

缺點:

不支持全量更新,只支持增量更新。

完整wiki地址:https://github.com/alibaba/canal/wiki

1.2 運作原理

原理很簡單:

  • Canal模擬MySQL的slave的交互協議,偽裝成mysql slave,并將轉發協議發送到MySQL Master服務器。
  • MySQL Master接收到轉儲請求并開始將二進制日志推送到slave(即canal)。
  • Canal將二進制日志對象解析為自己的數據類型(原始字節流)
  • 如圖所示:

    準備工作

    2.1 下載解壓canal-server

    ? 通過 github 下載 canal-server release 版本(本次安裝文檔使用v1.1.4)

    root@locahost:/# wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz

    ? 解壓

    tar -zxvf canal.deployer-1.1.4.tar.gz

    2.2 下載解壓 canal-adapter

    ? 通過 github 下載 canal-adapter release 版本(本次安裝文檔使用v1.1.4)

    root@locahost:/# wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.adapter-1.1.4.tar.gz

    ? 解壓

    tar -zxvf canal.adapter-1.1.4.tar.gz

    配置 canal-server

    3.1 canal-server 配置

    ? 解壓之后進入 conf文件夾中,修改 canal.properties 根據實際需要來修改(如果不使用kafka或MQ 默認tcp即可)

    canal.destinations = prod # 指定instance的名字多個使用逗號分隔

    ? 保存之后在conf目錄創建 prod 文件夾并將 example文件夾中的 nstance.properties copy 到and_prod中

    mkdir ant_prod #創建文件夾 cp example/nstance.properties prod/ # copy 文件

    ? 修改 nstance.properties 配置如下:

    canal.instance.master.address=127.0.0.1:3306 # 源Mysql地址 canal.instance.dbUsername=canal # 源Mysql賬號 canal.instance.dbPassword=canal # 源Mysql密碼 canal.instance.connectionCharset=UTF-8 # 與源數據庫編碼格式一致 canal.instance.defaultDatabaseName=test_database # 默認監聽源數據庫

    3.2 canal-server 啟動

    ? 進入 canal-server bin 目錄 啟動

    cd canal-server/bin # 進入目錄 ./startup.sh & # 后臺啟動

    ? 查看日志,是否啟動成功

    cd canal-server/logs/ant_prod #進入日志目錄

    ? 啟動成功:

    2020-06-09 17:13:04.956 [main] WARN o.s.beans.GenericTypeAwarePropertyDescriptor - Invalid JavaBean property 'connectionCharset' being accessed! Ambiguous write methods found next to actually used [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.nio.charset.Charset)]: [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.lang.String)] 2020-06-09 17:13:04.990 [main] INFO c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [canal.properties] 2020-06-09 17:13:04.990 [main] INFO c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [ant_prod/instance.properties] 2020-06-09 17:13:05.305 [main] INFO c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start CannalInstance for 1-ant_prod 2020-06-09 17:13:05.311 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^.*..*$ 2020-06-09 17:13:05.311 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table black filter : 2020-06-09 17:13:05.315 [main] INFO c.a.otter.canal.instance.core.AbstractCanalInstance - start successful.... 2020-06-09 17:13:05.422 [destination = ant_prod , address = rm-wz99s5v03gso12521.mysql.rds.aliyuncs.com/192.xxxxxx:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position 2020-06-09 17:13:05.423 [destination = ant_prod , address = rm-wz99s5v03gso12521.mysql.rds.aliyuncs.com/192.xxxxxx:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status 2020-06-09 17:13:06.483 [destination = ant_prod , address = rm-wz99s5v03gso12521.mysql.rds.aliyuncs.com/192.xxxxxx:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> find start position successfully, EntryPosition[included=false,journalName=mysql-bin.000234,position=6676924,serverId=184376678,gtid=,timestamp=1591693973000] cost : 1051ms , the next step is binlog dump

    配置 canal-adapter

    4.1 canal-adapter 配置

    ? 由于Mysql 是8.0 這里需要下載 mysql-connector-java-8.0.20.jar,并將其放入lib中

    cp mysql-connector-java-8.0.20.jar /canal-adapter/lib/

    ? 解壓之后進入 conf文件夾中,修改 application.yml

    server:port: 8089 spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8default-property-inclusion: non_null canal.conf:mode: tcp # kafka rocketMQcanalServerHost: 127.0.0.1:11111batchSize: 500syncBatchSize: 1000retries: 0timeout:accessKey:secretKey: # 源Mysql 地址賬號密碼等srcDataSources: defaultDS:url: jdbc:mysql://localhost:3306/test_database?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghaiusername: canalpassword: canal # 需要實時同步數據庫,如果多個實例進行區分即可canalAdapters:- instance: prod # canal instance,在canal-server中指定instance的名稱groups:- groupId: g1outerAdapters:- name: rdbkey: mysql1 # 唯一標示properties:jdbc.driverClassName: com.mysql.jdbc.Driverjdbc.url: jdbc:mysql://localhost:3306/test_database_01?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghaijdbc.username: canaljdbc.password: canal

    ? 編輯rdb目錄下面表的映射文件,數據庫/表 (多個表創建多個映射文件,文件名對應表名)以此類推

    dataSourceKey: defaultDS destination: prod outerAdapterKey: mysql1 concurrent: true dbMapping:database: test_database_01table: testtargetTable: test_database_01.testtargetPk:id: idmapAll: true

    4.1 canal-adapter 啟動

    ? 進入 canal-adapter/bin 目錄 啟動

    cd canal-adapter/bin # 進入目錄 ./startup.sh & # 后臺啟動

    ? 查看日志,是否啟動成功

    cd canal-adapter/adapter/logs/ #進入日志目錄 tail -f adapter.log # 查看日志是否啟動成功

    測試數據庫同步

    更新/刪除/批量插入/批量更新/批量刪除

    原文鏈接:https://www.jianshu.com/p/d4c177f0d831 作者:qingwenLi

    總結

    以上是生活随笔為你收集整理的ubuntun系统mysql数据库同步_Canal 实现 Mysql数据库实时数据同步的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产午夜性春猛交ⅹxxx | 天天摸天天操天天干 | 男人的天堂免费视频 | 91在线观看免费视频 | 午夜精品导航 | 亚洲欧美色视频 | 日本成人在线一区 | 午夜极品 | 国产视频二区 | 精品在线免费观看视频 | 成人免费黄色网址 | 综合九九 | www.av日韩| 强睡邻居人妻中文字幕 | 欧美国产综合 | 韩国中文字幕在线观看 | 牛牛在线免费视频 | 97国产精品视频人人做人人爱 | 翔田千里一区二区三区av | 日本不卡高字幕在线2019 | 色哟哟一区二区三区 | 成人av影视在线观看 | 一区自拍| 国产精品麻豆成人av电影艾秋 | av导航大全 | 日本精品久久久久久 | av网在线 | 国产污视频在线播放 | 神秘马戏团在线观看免费高清中文 | 日韩和的一区二区 | 精品少妇一区二区三区免费观看 | 69堂精品 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 日韩aaaaa| 日韩成人午夜电影 | 菲律宾av | 精品熟妇一区二区三区 | 天天躁日日躁aaaaxxxx | 色婷婷精品视频 | 欧美三级视频在线 | 亚洲激情一区二区三区 | 国产精品99精品无码视 | 日日噜噜夜夜狠狠久久波多野 | 国产精品秘入口18禁麻豆免会员 | 97网站| 女优一区 | 国产精品久久久久久在线观看 | 啪啪网页| 五月天开心网 | jjzzjjzz欧美69巨大 | 久久性感美女视频 | 亚洲热av | 不卡的免费av | 中文免费在线观看 | 国产69精品久久久久久久 | 亚洲av无码国产精品久久 | 欧美乱淫 | 精品在线小视频 | 男女插插网站 | 波多野结衣不卡视频 | 欧美久久一区二区三区 | 国产成人无码精品久久二区三 | 成人在线观看小视频 | 国产精品视频一区在线观看 | 精品欧美一区二区久久久 | 捆绑少妇玩各种sm调教 | 狂野欧美性猛交免费视频 | 欧美性极品 | ass日本寡妇pics| 国产精品久免费的黄网站 | 日本色www | 91在线公开视频 | 国产视频一区二区三区四区 | 欧美性猛交久久久久 | 国产真人做爰毛片视频直播 | 欧美一级性片 | 亚洲一片| 国产精品va在线观看无码 | 国产精品无 | 国产成人aaaa | 亚洲美女一区二区三区 | 欧美久草 | 国产精品高潮呻吟久久久 | 学生孕妇videosex性欧美 | 日韩欧美在线观看视频 | 在线观看欧美精品 | 精品久久久久一区二区国产 | youjizz.com日本| 可以看黄色的网站 | 我们2018在线观看免费版高清 | 亚洲AV成人无码久久精品巨臀 | 亚洲一区免费视频 | 天堂在线中文 | 超碰五月天 | 天天搞夜夜爽 | 久久综合爱 | 久久夜色精品亚洲 | 国产草草 | 中文精品无码中文字幕无码专区 |