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

Mysql主從GTID與binlog如何使用

 更新時間:2024年10月03日 13:43:25   作者:既然選擇了遠方,我便風雨兼程  
MySQL的GTID和binlog是實現(xiàn)高效數(shù)據(jù)復制和恢復的重要機制,GTID保證事務的唯一標識,避免復制沖突;binlog記錄數(shù)據(jù)變更,用于主從復制和數(shù)據(jù)恢復,兩者配合,提高MySQL復制的準確性和管理便捷性

Mysql主從GTID與binlog

GTID與binlog

MySQL GTID(Global Transaction Identifier)和binlog(二進制日志)是用于搭建主從復制的兩種不同的機制。

GTID是MySQL 5.6版本引入的一種全局事務標識符,用于跟蹤和標識復制過程中的事務。每個事務都會被分配一個全局唯一的GTID,無論該事務在哪個數(shù)據(jù)庫實例上執(zhí)行。GTID能夠確保在主從復制中不會出現(xiàn)數(shù)據(jù)沖突或數(shù)據(jù)丟失的情況。使用GTID進行主從復制配置時,主庫將事務的GTID信息寫入binlog,并將binlog傳輸給從庫,從庫使用GTID來確定是否已經(jīng)復制了某個事務,從而保持主從數(shù)據(jù)的一致性。

binlog是MySQL的二進制日志,用于記錄數(shù)據(jù)庫的所有更改操作。它是一種基于文件的日志,可以用于恢復數(shù)據(jù)庫到特定時間點或?qū)⒏膽玫狡渌麛?shù)據(jù)庫實例。在主從復制中,主庫將更改操作寫入binlog,并將binlog傳輸給從庫,從庫根據(jù)binlog中的內(nèi)容來重放主庫上的更改操作,從而實現(xiàn)數(shù)據(jù)復制。

區(qū)別如下

1. GTID是基于事務的標識符,而binlog是基于更改操作的日志。GTID可以確保事務在主從之間的有序復制,而binlog只記錄更改操作的內(nèi)容。

2. GTID可以避免主從復制中的數(shù)據(jù)沖突或數(shù)據(jù)丟失,因為每個事務都有唯一的標識符。而binlog需要在從庫上正確地應用更改操作,以確保數(shù)據(jù)一致性。

3. GTID相對于binlog來說更容易配置和管理,因為它不需要手動設(shè)置和維護binlog文件名和位置信息。

4. GTID還可以支持多主復制,即一個從庫可以連接到多個主庫進行復制,而binlog一般用于單個主庫和單個從庫之間的復制。

GTID工作原理

1、master更新數(shù)據(jù)時,會在事務前產(chǎn)生GTID,一同記錄到binlog日志中。

2、slave端的i/o 線程將變更的binlog,寫入到本地的relay log中。

3、sql線程從relay log中獲取GTID,然后對比slave端的binlog是否有記錄。

4、如果有記錄,說明該GTID的事務已經(jīng)執(zhí)行,slave會忽略。

5、如果沒有記錄,slave就會從relay log中執(zhí)行該GTID的事務,并記錄到binlog

1.準備環(huán)境兩臺機器,關(guān)閉防火墻和selinux。---兩臺機器環(huán)境必須一致。時間也得一致

2.解析/etc/hosts
192.168.246.129  mysql-master
192.168.246.128  mysql-slave

master操作:
[root@mysql-master ~]# vim /etc/my.cnf   #在[mysqld]下添加如下內(nèi)容
server-id=1   #定義server id master必寫 
log-bin = mylog #開啟binlog日志,master比寫
gtid_mode = ON    #開啟gtid
enforce_gtid_consistency=1   #強制gtid
[root@mysql-master ~]# systemctl restart mysqld   #重啟
主服務器創(chuàng)建用戶:
mysql> grant replication  slave,reload,super on *.*  to 'slave'@'%' identified by 'Qf@12345!';
#注:生產(chǎn)環(huán)境中密碼采用高級別的密碼,實際生產(chǎn)環(huán)境中將'%'換成slave的ip
mysql> flush privileges;
注意:如果不成功刪除以前的binlog日志
replication slave:擁有此權(quán)限可以查看從服務器,從主服務器讀取二進制日志。
super權(quán)限:允許用戶使用修改全局變量的SET語句以及CHANGE  MASTER語句
reload權(quán)限:必須擁有reload權(quán)限,才可以執(zhí)行flush  [tables | logs | privileges]
slave操作:
[root@mysql-slave ~]# vim /etc/my.cnf  #添加如下配置
server-id=2
gtid_mode = ON
enforce_gtid_consistency=1
master-info-repository=TABLE
relay-log-info-repository=TABLE
[root@mysql-slave ~]# systemctl restart mysqld
[root@mysql-slave ~]# mysql -uroot -p'qf123'   #登陸mysql
mysql> \e
change master to
master_host='master1',      #主ip 地址  最好用域名
master_user='授權(quán)用戶',     #主服務上面創(chuàng)建的用戶
master_password='授權(quán)密碼', 
master_auto_position=1;
-> ;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
mysql> start slave;   #啟動slave角色
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G  #查看狀態(tài),驗證sql和IO是不是yes。

