MariaDB Galera Cluster集羣企業版編譯安裝與配置

wKioL1fSCLzh4YFiAAA_6rVAeUs190.png

安裝環境

系統:CentOS 6.8 x86_64

軟件:MariaDB 10.1.16

節點一:192.168.11.132 4C 8GB

節點二:192.168.11.133 4C 8GB

軟件獲取

訪問MariaDB企業版下載地址 https://mariadb.com/my_portal/download/mariadb-enterprise 登錄帳號後選擇 10.1.16GA版本 源代碼包下載。

wKiom1fXUnDgZ5LXAACVVxts84w862.png-wh_50

從MariaDB Enterprise 10.1版本開始,企業版軟件包與集羣功能集成到一起,所以下載軟件包就一個。

wKiom1fXUxihPnE_AACKxmlt5Pc477.png-wh_50

下載源代碼包到CentOS系統的/usr/src目錄下

wKioL1fXU3WBb1lQAAAXxS6aprA965.png-wh_50

訪問galeracluster官網 http://galeracluster.com/ 下載頁面

wKiom1fXYJbB0S1YAAQj4ksOczU161.png-wh_50

選擇目前最新版Galera 3 wsrep源代碼包下載到CentOS系統的/usr/src目錄

wKiom1fXYRejtov9AADpZbqXujM879.png-wh_50

下載完成後將兩個軟件包拷貝到各個節點的/usr/src目錄下

wKioL1fXYk7BCOH1AAAL5GwUCPE491.png

安裝過程

1.添加epel的yum源

rpm -vih http://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm

wKiom1fXaWWSXGhhAAAWOW976s0583.png

2.重新生成yum源緩存

yum clean all;yum makecache

wKioL1fXafmDuO4QAABNM-DjN_A337.png-wh_50

3.使用yum來安裝必要的軟件包

yum install -y ntp ntpdate libaio jemalloc ncurses-devel make cmake bison zlib zlib-devel openssl openssl-devel gcc gcc-c++ rsync scons boost boost-devel check check-devel

wKioL1fXY1PjZjBIAAA8xRo1CB4477.png-wh_50

4.利用文件CRC校驗碼來判斷,如果/etc/localtime與/usr/share/zoneinfo/Asia/Shanghai不是同一個文件,則系統時區不爲亞洲上海,此時需要拷貝或鏈接/usr/share/zoneinfo/Asia/Shanghai文件到/etc/localtime文件覆蓋。

wKioL1fXZP2DbLWRAAAOtiy7Qa0268.png

5.與ntp server同步來更新系統時間

ntpdate 0.centos.pool.ntp.org

hwclock -w

/etc/init.d/ntpd start

chkconfig ntpd on

chkconfig ntpdate on

wKiom1fXZKSxvuPYAAAU2PHC2RQ048.png

6.關閉系統防火牆服務與selinux服務

/etc/init.d/iptables stop

/etc/init.d/ip6tables stop

chkconfig iptables off

chkconfig ip6tables off

setenforce 0

wKiom1fXZk6yvQnXAAA5BFKxZPM909.png

7.解壓galera壓縮包,拷貝到/usr/local並重命名

tar zxf galera-3-25.3.17.tar.gz

mv galera-3-25.3.17 /usr/local/galera

wKioL1fXZu2xf4I7AAAIjXDvXNA094.png

8.使用scons命令來編譯安裝galera

wKiom1fXZ3aBK4h_AAAhn7-mo-w971.png

9.安裝完成會生成/usr/local/galera/libgalera_smm.so模塊

wKiom1fXamSDf7FZAAA5QAxFq9E402.png-wh_50

10.切換到/usr/src目錄解壓mariadb-enterprise配置

cd /usr/src/

tar zxf mariadb-enterprise-10.1.16.tar.gz

cd mariadb-10.1.16/

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DDEFAULT_SYSCONFDIR=/usr/local/mariadb/etc -DMYSQL_DATADIR=/usr/local/mariadb/data  -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mariadb/mariadb.sock -DMYSQL_USER=mariadb -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DWITH_WSREP=ON -DWITH_INNODB_DISALLOW_WRITES=ON

