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

Mysql配置主從復(fù)制-GTID模式詳解

 更新時(shí)間:2024年04月18日 09:24:38   作者:想養(yǎng)一只!  
這篇文章主要介紹了Mysql配置主從復(fù)制-GTID模式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

主從復(fù)制

主從復(fù)制的定義

是指把數(shù)據(jù)從一個(gè)Mysql服務(wù)器(主節(jié)點(diǎn))復(fù)制到一個(gè)或多個(gè)Mysql服務(wù)器(從節(jié)點(diǎn))中,會(huì)把主節(jié)點(diǎn)服務(wù)器中的所有數(shù)據(jù)庫(kù)實(shí)例、特定數(shù)據(jù)庫(kù)實(shí)例或特定表等,全部復(fù)制到從節(jié)點(diǎn)服務(wù)器中。

主從復(fù)制的原理

是通過基于日志的復(fù)制方式實(shí)現(xiàn)數(shù)據(jù)的同步。當(dāng)主服務(wù)器上發(fā)生數(shù)據(jù)變更時(shí),會(huì)將這些變更寫入二進(jìn)制日志(Binary Log)中。

從服務(wù)器通過連接到主服務(wù)器,請(qǐng)求從主服務(wù)器獲取二進(jìn)制日志,并將這些日志應(yīng)用到自己的數(shù)據(jù)庫(kù)中。

主從復(fù)制的優(yōu)勢(shì)

  • 提高讀性能:通過設(shè)置從服務(wù)器(Slave),讀操作可以被分?jǐn)偟街鞣?wù)器(Master)和從服務(wù)器上,從而提高整體的讀取性能。主服務(wù)器負(fù)責(zé)處理寫操作,從服務(wù)器負(fù)責(zé)處理讀操作,從而降低主服務(wù)器的負(fù)載,提升整個(gè)系統(tǒng)的吞吐量。
  • 數(shù)據(jù)冗余和備份:通過主從復(fù)制,從服務(wù)器上的數(shù)據(jù)是主服務(wù)器的冗余副本。在主服務(wù)器發(fā)生故障時(shí),從服務(wù)器仍然可以提供服務(wù),并且可以通過將某個(gè)從服務(wù)器提升為新的主服務(wù)器來快速恢復(fù)服務(wù)。此外,從服務(wù)器也可以用于定期的備份操作,以確保數(shù)據(jù)的安全性和可恢復(fù)性。
  • 高可用性:通過主從復(fù)制,可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的故障轉(zhuǎn)移和高可用性。當(dāng)主服務(wù)器發(fā)生故障時(shí),可以手動(dòng)或自動(dòng)將某個(gè)從服務(wù)器提升為新的主服務(wù)器,繼續(xù)提供數(shù)據(jù)庫(kù)服務(wù),從而實(shí)現(xiàn)快速的故障恢復(fù)。
  • 數(shù)據(jù)分析和報(bào)表生成:由于從服務(wù)器可以處理讀操作,可以將其用于數(shù)據(jù)庫(kù)的數(shù)據(jù)分析和報(bào)表生成等工作。這樣可以避免對(duì)主服務(wù)器造成額外的負(fù)載,同時(shí)提供實(shí)時(shí)的數(shù)據(jù)分析和報(bào)表服務(wù)。
  • 數(shù)據(jù)分發(fā)和跨地域部署:主從復(fù)制可以用于將數(shù)據(jù)分發(fā)到不同的地理位置的從服務(wù)器上,從而實(shí)現(xiàn)跨地域的數(shù)據(jù)訪問和部署。這對(duì)于全球化的應(yīng)用程序和多地域?yàn)?zāi)備是非常有用的。
  • 架構(gòu)的擴(kuò)展。業(yè)務(wù)量越來越大,I/O訪問頻率過高,單機(jī)無法滿足,此時(shí)做多庫(kù)的存儲(chǔ),降低磁盤I/O訪問的頻率,提高單個(gè)機(jī)器的I/O性能。

主從復(fù)制的形式

  • 一主一從;
  • 一主多從;
  • 多主一從;
  • 雙主復(fù)制;
  • 級(jí)聯(lián)復(fù)制。

主從復(fù)制的模式

  • 異步模式(默認(rèn));
  • 半同步模式;
  • 全同步模式。

主從復(fù)制的類型

基于二進(jìn)制日志復(fù)制(有三種形式)

  • 基于SQL語句的復(fù)制;
  • 基于行的復(fù)制;
  • 混合模式復(fù)制。

基于GTID復(fù)制(Mysql版本 >= 5.7及以上推薦使用)

GTID模式

