<td id="aqqih"></td>

<dd id="aqqih"></dd>
  1. <span id="aqqih"></span>
  2. <ol id="aqqih"></ol>

    MySQL基于GTID主從搭建怎么實現

    本篇內容介紹了“MySQL基于GTID主從搭建怎么實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    一、用xtarbackup備份數據庫

    1.1 優勢

    使用xtarbackup來做主從的前期準備是因為xtarbackup備份數據和恢復數據都很快,特別適合數據量很大的數據庫備份,而且它的安裝非常的簡單,使用也很簡單....(巴拉巴拉,廢話編不出來了)。

    1.2 安裝

    具體版本根據自己的具體情況來選擇。就下面這幾步就安裝好了,是不是非常簡單.....

    #?rpm?-Uvh?https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-3.noarch.rpm
    #?yum?list?|?grep?percona
    #?yum?-y?install?perl?perl-devel?libaio?libaio-devel?perl-Time-HiRes?perl-DBD-MySQL?
    #?rpm?-Uvh?ftp://rpmfind.net/linux/epel/6/x86_64/libev-4.03-3.el6.x86_64.rpm
    #?yum?install?percona-xtrabackup?–y

    1.3 使用

    1.3.1 普通備份
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?/data/backupMysql/
    1.3.2 tar備份

    (1)、備份到本地

    #?不壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=tar?/data/backupMysql/>/data/mysql.tar
    #?壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=tar?/data/backupMysql/?|?gzip?>/data/mysql.tar.gz

    (2)、備份到遠程

    #?不壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=tar?/data/backupMysql/?|?ssh?root@192.168.1.7?\?"cat?-?>/data/mysql.tar
    #?壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=tar?/data/backupMysql/?|?|?ssh?root@192.168.1.7?\?"gzip?>/data/mysql.tar.gz

    (3)、解壓方式

    #?未經過壓縮的文件解壓
    tar?xvf?mysql.tar?-C?/data
    #?壓縮過的文件解壓
    tar?zxvf?mysql.tar.gz?-C?/data
    1.3.3 xbstream備份

    (1)、備份到本地

    #?不壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=xbstream?/data/backupMysql/>/data/mysql.xbstream
    #?壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=xbstream?--compress?/data/backupMysql/?>/data/mysql_compress.xbstream

    (2)、備份要遠程

    #?不壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=xbstream?/data/backupMysql/|?ssh?root@192.168.1.7?"xbstream?-x?-C?/backup/stream"
    #?壓縮
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=xbstream?--compress?/data/backupMysql/?|?ssh?root@192.168.1.7?"xbstream?-x?-C?/backup/stream"

    (3)、解壓方式

    ####?未壓縮的
    xbstream?-x?<?mysql.xbstream?-C?/data
    ####?壓縮過的
    #?1、先解壓xbstream
    xbstream?-x?<?mysql_compress.xbstream?-C?/data
    #?2、再解壓qp壓縮格式
    for?bf?in?`find?.?-iname?"*\.qp"`;?do?qpress?-d?$bf?$(dirname?$bf)?&&?rm?$bf;?done
    注:如果xtrabackup版本大于2.1.4,可以直接通過以下方式解壓第二步。
    innobackupex?--decompress?/data
    1.3.4 恢復

    先將原備份壓縮包解壓到一個目錄,然后執行下面語句恢復。

    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--copy-back?/var/lib/mysql/backup/

    注:在做備份,解壓,恢復的過程中可以借助分屏工具,我喜歡用screen。

    二、基于GTID做數據同步

    2.1 GTID的概念

    • 1、全局事務標識:global transaction identifiers。

    • 2、GTID是一個事務一一對應,并且全局唯一ID。

    • 3、一個GTID在一個服務器上只執行一次,避免重復執行導致數據混亂或者主從不一致。

    • 4、GTID用來代替傳統復制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS開啟復制。而是使用MASTER_AUTO_POSTION=1的方式開始復制。

    • 5、MySQL-5.6.5開始支持的,MySQL-5.6.10后開始完善。

    • 6、在傳統的slave端,binlog是不用開啟的,但是在GTID中slave端的binlog是必須開啟的,目的是記錄執行過的GTID(強制)。

    2.2 GTID的組成

    GTID = source_id:transaction_id source_id:用于鑒別原服務器,即mysql服務器唯一的的server_uuid,由于GTID會傳遞到slave,所以也可以理解為源ID。

    transaction_id:為當前服務器上已提交事務的一個序列號,通常從1開始自增長的序列,一個數值對應一個事務。

    示例: ? ? ? ? ? 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 前面的一串為服務器的server_uuid,即3E11FA47-71CA-11E1-9E33-C80AA9429562,后面的23為transaction_id

    2.3 GTID的原理

    1、當一個事務在主庫端執行并提交時,產生GTID,一同記錄到binlog日志中。

    2、binlog傳輸到slave,并存儲到slave的relaylog后,讀取這個GTID的這個值設置gtid_next變量,即告訴Slave,下一個要執行的GTID值。

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

    4、如果有記錄,說明該GTID的事務已經執行,slave會忽略。

    5、如果沒有記錄,slave就會執行該GTID事務,并記錄該GTID到自身的binlog,在讀取執行事務前會先檢查其他session持有該GTID,確保不被重復執行。

    6、在解析過程中會判斷是否有主鍵,如果沒有就用二級索引,如果沒有就用全部掃描。

    2.4 GTID的優勢

    • 1、更簡單的實現failover,不用以前那樣在需要找log_file和log_pos。

    • 2、更簡單的搭建主從復制。

    • 3、比傳統的復制更加安全。

    • 4、GTID是連續的沒有空洞的,保證數據的一致性,零丟失。

    2.5 具體搭建過程

    對于GTID的配置,主要修改配置文件中與GTID特性相關的幾個重要參數,mysql版本建議mysql-5.6.5版本以上。

    2.5.1 開啟主(master)Gtid

    其主要配置如下:

    [mysqld]
    #GTID:
    server_id=135????????????????#服務器id
    gtid_mode=on?????????????????#開啟gtid模式
    enforce_gtid_consistency=on??#強制gtid一致性,開啟后對于特定create?table不被支持
    #binlog
    log_bin=master-binlog
    log-slave-updates=1????
    binlog_format=row????????????#強烈建議,其他格式可能造成數據不一致
    #relay?log
    skip_slave_start=1
    2.5.2 在master上進行數據備份
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--stream=tar?/data/backupMysql/?|?|?ssh?root@192.168.1.7?\?"gzip?>/data/mysql.tar.gz
    2.5.3 解壓備份的數據
    tar?zxvf?/data/mysql.tar.gz?-C?/data/baskup
    2.5.4 配置slave的配置文件
    [mysqld]
    #GTID:
    gtid_mode=on
    enforce_gtid_consistency=on
    server_id=143
    #binlog
    log-bin=slave-binlog
    log-slave-updates=1
    binlog_format=row??????#強烈建議,其他格式可能造成數據不一致
    #relay?log
    skip_slave_start=1
    2.5.5 恢復數據
    innobackupex?--defaults-file=/etc/my.cnf?--user=root?--password=123456?--copy-back?/data/backup
    2.5.6 獲取GTID節點
    more?/data/backup/2018-02-08_15-03-18/xtrabackup_binlog_info
    2.5.7 配置主從

    (1)、在master上授權

    grant?replication?slave?on?*.*?to?slaveuser@'192.168.1.7'??identified?by?"c2xhdmV1c2Vy";

    (2)、在slave上配置

    stop?slave;
    SET?GLOBAL?gtid_purged="c5b5ffe7-ce66-11e7-9a19-00163e00013d:1-515758";
    CHANGE?MASTER?TO?MASTER_HOST='192.168.1.6',MASTER_PORT=3306,MASTER_USER='slaveuser',MASTER_PASSWORD='c2xhdmV1c2Vy',MASTER_AUTO_POSITION=1;
    start?slave;

    2.6 已運行經典復制mysql服務器轉向GTID復制

    • a、按本文2.5.2描述配置參數文件;

    • b、所有服務器設置global.read_only參數,等待主從服務器同步完畢; ?mysql> SET @@global.read_only = ON;

    • c、依次重啟主從服務器;

    • d、使用change master 更新主從配置;mysql> CHANGE MASTER TO > MASTER_HOST = host, ?> MASTER_PORT = port, > MASTER_USER = user, ? > MASTER_PASSWORD = password, ? > MASTER_AUTO_POSITION = 1;

    • e、從庫開啟復制 ?mysql> START SLAVE; f、驗證主從復制

    “MySQL基于GTID主從搭建怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注蝸牛博客網站,小編將為大家輸出更多高質量的實用文章!

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    評論

    日本韩欧美一级A片在线观看
    <td id="aqqih"></td>

    <dd id="aqqih"></dd>
    1. <span id="aqqih"></span>
    2. <ol id="aqqih"></ol>