最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

兩個windows服務(wù)器使用canal實現(xiàn)mysql實時同步

 更新時間:2025年03月08日 10:56:28   投稿:yin  
canal是阿里基于java寫的一個組件,他的作用是canal.deployer讀取mysql數(shù)據(jù)的binlog日志,然后canal.adapter將其轉(zhuǎn)換為對應(yīng)的數(shù)據(jù)(數(shù)據(jù)的變化或者變化后的數(shù)據(jù),跟配置有關(guān)),并且同步到相關(guān)中間件,本文實現(xiàn)兩個windows服務(wù)器使用canal實現(xiàn)mysql主從復(fù)制實時同步

canal是什么?

canal是阿里基于java寫的一個組件,他的作用是canal.deployer讀取mysql數(shù)據(jù)的binlog日志,然后canal.adapter將其轉(zhuǎn)換為對應(yīng)的數(shù)據(jù)(數(shù)據(jù)的變化或者變化后的數(shù)據(jù),跟配置有關(guān)),并且同步到相關(guān)中間件。本文實現(xiàn)兩個windows服務(wù)器使用canal實現(xiàn)mysql主從復(fù)制實時同步。

MySQL主備復(fù)制原理

MySQL master將數(shù)據(jù)變更寫入二進(jìn)制日志(binarylog,其中記錄叫做二進(jìn)制日志事件binary log events,可以通過show binlog events進(jìn)行查看)
MySQL slave 將master的 binary log events拷貝到它的中繼日志(relay log)
MySQL slave 重放relay log中事件,將數(shù)據(jù)變更反映它自己的數(shù)據(jù)

canal 工作原理

canal 模擬 MySQL slave的交互協(xié)議,偽裝自己為MySQL slave,向MySQL master發(fā)送dump協(xié)議
MySQL master 收到dump請求,開始推送binary log給slave (即canal )
canal 解析 binary log 對象(原始為 byte 流)

開啟mysql的binlog

canal的原理是基于mysql binlog技術(shù),所以這里一定需要開啟mysql的binlog寫入功能。

檢查binlog功能是否有開啟

-- OFF 表示功能未開啟
show variables like 'log_bin';

binlog格式

binlog記錄格式有兩種,statement/row,其中statment記錄SQL格式,row格式記錄每行的變更內(nèi)容,控制格式的參數(shù)有三種,statement/mix/row,其中mix表示兩者的混合

show variables like '%binlog_format%';

如何開啟binlog功能

配置my.ini,在[mysqld] 下添加:

log-bin=mysql-bin
binlog_format=ROW
server-id=1

注意:mysql實例id,不能和canal的slaveId重復(fù)

binlog命令行參數(shù)詳解:

  • log-bin [=file_name] 此參數(shù)表示啟用binlog日志功能,并可以定制文件名稱,默認(rèn)為mysql-bin。存放目錄是mysql安裝目錄的data文件夾下。
  • binlog_format 此參數(shù)配置binlog的日志格式,默認(rèn)為mixed。
  • max_binlog_size此參數(shù)配置binlog的日志最大值,最大和默認(rèn)值是1GB。
  • max_binlog_cache_size此參數(shù)表示binlog使用最大內(nèi)存的數(shù)。
  • binlog-do-db=db_name 此參數(shù)表示只記錄指定數(shù)據(jù)庫的二進(jìn)制日志。
  • binlog-ignore-db=db_name此參數(shù)表示不記錄指定的數(shù)據(jù)庫的二進(jìn)制日志。
  • expire_logs_days 此參數(shù)表示binlog日志保留的時間,默認(rèn)單位是天。

重啟mysql

-- 關(guān)閉服務(wù)
net stop mysql 
-- 開啟服務(wù)
net start mysql 

重啟后在D:\softinstall\mysql\mysql-5.7.38-winx64\data\目錄下會產(chǎn)生mysql-bin.000001 和 mysql-bin.index 兩個文件。

查看二進(jìn)制文件