wKiom1fXa1uC7FXwAAA8G8HJPSc672.png

11.用cpu的4核心同時編譯

make -j 4

wKioL1fXa8jifY37AABTKgaVoWY078.png-wh_50

12.安裝

make install

wKiom1fXbY2zx1FbAAAdCXfGOFA001.png-wh_50

13.創建mariadb用戶及相應目錄

useradd -M -s /sbin/nologin mariadb

mkdir -p /usr/local/mariadb/etc

mkdir -p /usr/local/mariadb/run

mkdir -p /usr/local/mariadb/log

wKioL1fXbj2TfpRDAAA5VegMD1E927.png

14.如果存在/etc/my.cnf文件,請刪除或改名。並創建新的配置文件

mv /etc/my.cnf /etc/my.cnf.bak

cp support-files/my-large.cnf.sh /usr/local/mariadb/etc/my.cnf

wKioL1fXbvTz8nNoAAALPX_EnCU209.png

15.編輯/usr/local/mariadb/etc/my.cnf修改port與socket參數,並在[mysqld]添加

pid-file        = /usr/local/mariadb/run/mariadb.pid

log-error       = /usr/local/mariadb/log/mariadb.log

wKioL1fXb9uBpobjAAAkKPuo224517.png

16.修改mariadb目錄所有者

chown -R mariadb:mariadb /usr/local/mariadb/

wKiom1fXcGGgTZ4eAAAIg9SO1Jc624.png

17.初始化mariadb數據庫

/usr/local/mariadb/scripts/mysql_install_db --user=mariadb --basedir=/usr/local/mariadb/ --datadir=/usr/local/mariadb/data/

wKioL1fXcQiho2p_AAAvWmSi5Gc266.png-wh_50

18.修改/usr/local/mariadb/bin/mysqld_safe文件參數

user='mariadb'

wKiom1fXcduSsgSMAAAZUa4yiIo651.png-wh_50

19.啓動mariadb數據庫

/usr/local/mariadb/bin/mysqld_safe &

wKiom1fXcjzy8WK3AAAUZ0aapMk576.png

20.查看進程與端口狀態

wKioL1fXcpOwWkLfAAApihl-u_k220.png

21.創建啓動腳本

cp /usr/src/mariadb-10.1.16/support-files/mysql.server /etc/init.d/mariadb

chmod 755 /etc/init.d/mariadb

wKiom1fXc23Aq44BAAAOCbnnZJA762.png

22.修改/etc/init.d/mariadb文件如下參數

basedir=/usr/local/mariadb

datadir=/usr/local/mariadb/data

mysqld_pid_file_path=/usr/local/mariadb/run/mariadb.pid

wKiom1fXc_6w1lSKAAAyYiF7JY8630.png-wh_50

23.添加chkconfig管理

chkconfig --add mariadb

wKioL1fXdEKTv3prAAAM3yIHq3w302.png

24.測試啓動功能

wKioL1fXdJbAL7iAAAAhwGbQCxw936.png-wh_50

25.配置mariadb數據庫root賬戶登錄密碼,並進行安全配置。

/usr/local/mariadb/bin/mysql_secure_installation

wKiom1fXeH_AstPSAABTfctwSBU394.png

wKioL1fXehTg-a6lAABBUb-GnqM253.png

26.使用密碼登錄數據庫

/usr/local/mariadb/bin/mysql -u'root' -p'D5)Ga!3'

wKiom1fXevbSznpzAABE9svakUU547.png

27.創建用於同步數據庫的sst帳號

GRANT USAGE ON *.* to sst@'%' IDENTIFIED BY 'g#ds0Gl';

GRANT ALL PRIVILEGES on *.* to sst@'%';

FLUSH PRIVILEGES;

wKiom1fXkO2QWzFIAAAqP4WC1HI415.png-wh_50

28.停止數據庫

/etc/init.d/mariadb stop

修改配置文件 /usr/local/mariadb/etc/my.cnf 在末尾加入

!includedir /usr/local/mariadb/etc/my.cnf.d/

wKiom1fXoinwiH_CAAAZwLrd08U003.png