GTID的概念

  • GTID即全局事務(wù)ID:global transaction identifier;
  • GTID是一個(gè)事務(wù)一一對(duì)應(yīng),并且全局唯一ID;
  • 一個(gè)GTID在一個(gè)服務(wù)器上只執(zhí)行一次,避免重復(fù)執(zhí)行導(dǎo)致數(shù)據(jù)混亂或者主從不一致;
  • GTID用來代替?zhèn)鹘y(tǒng)復(fù)制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS開啟復(fù)制。 而是使用MASTER_AUTO_POSTION=1的方式開始復(fù)制;
  • MySQL-5.6.5開始支持的,MySQL-5.6.10后開始完善;
  • 在傳統(tǒng)的slave端,binlog是不用開啟的,但是在GTID中slave端的binlog是必須開啟的,目的是記錄執(zhí)行過的GTID(強(qiáng)制)。

GTID的優(yōu)勢(shì)

  • 更簡(jiǎn)單的實(shí)現(xiàn)failover,不用以前那樣在需要找log_file和log_pos;
  • 更簡(jiǎn)單的搭建主從復(fù)制;
  • 比傳統(tǒng)的復(fù)制更加安全;
  • GTID是連續(xù)的沒有空洞的,保證數(shù)據(jù)的一致性,零丟失。

GTID的原理

  • 當(dāng)一個(gè)事務(wù)在主庫(kù)端執(zhí)行并提交時(shí),產(chǎn)生GTID,一同記錄到binlog日志中;
  • binlog傳輸?shù)絪lave,并存儲(chǔ)到slave的relaylog后,讀取這個(gè)GTID的這個(gè)值設(shè)置gtid_next變量,即告訴Slave,下一個(gè)要執(zhí)行的GTID值;
  • sql線程從relay log中獲取GTID,然后對(duì)比slave端的binlog是否有該GTID;
  • 如果有記錄,說明該GTID的事務(wù)已經(jīng)執(zhí)行,slave會(huì)忽略;
  • 如果沒有記錄,slave就會(huì)執(zhí)行該GTID事務(wù),并記錄該GTID到自身的binlog,在讀取執(zhí)行事務(wù)前會(huì)先檢查其他session持有該GTID,確保不被重復(fù)執(zhí)行;
  • 在解析過程中會(huì)判斷是否有主鍵,如果沒有就用二級(jí)索引,如果沒有就用全部掃描。

GTID的配置

Mysql主服務(wù)器

1、在Mysql的my.ini配置文件中添加以下參數(shù):

gtid_mode=ON
enforce_gtid_consistency=true
server_id=1
log-bin=mysql-bin
binlog_format=row
log-slave-updates=1

2、重啟Mysql和創(chuàng)建復(fù)制用戶

使用管理員打開cmd命令窗口,按照以下命令步驟分別執(zhí)行:

#暫停服務(wù);

net stop mysql

#開啟服務(wù);

net start mysql

#連接數(shù)據(jù)庫(kù),Password替換為自己數(shù)據(jù)庫(kù)密碼;

mysql -u root -pPassword

#創(chuàng)建一個(gè)用于復(fù)制的用戶,userName和Password自行設(shè)置;

CREATE USER 'userName'@'%' IDENTIFIED BY 'Password';

#授予復(fù)制權(quán)限,userName即上步創(chuàng)建的用戶名;

GRANT REPLICATION SLAVE ON *.* TO 'userName'@'%';

#獲取狀態(tài),記住File和Position兩項(xiàng)參數(shù),后面需要用到;

SHOW MASTER STATUS;

Mysql從服務(wù)器

 1、在Mysql的my.ini配置文件中添加以下參數(shù):

gtid_mode=ON
enforce_gtid_consistency=true
server_id=1
log-bin=mysql-bin
binlog_format=row
log-slave-updates=1

2、重啟Mysql和創(chuàng)建復(fù)制用戶

使用管理員打開cmd命令窗口,按照以下命令步驟分別執(zhí)行:

#暫停服務(wù);

net stop mysql

#開啟服務(wù);

net start mysql

#連接數(shù)據(jù)庫(kù),Password替換為自己數(shù)據(jù)庫(kù)密碼;

mysql -u root -pPassword

#配置復(fù)制,serverIP是主服務(wù)器IP地址,userName和password是剛在主服務(wù)器創(chuàng)建的用戶,file和position是剛查看主服務(wù)器狀態(tài)返回的參數(shù);

CHANGE MASTER TO MASTER_HOST='serverIP', MASTER_USER='userName', MASTER_PASSWORD='password', MASTER_LOG_FILE='file', MASTER_LOG_POS=position;

#啟動(dòng)復(fù)制;

START SLAVE;

#查看復(fù)制狀態(tài),輸出中的Slave_IO_Running和Slave_SQL_Running的值為Yes,表示復(fù)制正在正常運(yùn)行;

SHOW SLAVE STATUS\G;