在dos命令行中,進(jìn)入到mysql的安裝目錄下,即D:\softinstall\mysql\mysql-5.7.38-winx64,再進(jìn)到bin/目錄下,執(zhí)行mysqlbinlog命令查看日志:

mysqlbinlog ../data/mysql-bin.000001

為了方便查看日志內(nèi)容 可以導(dǎo)出到.sql文件

mysqlbinlog ../data/mysql-bin.000001 ->a.sql

可以通過show master status來查看當(dāng)前寫入的binlog的位點,其中:

  • File表示下一個binlog的bytes內(nèi)容即將寫入的文件名
  • position表示下一個binlog的bytes內(nèi)容寫入到file中的位點的起點(byte字節(jié)數(shù))
  • Binlog_Do_DB表示需要記錄binlog的庫名列表,也就是白名單
  • Binlog_Ignore_DB表示需要忽略的binlog的庫名列表,也就是黑名單
  • Executed_Gtid_Set表示本庫中已經(jīng)執(zhí)行完的全局事務(wù)的id集合

可以通過show binary logs來查看binlog列表,表示本地保存的binlog及其大小(byte字節(jié)數(shù))

在mysql里面添加以下的相關(guān)用戶和權(quán)限

CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
-- 注意權(quán)限問題,否則在后續(xù)的一些操作中會提示沒有權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

下載安裝Canal服務(wù)

推薦canal1.1.5,只需要使用jdk1.8。canal1.1.6,該版本需要使用jdk11+

1)canal角色

  • canal-admin:canal控制臺,可以統(tǒng)一管理canal服務(wù)
  • canal-deployer:也是canal-server:canal的一個節(jié)點服務(wù)
  • canal-instance:canal-server中的一個處理實例,可以處理不同的業(yè)務(wù)邏輯
  • canal-adaper:canal適配器,canal 1.1.1之后,提供了適配器功能,可將canal server的數(shù)據(jù)直接輸出到目的地,不需要用戶編寫客戶端(個性化需求還需要用戶編寫客戶端實現(xiàn))

2)下載地址

https://github.com/alibaba/canal/releases

 從canal官網(wǎng)下載canal.deployer和canal.deployer,在兩臺服務(wù)器上準(zhǔn)備兩個MySQL數(shù)據(jù)庫,其中一個作為源庫,另一個為目標(biāo)庫,我準(zhǔn)備的MySQL源庫服務(wù)器IP為:172.17.0.2,MySQL服務(wù)端口為3306,目標(biāo)庫的服務(wù)器IP為172.17.0.4,MySQL服務(wù)端口為3307。

canal.deployer

修改conf/example/instance.properties文件,如下部分:

即將canal.instance.master.address參數(shù)值改為172.17.0.2:3306

canal.adapter

修改conf/application.yml文件,如下部分:

即注釋掉srcDataSources部分,修改driverClassName為com.mysql.cj.jdbc.Driver,然后修改對應(yīng)url,用戶名和密碼。

修改conf/rdb/mytest_user.yml文件,如下部分:

啟動canal server和canal adapter

啟動canal server,如下:bin/startup.bat

啟動canal adapter,如下:bin/startup.bat

在172.17.0.2的數(shù)據(jù)庫上執(zhí)行插入語句,在172.17.0.4進(jìn)行查詢數(shù)據(jù)是否成功同步。

總結(jié)