主從復制binlog日志方式

1、在主服務器上,必須啟用二進制日志記錄并配置唯一的服務器ID。需要重啟Mysql服務。

編輯主服務器的配置文件 my.cnf,添加如下內(nèi)容

添加配置
[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1

創(chuàng)建日志目錄并賦予權(quán)限

[root@mysql-master ~]# mkdir /var/log/mysql
[root@mysql-master ~]# chown -R mysql.mysql /var/log/mysql

重啟服務

[root@mysql-master ~]# systemctl restart mysqld

創(chuàng)建主從同步的用戶:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' identified by 'Qf@12345!';
mysql> flush privileges;

在主服務器上面操作

mysql> show master status\G

在從服務上面操作:

my.cnf配置文件

[mysqld]
server-id=2
重啟服務
[root@mysql-slave ~]# systemctl restart mysqld
設(shè)置密碼
[root@mysql-slave ~]# grep pass /var/log/mysqld.log
[root@mysql-slave ~]# mysqladmin -uroot -p'ofeUcgA)4/Yg' password 'Qf@12345!'
登錄mysql
[root@mysql-slave ~]# mysql -uroot -p'Qf@12345!'
mysql> \e
CHANGE MASTER TO
MASTER_HOST='mysql-master',
MASTER_USER='repl',
MASTER_PASSWORD='Qf@12345!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=849;
    -> ;
mysql> start slave;
mysql> show slave status\G

參數(shù)解釋:

CHANGE MASTER TO
MASTER_HOST='master2.example.com', #主服務器ip
MASTER_USER='replication', #主服務器用戶
MASTER_PASSWORD='password', #用戶密碼
MASTER_PORT=3306, #端口
MASTER_LOG_FILE='master2-bin.001', #binlog日志文件名稱
MASTER_LOG_POS=4, #日志位置

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql如何匹配JSON中的某個字段

    mysql如何匹配JSON中的某個字段

    在MySQL數(shù)據(jù)庫中,可以通過JSON_EXTRACT函數(shù)或->>運算符查詢JSON類型字段內(nèi)特定鍵的值,例如,使用JSON_EXTRACT(data, '$.name')或data->>'$.name'從data字段中提取name鍵的值,并用于比較得到name為"張三"的記錄
    2024-11-11
  • explain執(zhí)行計劃需要關(guān)注的幾個關(guān)鍵字段詳細解釋

    explain執(zhí)行計劃需要關(guān)注的幾個關(guān)鍵字段詳細解釋

    這篇文章主要介紹了explain執(zhí)行計劃需要關(guān)注的幾個關(guān)鍵字段的相關(guān)資料,EXPLAIN是MySQL性能優(yōu)化的關(guān)鍵工具,它提供了查詢執(zhí)行計劃的詳細信息,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • MySQL數(shù)據(jù)庫高級查詢和多表查詢

    MySQL數(shù)據(jù)庫高級查詢和多表查詢

    這篇文章主要介紹了MySQL數(shù)據(jù)庫高級查詢和多表查詢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能

    MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能

    這篇文章主要介紹了MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • mysql中insert?into...select語句優(yōu)化方式

    mysql中insert?into...select語句優(yōu)化方式

    這篇文章主要介紹了mysql中insert?into...select語句優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-04-04
  • 刪除mysql服務的具體方法

    刪除mysql服務的具體方法

    在本篇文章里小編給各位分享了是關(guān)于刪除mysql服務的具體方法,需要的朋友們可以學習下。
    2020-07-07
  • MySql數(shù)據(jù)庫自動遞增值問題

    MySql數(shù)據(jù)庫自動遞增值問題

    這篇文章主要介紹了MySql數(shù)據(jù)庫自動遞增值問題的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • MySQL 5.6.36 Windows x64位版本的安裝教程詳解

    MySQL 5.6.36 Windows x64位版本的安裝教程詳解

    這篇文章主要介紹了MySQL 5.6.36 Windows x64位版本的安裝教程詳解,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-05-05
  • MySQL常用存儲引擎功能與用法詳解

    MySQL常用存儲引擎功能與用法詳解

    這篇文章主要介紹了MySQL常用存儲引擎功能與用法,較為詳細的分析了mysql存儲引擎的分類、功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-04-04
  • mysql修改開啟允許遠程連接的方法

    mysql修改開啟允許遠程連接的方法

    這篇文章主要為大家詳細介紹了mysql修改開啟允許遠程連接的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論

太仓市| 邵东县| 尼勒克县| 尚志市| 镇康县| 宝应县| 云安县| 保康县| 广元市| 庆云县| 法库县| 卢龙县| 德昌县| 秦皇岛市| 隆德县| 丰原市| 罗江县| 岢岚县| 新津县| 桐城市| 凤翔县| 德保县| 密云县| 宁远县| 太谷县| 赣州市| 玛沁县| 黑山县| 濮阳市| 白沙| 沭阳县| 德保县| 江安县| 洛扎县| 康平县| 鹤壁市| 龙泉市| 綦江县| 高陵县| 稷山县| 丹棱县|