MySQL與MariaDB 新型主從叢集配置GTID

來源:互聯網
上載者:User

MySQL與MariaDB 新型主從叢集配置GTID

前面寫了《MySQL與MariaDB 傳統主從叢集配置》,該技術已經非常成熟。從Mysql5.6和MariaDB10.0開始,有了新型的主從方案GTID,不過這兩個系統到這個版本出現了分支,具體實現已經不同,配置方法也不同,下文分別講述。

MariaDB:

我用的版本還是10.1版,目前該版本還不是穩定版,但不影響測試。先部署好兩個資料庫執行個體,參見

直到建立好複製使用者。

我們這裡的由於是新建立的資料庫,因此先重設下主庫的狀態,此操作不是必須,如果後面發現同步sql執行失敗,可執行這行跳過失敗的sql。

MariaDB [mysql]> reset master;

這時可以發現舊的bin-log都已刪除,已經只剩下一個新建立的記錄檔。

然後執行下面的語句,注意後面 master_use_gtid=current_pos 這行跟傳統模式不同。

MariaDB [mysql]> change master to

master_host='localhost',

master_port=10001,

master_user='rep',

master_password='123456',

master_use_gtid=current_pos;

Query OK, 0 rows affected (0.36 sec)

 

MariaDB [mysql]> start slave;

Query OK, 0 rows affected (0.18 sec)

 

MariaDB [mysql]> show slave status \G;

*************************** 1. row ***************************

              Slave_IO_State: Waiting for master to send event

                  Master_Host: localhost

                  Master_User: rep

                  Master_Port: 10001

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000001

          Read_Master_Log_Pos: 313

              Relay_Log_File: lyw-hp-relay-bin.000002

                Relay_Log_Pos: 601

        Relay_Master_Log_File: mysql-bin.000001

            Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

                          。。。。。。

                         

                  Using_Gtid: Current_Pos

後面比傳統的主從方式多了一行內容  Using_Gtid: Current_Pos,說明使用了新的主從方式。

設定好後,同樣需要跟測試下,對主庫的修改是否影響到從庫的內容。

Mysql:

Mysql5.6版本開始支援GTID複製方式,其配置方式跟MariaDB不同,需要先在設定檔裡修改相關配置。新增內容如下

[mysqld]

gtid-mode              = on

log-slave-updates      = true

enforce-gtid-consistency= true


然後啟動這兩個資料庫。同樣需要配置相應的同步處理的使用者。

然後在從庫執行下面的命令,注意最後這行 master_auto_position=1 跟 MariaDB的不同。

mysql> change master to 

master_host='localhost', 

master_port=20001, 

master_user='rep', 

master_password='123456',

master_auto_position=1; 

mysql> start slave; 

mysql> show slave status \G;

*************************** 1. row ***************************

              Slave_IO_State: Waiting for master to send event

                  Master_Host: localhost

                  Master_User: rep

                  Master_Port: 20001

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000004

          Read_Master_Log_Pos: 850

              Relay_Log_File: lyw-hp-relay-bin.000002

                Relay_Log_Pos: 1060

        Relay_Master_Log_File: mysql-bin.000004

            Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

                          。。。。。。                         

          Retrieved_Gtid_Set: a34819a9-700f-11e5-a841-34238703623c:1-3

            Executed_Gtid_Set: a34819a9-700f-11e5-a841-34238703623c:1-3

可見最後增加了兩行跟GTID相關的狀態,Retrieved_Gtid_Set,Executed_Gtid_Set,說明採用了GTID這種新型同步方式。

用同樣的方法,一個主要資料庫後面可以跟多個從資料庫,增加資料的可靠性和讀的輸送量。

以上主從配置是最基本配置,線上上使用還不夠,主掛了後,並不會自動進行切換,請關注。

MySQL分區高可用叢集之Cobar部署使用 

MySQL分區高可用叢集之Fabric部署使用 

--------------------------------------分割線 --------------------------------------

Linux系統教程:如何檢查MariaDB服務端版本 

MariaDB Proxy讀寫分離的實現

Linux下編譯安裝配置MariaDB資料庫的方法

CentOS系統使用yum安裝MariaDB資料庫

安裝MariaDB與MySQL並存

Ubuntu 上如何將 MySQL 5.5 資料庫遷移到 MariaDB 10 

[翻譯]Ubuntu 14.04 (Trusty) Server 安裝 MariaDB 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.