欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

初識(shí)MariaDB之10——MariaDBGaleraCluster

一、背景介紹

創(chuàng)新互聯(lián)是一家專業(yè)提供永登企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為永登眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

無論是采用binlog或者GTID的方式,其本質(zhì)都是通過I/O_thread和sql_thread的形式進(jìn)行的同步,因?yàn)闊o法避免復(fù)制延遲而飽受詬病,基于上述MariaDB引入了Galera Cluster來解決此問題。

二、Galera Cluster介紹

Galera Cluster與傳統(tǒng)的復(fù)制方式不同,不通過I/O_thread和sql_thread進(jìn)行同步,而是在更底層通過wsrep實(shí)現(xiàn)文件系統(tǒng)級(jí)別的同步,可以做到幾乎實(shí)時(shí)同步,而其上的MySQL對(duì)此一無所知

初識(shí)MariaDB之10——MariaDB Galera Cluster初識(shí)MariaDB之10——MariaDB Galera Cluster

這就要求MySQL能夠調(diào)用wsrep提供的API來完成,在Mariadb10.1之前的版本,支持Galera Cluster的版本是與Mariadb分開發(fā)行的,其版本名稱就成為Mariadb-Galera,Mariadb10.1以后的版本中MariaDB Galera Cluste不再單獨(dú)發(fā)行,而是以galera-25.3.12-2.el7.x86_64包的形式出現(xiàn)

三、實(shí)驗(yàn)?zāi)康?/p>

本次實(shí)驗(yàn)操作系統(tǒng)為CentOS7.4,數(shù)據(jù)庫版本為MariaDB10.2.14,驗(yàn)證3節(jié)點(diǎn)下通過Galera Cluster實(shí)現(xiàn)數(shù)據(jù)同步。需要說明的是:

1.Galera Cluster最少要求3個(gè)節(jié)點(diǎn)以上,建議是大于3的奇數(shù),2節(jié)點(diǎn)雖然可以部署,但無法避免腦裂的出現(xiàn)

2.盡管Galera Cluster不再需要binlog的形式進(jìn)行同步,但建議還是在配置文件中開啟該功能,原因是后期如果要有新節(jié)點(diǎn)加入,老節(jié)點(diǎn)通過SST全量傳輸?shù)姆绞较蛐鹿?jié)點(diǎn)傳輸數(shù)據(jù),很可能會(huì)拖垮性能,所以讓新節(jié)點(diǎn)先通過binlog完成同步后在加入Galera Cluster是一種不錯(cuò)的選擇

3.在Mariadb10.1之后版本中實(shí)現(xiàn)Galera Cluster用到的庫文件libgalera_smm.so通過rpm -ql galera-25.3.12-2.el7.x86_64查找其位置

初識(shí)MariaDB之10——MariaDB Galera Cluster初識(shí)MariaDB之10——MariaDB Galera Cluster

四、操作步驟

1.node3節(jié)點(diǎn)主機(jī)操作

(1)安裝MariaDB 10.2.14

(2)編輯配置文件并啟動(dòng)服務(wù)

[root@host3 ~]# vim /etc/my.cnf.d/server.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip_name_resolve=ON

relay_log=mysql-relaylog

relay_log_index=mysql-relaylog

relay_log_purge=OFF

slow_query_log=ON

server-id=10

innodb_file_per_table=ON

binlog_format=ROW

log_bin=mysql-binlog

log_slave_updates=ON

[galera]

# Mandatory settings

wsrep_on=ON

wsrep_cluster_name=ark

wsrep_provider=/lib64/galera/libgalera_smm.so

wsrep_cluster_address=gcomm://172.16.10.30,172.16.10.40,172.16.10.50

binlog_format=row

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

innodb_doublewrite=1

[root@host3 ~]# galera_new_cluster  #第一次啟用時(shí)在任意節(jié)點(diǎn)使用

(3)將配置文件發(fā)送給node4和node5

[root@host3 ~]# scp -r /etc/my.cnf.d/server.cnf root@172.16.10.40:/etc/my.cnf.d/

[root@host3 ~]# scp -r /etc/my.cnf.d/server.cnf root@172.16.10.50:/etc/my.cnf.d/

2.node4節(jié)點(diǎn)操作

(1)將配置文件中的server_id改為20

(2)啟動(dòng)MySQL服務(wù)

可以在日志中看到Galera Cluster的SST默認(rèn)使用rsync傳輸

初識(shí)MariaDB之10——MariaDB Galera Cluster初識(shí)MariaDB之10——MariaDB Galera Cluster

(3)在node4創(chuàng)建一個(gè)用于復(fù)制的賬戶

[root@host4 ~]# mysql

MariaDB [(none)]> grant replication slave on *.* to 'bak'@'172.16.10.%' identified by 'bakpass';

MariaDB [(none)]> flush privileges;