到此這篇關(guān)于兩個windows服務(wù)器使用canal實現(xiàn)mysql實時同步的文章就介紹到這了,更多相關(guān)canal實現(xiàn)mysql主從復(fù)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql5.7版本先order by再group by失效的問題及解決

    mysql5.7版本先order by再group by失效的問題及解決

    在MySQL 5.7中,GROUP BY 子句使用 ORDER BY 時可能導(dǎo)致 ORDER BY 失效,解決方案包括:在 ORDER BY 后面使用大 LIMIT、在 ORDER BY 前加 GROUP BY ID 或使用 DISTINCT
    2026-03-03
  • mysql存儲過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法

    mysql存儲過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET

    這篇文章主要介紹了mysql存儲過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法,結(jié)合實例形式較為詳細(xì)的分析了mysql存儲過程創(chuàng)建、調(diào)用及變量創(chuàng)建、賦值具體原理、操作技巧與相關(guān)注意事項,需要的朋友可以參考下
    2019-12-12
  • Mysql實現(xiàn)合并多個分組(GROUP_CONCAT及其平替函數(shù))

    Mysql實現(xiàn)合并多個分組(GROUP_CONCAT及其平替函數(shù))

    MySQL 中提供了多種合并字符串的函數(shù)和操作方法,包括 GROUP_CONCAT、CONCAT_WS 和 CONCAT 等,本文介紹了 MySQL 中 GROUP_CONCAT 函數(shù)以及 CONCAT_WS、CONCAT 函數(shù)并通過示例代碼演示了它們的用法,感興趣的可以了解一下
    2023-10-10
  • mysql innodb的重要組件匯總

    mysql innodb的重要組件匯總

    這篇文章主要介紹了mysql innodb的重要組件的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-12-12
  • MySQL的InnoDB引擎入門學(xué)習(xí)教程

    MySQL的InnoDB引擎入門學(xué)習(xí)教程

    這篇文章主要介紹了MySQL的InnoDB引擎入門學(xué)習(xí)教程,對InnoDB的存儲結(jié)構(gòu)有一個較好的總結(jié),需要的朋友可以參考下
    2015-11-11
  • MySQL中B樹索引和B+樹索引的區(qū)別詳解

    MySQL中B樹索引和B+樹索引的區(qū)別詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL中B樹索引和B+樹索引的區(qū)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • MySQL創(chuàng)建、修改和刪除表操作指南

    MySQL創(chuàng)建、修改和刪除表操作指南

    MySQL是最常用的數(shù)據(jù)庫,在數(shù)據(jù)庫操作中,基本都是增刪改查操作,簡稱CRUD,下面這篇文章主要給大家介紹了關(guān)于MySQL創(chuàng)建、修改和刪除表的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • MySQL查詢數(shù)據(jù)庫中某個庫、表、索引等所占空間的大小

    MySQL查詢數(shù)據(jù)庫中某個庫、表、索引等所占空間的大小

    MySQL是一個非常流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它的查詢操作是非常強大和靈活的。查詢的效率不僅取決于表的大小,而且還取決于索引的大小,本文主要介紹了MySQL查詢數(shù)據(jù)庫中某個庫、表、索引等所占空間的大小,感興趣的可以了解一下
    2024-01-01
  • Mysql中的多級復(fù)制方式

    Mysql中的多級復(fù)制方式

    這篇文章主要介紹了Mysql中的多級復(fù)制方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MYSQL配置參數(shù)優(yōu)化詳解

    MYSQL配置參數(shù)優(yōu)化詳解

    MySQL是優(yōu)化難度最大的一個部分,不但需要理解一些MySQL專業(yè)知識,同時還需要長時間的觀察統(tǒng)計并且根據(jù)經(jīng)驗 進(jìn)行判斷,然后設(shè)置合理的參數(shù)。下面我們了解一下MySQL優(yōu)化的一些基礎(chǔ)
    2018-07-07

最新評論

松溪县| 浦江县| 伊吾县| 华蓥市| 顺平县| 宜都市| 平果县| 南溪县| 若尔盖县| 新邵县| 石屏县| 元朗区| 嘉荫县| 唐海县| 秦皇岛市| 朝阳县| 呼玛县| 桐庐县| 南昌县| 宁德市| 友谊县| 交口县| 会宁县| 喀喇| 土默特右旗| 资阳市| 榆中县| 聂拉木县| 和田县| 上高县| 海安县| 旅游| 建水县| 肥东县| 富源县| 濮阳县| 玉树县| 洪湖市| 镇沅| 四会市| 申扎县|