29.創建/usr/local/mariadb/etc/my.cnf.d/目錄與wsrep.cnf配置文件

mkdir /usr/local/mariadb/etc/my.cnf.d/

cp /usr/src/mariadb-10.1.16/support-files/wsrep.cnf.sh /usr/local/mariadb/etc/my.cnf.d/wsrep.cnf

chown -R mariadb.mariadb /usr/local/mariadb/etc/my.cnf.d/

wKiom1fXos-w04eaAAAPNcN7CnE045.png

在節點二(如果存在多個節點請在其他每個節點)執行以上1到29步驟安裝配置數據庫。

在節點一執行:

修改/usr/local/mariadb/etc/my.cnf.d/wsrep.cnf在[mysqld]部分以下參數

wsrep_on=on

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0

wsrep_provider=/usr/local/galera/libgalera_smm.so

wsrep_cluster_name="my_wsrep_cluster"

wsrep_cluster_address="gcomm://192.168.11.132,192.168.11.133"

wsrep_node_name=node01

wsrep_node_address=192.168.11.132

wsrep_sst_method=rsync

wsrep_sst_auth=sst:g#ds0Gl

啓動集羣服務

/etc/init.d/mariadb bootstrap

wKiom1fXpimT-N0JAAAJ8Xwmu2g436.png

查看日誌/usr/local/mariadb/log/mariadb.log有 WSREP: Synchronized with group, ready for connections 信息表示集羣服務啓動成功。

tail /usr/local/mariadb/log/mariadb.log

wKioL1fXp9DDk6tcAABCu27EHlI362.png

在節點二執行:

修改/usr/local/mariadb/etc/my.cnf.d/wsrep.cnf在[mysqld]部分以下參數

wsrep_on=on

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0

wsrep_provider=/usr/local/galera/libgalera_smm.so

wsrep_cluster_name="my_wsrep_cluster"

wsrep_cluster_address="gcomm://192.168.11.132,192.168.11.133"

wsrep_node_name=node02

wsrep_node_address=192.168.11.133

wsrep_sst_method=rsync

wsrep_sst_auth=sst:g#ds0Gl

啓動集羣服務

/etc/init.d/mariadb start

wKioL1fXq_Szdk9HAAALshjj7Wk780.png

日誌詳情

wKiom1fXrCDSeCsdAAA7rP71slw095.png

如有多個節點,請參照節點二配置。

在任意一節點登錄mariadb數據庫

查看集羣功能是否開啓

show status like 'wsrep_ready';

wKioL1fXroGhl8shAAAKLfpliLo127.png

初始化數據庫顯示情況

show variables like 'wsrep_cluster_address';

wKiom1fXrxTSZtcmAAAOfhJGJYg838.png

查看集羣相關參數

show status like 'wsrep%';

wKiom1fXraTQ32fgAAA5bOMs9Z8239.png

wsrep_cluster_size集羣規模節點數

wsrep_cluster_state_uuid集羣uuid

wsrep_connected連接狀態

wsrep_ready啓動狀態

查看各節點數據庫系統時間是否一致

select now();

wKiom1fXsKexayvCAAAJ85s0jxY257.pngwKioL1fXsKfxF5voAAAJJh8ttqQ341.png

測試在一個創建數據庫與數據表

create database base;

use base;

create table pet(name varchar(20), owner varchar(20),species varchar(20),sex char(1),birth date, death date);

wKioL1fXsYXwfIPKAAAj8s76rfk830.png

在另一個節點查看已經同步成功

wKiom1fXscLTKxTRAAAWQpF7Zdw069.png

在另一個節點向數據表插入一條記錄

insert into pet values('Puffball','Diane','hamster','f','1999-03-30',null);

wKiom1fXskmQOCA5AAAKpC3Ieww065.png

在其他節點查看記錄已經同步

select * from pet;

wKioL1fXspHxSlREAAAPKoJlDQY716.png

刪除數據庫

drop database base;

wKioL1fXtFXQBwJfAAAHdJPhMUY371.png

wKioL1fXtHvCNgm_AAAM6JmUANM104.png

至此MariaDB Galera Cluster集羣部署成功。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章