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

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

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

canal是什么?

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

MySQL主備復制原理

MySQL master將數(shù)據(jù)變更寫入二進制日志(binarylog,其中記錄叫做二進制日志事件binary log events,可以通過show binlog events進行查看)
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技術,所以這里一定需要開啟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重復

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

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

重啟mysql

-- 關閉服務
net stop mysql 
-- 開啟服務
net start mysql 

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

查看二進制文件

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

mysqlbinlog ../data/mysql-bin.000001

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

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

可以通過show master status來查看當前寫入的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í)行完的全局事務的id集合

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

在mysql里面添加以下的相關用戶和權限

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

下載安裝Canal服務

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

1)canal角色

  • canal-admin:canal控制臺,可以統(tǒng)一管理canal服務
  • canal-deployer:也是canal-server:canal的一個節(jié)點服務
  • canal-instance:canal-server中的一個處理實例,可以處理不同的業(yè)務邏輯
  • 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,在兩臺服務器上準備兩個MySQL數(shù)據(jù)庫,其中一個作為源庫,另一個為目標庫,我準備的MySQL源庫服務器IP為:172.17.0.2,MySQL服務端口為3306,目標庫的服務器IP為172.17.0.4,MySQL服務端口為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,然后修改對應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進行查詢數(shù)據(jù)是否成功同步。

總結

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

相關文章

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

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

    在MySQL 5.7中,GROUP BY 子句使用 ORDER BY 時可能導致 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)操作方法,結合實例形式較為詳細的分析了mysql存儲過程創(chuàng)建、調(diào)用及變量創(chuàng)建、賦值具體原理、操作技巧與相關注意事項,需要的朋友可以參考下
    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的重要組件的相關資料,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-12-12
  • MySQL的InnoDB引擎入門學習教程

    MySQL的InnoDB引擎入門學習教程

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

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

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

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

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

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

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

    Mysql中的多級復制方式

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

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

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

最新評論

五家渠市| 巴林左旗| 易门县| 浙江省| 合水县| 墨脱县| 松潘县| 彩票| 寿宁县| 平原县| 纳雍县| 荆门市| 河源市| 南汇区| 界首市| 新沂市| 万山特区| 饶阳县| 苏尼特左旗| 呼伦贝尔市| 翁牛特旗| 隆尧县| 历史| 瓦房店市| 扶风县| 嘉鱼县| 南靖县| 庆阳市| 宿松县| 蓝田县| 六安市| 德阳市| 格尔木市| 通许县| 平武县| 正宁县| 东光县| 长春市| 哈尔滨市| 安仁县| 孝昌县|