到這里就結(jié)束了,可以在Mysql主服務(wù)器中進(jìn)行添加、修改、刪除操作,測(cè)試從服務(wù)器中的數(shù)據(jù)是否保持一致。

注意:從服務(wù)器只允許進(jìn)行查詢,不可以進(jìn)行添加、修改、刪除等改變數(shù)據(jù)的操作,否則會(huì)導(dǎo)致復(fù)制狀態(tài)失效。

總結(jié)

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

相關(guān)文章

  • 玩轉(zhuǎn)?MySQL?庫(kù)表:庫(kù)和表的操作"通關(guān)指南"

    玩轉(zhuǎn)?MySQL?庫(kù)表:庫(kù)和表的操作"通關(guān)指南"

    文章主要介紹了MySQL數(shù)據(jù)庫(kù)的基本概念、結(jié)構(gòu)和操作方法,包括數(shù)據(jù)庫(kù)和MySQL服務(wù)端的區(qū)別,SQL語句分類,以及數(shù)據(jù)庫(kù)和表的創(chuàng)建、查看、修改和刪除等操作,最后還介紹了備份和恢復(fù)數(shù)據(jù)庫(kù)的方法
    2026-04-04
  • mysql中字符串截取與拆分的實(shí)現(xiàn)示例

    mysql中字符串截取與拆分的實(shí)現(xiàn)示例

    mysql 字符串截取與拆分在很多地方都可以用得到,本文主要介紹了mysql中字符串截取與拆分的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • MySql 8.0.11安裝配置教程

    MySql 8.0.11安裝配置教程

    這篇文章給大家介紹了MySql 8.0.11安裝配置教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2018-05-05
  • 詳解Ubuntu Server下啟動(dòng)/停止/重啟MySQL數(shù)據(jù)庫(kù)的三種方式

    詳解Ubuntu Server下啟動(dòng)/停止/重啟MySQL數(shù)據(jù)庫(kù)的三種方式

    本篇文章主要介紹了buntu Server下啟動(dòng)/停止/重啟MySQL數(shù)據(jù)庫(kù)的三種方式,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • Navicat中導(dǎo)入mysql大數(shù)據(jù)時(shí)出錯(cuò)解決方法

    Navicat中導(dǎo)入mysql大數(shù)據(jù)時(shí)出錯(cuò)解決方法

    這篇文章主要介紹了Navicat中導(dǎo)入mysql大數(shù)據(jù)時(shí)出錯(cuò)解決方法,需要的朋友可以參考下
    2017-04-04
  • MySQL官方導(dǎo)出工具mysqlpump的使用

    MySQL官方導(dǎo)出工具mysqlpump的使用

    備份恢復(fù)是 DBA 繞不開的核心話題,市面上也有很多開源的備份恢復(fù)方案,不過官方的 mysqldump 一直是處于鄙視鏈底端的那個(gè)。終于,官方在 MySQL5.7 之后新添加了一個(gè)備份工具:mysqlpump,本文將簡(jiǎn)單的介紹該工具的使用
    2021-05-05
  • mysql全文搜索 sql命令的寫法

    mysql全文搜索 sql命令的寫法

    首先,大家先去下載一份dvbbs.php beta1的代碼,解壓后先拋開php代碼,找出你的mysql手冊(cè),如果沒有手冊(cè)那么就直接看下面的實(shí)例操作吧!
    2011-01-01
  • Jmeter連接數(shù)據(jù)庫(kù)過程圖解

    Jmeter連接數(shù)據(jù)庫(kù)過程圖解

    這篇文章主要介紹了jmeter連接數(shù)據(jù)庫(kù)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 解讀MySQL中一個(gè)B+樹能存儲(chǔ)多少數(shù)據(jù)

    解讀MySQL中一個(gè)B+樹能存儲(chǔ)多少數(shù)據(jù)

    這篇文章主要介紹了解讀MySQL中一個(gè)B+樹能存儲(chǔ)多少數(shù)據(jù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳談mysql order by in 的字符順序(推薦)

    詳談mysql order by in 的字符順序(推薦)

    下面小編就為大家?guī)硪黄斦刴ysql order by in 的字符順序(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04

最新評(píng)論

邹城市| 兴隆县| 新田县| 龙井市| 中西区| 延寿县| 灌南县| 安龙县| 麻阳| 佛教| 岚皋县| 大余县| 彭泽县| 介休市| 门源| 杂多县| 葫芦岛市| 夏津县| 达拉特旗| 渝中区| 北票市| 仪陇县| 高青县| 台中县| 宾川县| 濮阳县| 庐江县| 毕节市| 扶风县| 辉南县| 鄂尔多斯市| 岳西县| 吉首市| 怀来县| 鹤山市| 凤冈县| 古浪县| 登封市| 清流县| 科技| 麻阳|