欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

兩個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ù)變更寫入二進制日志(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技術(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日志功能,并可以定制文件名稱,默認為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

-- 關(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 兩個文件。

查看二進制文件

在dos命令行中,進入到mysql的安裝目錄下,即D:\softinstall\mysql\mysql-5.7.38-winx64,再進到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進行查詢數(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)文章

  • Mysql中Identity 詳細介紹

    Mysql中Identity 詳細介紹

    這篇文章主要介紹了Mysql中Identity 的相關(guān)資料,并附示例代碼,需要的朋友可以參考下
    2016-09-09
  • 查看MySQL的錯誤日志的方法

    查看MySQL的錯誤日志的方法

    我們經(jīng)常在運行MySQL時會出一些錯誤,也經(jīng)常被這些錯誤搞得暈頭轉(zhuǎn)向。當(dāng)然解決這些問題的首要任務(wù)是找到日志信息。
    2010-07-07
  • mysql-connector-java與Mysql、Java的對應(yīng)版本問題

    mysql-connector-java與Mysql、Java的對應(yīng)版本問題

    這篇文章主要介紹了mysql-connector-java與Mysql、Java的對應(yīng)版本問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • mysql 8.0.25 安裝配置方法圖文教程

    mysql 8.0.25 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.25 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • MySQL 5.7安裝中的常見問題分析及解決方案

    MySQL 5.7安裝中的常見問題分析及解決方案

    在Linux服務(wù)器上安裝MySQL數(shù)據(jù)庫時,尤其是在CentOS 7等操作系統(tǒng)上,可能會遇到一些安裝包和依賴關(guān)系相關(guān)的錯誤,這些問題的產(chǎn)生原因可以是多個方面,本文將通過對具體錯誤的分析和解決方案的闡述,幫助大家快速解決在安裝MySQL 5.7版本過程中可能遇到的問題
    2024-11-11
  • phpstudy安裝后mysql無法啟動的解決

    phpstudy安裝后mysql無法啟動的解決

    本文主要介紹了phpstudy安裝后mysql無法啟動的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • mysql 8.0.17 安裝圖文教程

    mysql 8.0.17 安裝圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.17 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • MySql總彈出mySqlInstallerConsole窗口的解決方法

    MySql總彈出mySqlInstallerConsole窗口的解決方法

    這篇文章主要介紹了MySql總彈出mySqlInstallerConsole窗口的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Mysql提升大數(shù)據(jù)表拷貝效率的解決方案

    Mysql提升大數(shù)據(jù)表拷貝效率的解決方案

    這篇文章主要給大家介紹了關(guān)于Mysql提升大數(shù)據(jù)表拷貝效率的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 一文帶你了解MySQL基于規(guī)則的優(yōu)化

    一文帶你了解MySQL基于規(guī)則的優(yōu)化

    MySQL依據(jù)一些規(guī)則,竭盡全力的把這些很糟糕的語句轉(zhuǎn)換成某種可以比較高效執(zhí)行的形式,這個過程也可以被稱作查詢重寫,本章主要就是詳細講解下這些比較重要的重寫規(guī)則,感興趣的小伙伴可跟著小編一起來學(xué)習(xí)
    2023-05-05

最新評論