最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
初識(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)行中。

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

二、Galera Cluster介紹

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

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

這就要求MySQL能夠調(diào)用wsrep提供的API來(lái)完成,在Mariadb10.1之前的版本,支持Galera Cluster的版本是與Mariadb分開(kāi)發(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ù)庫(kù)版本為MariaDB10.2.14,驗(yàn)證3節(jié)點(diǎn)下通過(guò)Galera Cluster實(shí)現(xiàn)數(shù)據(jù)同步。需要說(shuō)明的是:

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

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

3.在Mariadb10.1之后版本中實(shí)現(xiàn)Galera Cluster用到的庫(kù)文件libgalera_smm.so通過(guò)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 [email protected]:/etc/my.cnf.d/

[root@host3 ~]# scp -r /etc/my.cnf.d/server.cnf [email protected]:/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ù)庫(kù)并發(fā)送到node5

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

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

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

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

3.node5操作

(1)將配置文件中的server_id改為30,注銷[galera]段(目的是先通過(guò)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ù)庫(kù),并驗(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ǔ)充說(shuō)明:

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ù)庫(kù),這樣之前節(jié)點(diǎn)配置文件里的wsrep_cluster_address變量中就算沒(méi)有新節(jié)點(diǎn)的IP地址也能實(shí)現(xiàn)同步,建議在老節(jié)點(diǎn)wsrep_cluster_address變量中加入新節(jié)點(diǎn)IP地址后重啟服務(wù)

存在的疑問(wèn):

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


文章標(biāo)題:初識(shí)MariaDB之10——MariaDBGaleraCluster
文章鏈接:http://fisionsoft.com.cn/article/giscog.html