(4)隨意創(chuàng)建數(shù)據(jù),在node3上驗(yàn)證是否同步

MariaDB [(none)]> CREATE DATABASE `hellodb`;

MariaDB [(none)]> CREATE TABLE `students` (

   ->   `StuID` int(10) unsigned NOT NULL AUTO_INCREMENT,

   ->   `Name` varchar(50) NOT NULL,

   ->   `Age` tinyint(3) unsigned NOT NULL,

   ->   `Gender` enum('F','M') NOT NULL,

   ->   `ClassID` tinyint(3) unsigned DEFAULT NULL,

   ->   `TeacherID` int(10) unsigned DEFAULT NULL,

   ->   PRIMARY KEY (`StuID`)

   -> );

MariaDB [(none)]> insert into hellodb.students (name,age) values ('QiaoFeng',40);

MariaDB [(none)]> insert into hellodb.students (name,age) values ('DuanYu',21);

MariaDB [(none)]> insert into hellodb.students (name,age) values ('XuZhu',24);

(5)備份當(dāng)前數(shù)據(jù)庫并發(fā)送到node5

[root@host4 ~]# mysqldump -uroot  --databases hellodb --master-data=2 --single-transaction --quick > /tmp/hellodb.sql

[root@host4 ~]# scp -r /tmp/hellodb.sql root@172.16.10.50:/tmp/

(6)再插入數(shù)據(jù),模擬備份后又有新增數(shù)據(jù)

MariaDB [(none)]> insert into hellodb.students (name,age) values ('XuanCi','66');

3.node5操作

(1)將配置文件中的server_id改為30,注銷[galera]段(目的是先通過binlog同步)

(2)啟動(dòng)MySQL服務(wù)

(3)查看備份時(shí)node4的binlog及position

初識(shí)MariaDB之10——MariaDB Galera Cluster初識(shí)MariaDB之10——MariaDB Galera Cluster

(4)恢復(fù)數(shù)據(jù)庫,并驗(yàn)證

MariaDB [hellodb]> source /tmp/hellodb.sql

MariaDB [hellodb]> change master to master_host='172.16.10.40',master_user='bak',master_password='bakpass',master_port=3306,master_log_file='mysql-binlog.000004',master_log_pos=2061,master_connect_retry=10;

MariaDB [hellodb]> start slave;

MariaDB [hellodb]> select * from students;

+-------+----------+-----+--------+---------+-----------+

| StuID | Name     | Age | Gender | ClassID | TeacherID |

+-------+----------+-----+--------+---------+-----------+

|     3 | QiaoFeng |  40 | F      |    NULL |      NULL |

|     5 | DuanYu   |  21 | F      |    NULL |      NULL |

|     7 | XuZhu    |  24 | F      |    NULL |      NULL |

|     9 | XuanCi   |  66 | F      |    NULL |      NULL |

+-------+----------+-----+--------+---------+-----------+

(5)停止主從復(fù)制和MySQL服務(wù)

MariaDB [hellodb]> start slave;

[root@host5 ~]# systemctl stop mariadb.service

(6)取消[galera]段注銷并重啟服務(wù)

再在任意節(jié)點(diǎn)添加數(shù)據(jù)3個(gè)節(jié)點(diǎn)間都可以進(jìn)行同步,至此操作全部完成

補(bǔ)充說明:

1.Galera Cluster節(jié)點(diǎn)停止服務(wù)后,后期如果數(shù)據(jù)有更新,只需要重啟MySQL服務(wù),數(shù)據(jù)會(huì)自動(dòng)同步

2.后期如果有新的節(jié)點(diǎn)加入,可以在新節(jié)點(diǎn)的配置文件里將自己的IP地址加入wsrep_cluster_address變量中后再啟動(dòng)數(shù)據(jù)庫,這樣之前節(jié)點(diǎn)配置文件里的wsrep_cluster_address變量中就算沒有新節(jié)點(diǎn)的IP地址也能實(shí)現(xiàn)同步,建議在老節(jié)點(diǎn)wsrep_cluster_address變量中加入新節(jié)點(diǎn)IP地址后重啟服務(wù)

存在的疑問:

在任意Galera Cluster節(jié)點(diǎn)導(dǎo)入一個(gè)數(shù)據(jù)庫,無論是命令行下通過mysql < xxx方式還是使用sql語句source xxx方式,只有當(dāng)前節(jié)點(diǎn)有數(shù)據(jù),其他節(jié)點(diǎn)僅創(chuàng)建該數(shù)據(jù)庫和庫中表,但表中無任何數(shù)據(jù),重啟MySQL服務(wù)后也不會(huì)同步,原因不明

名稱欄目:初識(shí)MariaDB之10——MariaDBGaleraCluster
網(wǎng)頁路徑:http://chinadenli.net/article6/giscog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、面包屑導(dǎo)航電子商務(wù)、域名注冊(cè)響應(yīng)式網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化