如何安裝在Ubuntu上MariaDB的加萊拉集群 16.04

如何安裝在Ubuntu上MariaDB的加萊拉集群 16.04

MariaDB的加萊拉為MariaDB的多主群集. 由於MariaDB的 10.1, 在MariaDB的服務器和MariaDB的加萊拉Server軟件包已被結合並安裝MariaDB的時候加萊拉包及其依賴都會自動安裝. 目前, MariaDB的加萊拉集群僅支持InnoDB的/ XtraDB存儲引擎. 在MariaDB的 10.0 和 5.5, 您將需要單獨下載. MariaDB的加萊拉增加冗餘站點的數據庫. 在MariaDB的加萊拉集群, 多個數據庫服務器互相連接,並保持同步.

MariaDB的加萊拉提供了大量的功能, 他們中的一些列舉如下:

  1. 同步複製.
  2. 自動節點加入.
  3. 主動 - 主動多主拓撲.
  4. 真正的並行複製, 對行級.
  5. 讀,寫的可擴展性, 規模較小的客戶端延遲.
  6. 失敗的節點, 從集群自動落.

在本教程, 我們將解釋如何安裝MariaDB的加萊拉集群 10.1 與 3 在Ubuntu上運行的節點 16.04 服務器. 我們還將測試所有節點之間的數據庫複製.

要求

  • 三個節點的運行Ubuntu 16.04 服務器.
  • 節點1使用靜態IP地址 192.168.0.102, 節點2使用靜態IP地址 192.168.0.103 和節點3使用靜態IP地址 192.168.0.104 配置您的服務器上.
  • 使用sudo權限設置中的所有節點上非root用戶.

入門

第一次, 你將需要更新所有最新版本的節點. 你可以用以下命令來更新所有的人:

sudo易於得到更新-y
sudo易於得到升級-y

下一個, 重新啟動所有應用這些更改的節點. 然後, 登錄使用sudo用戶,並繼續到下一個步驟.

安裝MariaDB的加萊拉

MariaDB的服務器和MariaDB的加萊拉Server軟件包結合在版本MariaDB的 10.1. 默認, MariaDB的 10.1 是不是在Ubuntu默認軟件倉庫, 所以你需要添加所有節點上的MariaDB的存儲庫.

第一次, 加上用下面的命令MariaDB的存儲庫密鑰:

sudo易於關鍵進階 –recv的密鑰 –密鑰服務器HKP://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

下一個, 添加該存儲庫和更新使用以下命令的APT緩存:

須藤附加易於存儲庫'DEB [拱= AMD64,I386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial主’
sudo易於得到更新-y

一旦存儲的更新, 用下面的命令來安裝MariaDB的:

命令和apt-get安裝MariaDB的服務器的rsync -y

上面的命令將安裝MariaDB的與加萊拉和幾個依賴. 所述加萊拉零件保持休眠直到被配置, 像插件或存儲引擎. 一旦MariaDB的安裝在所有節點上, 您可以繼續確保MariaDB的.

默認情況下,MariaDB的安裝不固定, 所以你需要確保MariaDB的安裝. 您可以通過運行該腳本mysql_secure_installation做到這一點:

須藤mysql_secure_installation

在這個過程中, 你會被要求設置root的密碼, 刪除匿名用戶, 遠程禁止根登錄和刪除測試數據庫. 回答所有的問題如下圖所示:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

一旦MariaDB的固定所有節點上, 您可以繼續下一步.

Node1上安裝MariaDB的集群

第一次, 轉到Node1和創造加萊拉配置文件. 默認, MariaDB的從/etc/mysql/conf.d/目錄中讀取配置. 要做到這一點, 運行以下命令:

sudo的納米/etc/mysql/conf.d/galera.cnf

添加以下行:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.102"
wsrep_node_name="Node1"

保存文件,當你完成.

注意: 192.168.0.102 是Node1的IP地址

添加節點2上加萊拉集群

下一個, 轉到節點2並創建加萊拉一個配置文件:

sudo的納米/etc/mysql/conf.d/galera.cnf

添加以下行:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.103"
wsrep_node_name="Node2"

保存文件,當你完成.

注意: 192.168.0.103 是節點2的IP地址.

添加節點3上加萊拉集群

下一個, 去到節點3並創建加萊拉一個配置文件:

sudo的納米/etc/mysql/conf.d/galera.cnf

添加以下行:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.104"
wsrep_node_name="Node3"

保存文件,當你完成.

注意: 192.168.0.104 是節點3的IP地址.

配置防火牆

加萊拉Cluster使用四個端口 3306 為MySQL客戶端連接, 4444 國有快照轉移, 4567 對於加萊拉集群複製流量和 4568 對於增量狀態轉移. 所以,你需要允許使用UFW防火牆所有這些端口. 您可以通過在所有節點上運行以下命令做到這一點:

第一次, 使得能夠與以下命令UFW防火牆:

須藤UFW啟用

下一個, 允許所有使用以下命令的端口:

須藤UFW允許3306 / TCP
須藤UFW允許4444 / TCP
須藤UFW允許4567 / TCP
須藤UFW允許4568 / TCP
須藤UFW允許4567 / UDP

然後,您可以檢查與下面的命令防火牆的狀態:

須藤UFW狀態

一旦UFW防火牆的所有節點上配置, 您可以繼續下一步.

啟動MariaDB的加萊拉集群

當成功地配置所有節點, 轉到節點1,並開始加萊拉集群.

之前加萊拉可以啟動, 你需要確保MariaDB的服務已停止所有節點上.

在所有節點上執行以下命令:

須藤systemctl停止MySQL的

現在, 用下面的命令啟動Node1上加萊拉集群:

須藤galera_new_cluster

現在, 檢查集群是否正在運行或不使用下面的命令:

的MySQL -u根-p -e “像“wsrep_cluster_size”顯示狀態”

如果一切正常,你應該看到下面的輸出:

+--------------------+-------+
| VARIABLE_NAME |值|
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

在節點2, 啟動MariaDB的服務:

須藤systemctl啟動MySQL

您可以檢查MariaDB的服務的狀態是否正常工作或不使用下面的命令:

須藤systemctl狀態的mysql

如果一切正常, 你應該看到下面的輸出:

?? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-17 10:11:20 EDT; 10min ago
  Process: 715 ExecStartPost = / bin / sh的-c systemctl取消設置環境_WSREP_START_POSITION(代碼= EXITED, status=0/SUCCESS)
  Process: 713 ExecStartPost =的/ etc / MySQL的/ Debian的開始(代碼= EXITED, status=0/SUCCESS)
  Process: 545 ExecStartPre = / bin / sh的-c [! -e的/ usr /斌/ galera_recovery] && VAR = || VAR =`的/ usr /斌/ galera_recovery`; [ $?當量 0 ]   && systemctl set
  Process: 535 ExecStartPre = / bin / sh的-c systemctl取消設置環境_WSREP_START_POSITION(代碼= EXITED, status=0/SUCCESS)
  Process: 514 ExecStartPre =的/ usr / bin中/安裝-m 755 -øMySQL的-g根-d的/ var /運行/ mysqld的(代碼= EXITED, status=0/SUCCESS)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (限制: 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10:11:11的Debian systemd [1]:啟動MariaDB的數據庫服務器...
九月 17 10:11:15的Debian mysqld的[661]: 2017-09-17 10:11:15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process
Sep 17 10:11:20的Debian systemd [1]:發起者MariaDB的數據庫服務器.

現在, 你的第二個節點應該已經自動鏈接到集群. 您可以驗證使用以下命令:

的MySQL -u根-p -e “像“wsrep_cluster_size”顯示狀態”

如果一切運作良好, 簇的大小應設置兩個:

+--------------------+-------+
| VARIABLE_NAME |值|
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

在節點3, 啟動MariaDB的服務:

須藤systemctl啟動MySQL
的MySQL -u根-p -e “像“wsrep_cluster_size”顯示狀態”

如果一切運作良好, 簇的大小應設置為三條:

+--------------------+-------+
| VARIABLE_NAME |值|
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

您集群現在的工作和相互通信.

測試數據庫複製

現在, 所有節點都在線, 它的時間跨越加萊拉集群測試的數據庫複製. 讓我們通過創建節點1數據庫啟動,並檢查它是否在所有節點上複製.

第一次, 登錄到使用下面的命令MariaDB的控制台:

MySQL的ü根 - P

輸入您的root密碼,並創建名TEST_DB數據庫:

MariaDB的[(無)]> 創建數據庫TEST_DB;
MariaDB的[(無)]> 節目數據庫;

+--------------------+
|數據庫|
+--------------------+
| TEST_DB |
+--------------------+

現在去2,3兩個節點, 然後檢查複製是否工作:

MySQL的ü根 - P
MariaDB的[(無)]> 節目數據庫;

+--------------------+
|數據庫|
+--------------------+
| TEST_DB |
+--------------------+

恭喜!您已成功安裝並在Ubuntu配置MariaDB的加萊拉集群 16.04 服務器.

結論

我希望你現在有足夠的知識在Ubuntu上安裝和配置MariaDB的加萊拉集群 16.04. 現在,您可以輕鬆地擴大到幾, 甚至幾十, 的不同節點. 如果您有任何疑問或多個查詢, 再參考鏈接 加萊拉集群文件

資源