Како да инсталирате MariaDB Galera кластер на Ubuntu 16.04

Како да инсталирате MariaDB Galera кластер на Ubuntu 16.04

MariaDB Galera е мулти-мајсторот кластер за MariaDB. од MariaDB 10.1, пакети на серверот на MariaDB Server и MariaDB Galera се комбинираат и Galera пакети и нивните зависности се инсталира автоматски при инсталирањето MariaDB. Моментално, MariaDB Galera Кластерот поддржува само моторот InnoDB за складирање / XtraDB. во MariaDB 10.0 и 5.5, ќе треба да го преземете одделно. MariaDB Galera додава вишок за базата на податоци на сајтот. Во MariaDB Galera Кластерот, повеќе бази на податоци сервери меѓусебно поврзани едни со други и држете го синхронизираат.

MariaDB Galera обезбедува многу функции, некои од нив се наведени подолу:

  1. синхрони репликација.
  2. Автоматско јазол се приклучи.
  3. Активна-активни мулти-мајсторот топологија.
  4. Точно паралелно репликација, на ниво на ред.
  5. Читаат и пишуваат приспособливост, Помалите клиент латенција.
  6. Не успеав јазли, автоматски пад од кластерот.

Во овој туторијал, ние ќе ви објасниме како да се постави MariaDB Galera Кластерот 10.1 со 3 јазли работи на Ubuntu 16.04 сервер. Ние, исто така, ќе го тестира базата на податоци репликација помеѓу сите јазли.

барања

  • Три јазли работат на Убунту 16.04 сервер.
  • Node1 со статичка IP адреса 192.168.0.102, Node2 со статичка IP адреса 192.168.0.103 и Node3 со статичка IP адреса 192.168.0.104 конфигурирање на вашиот сервер.
  • Не-root корисник со sudo привилегии за поставување на сите јазли.

Getting Started

прво, ќе треба да се ажурира сите јазли со најновата верзија. Можете да обновите сите од нив со следнава команда:

sudo apt-get update-Y
sudo apt-get надградба -У

Следна, рестартирајте сите јазли да се применуваат овие промени. потоа, логирате со sudo корисникот и да се продолжи кон следниот чекор.

Инсталирајте MariaDB Galera

MariaDB Server и MariaDB Galera сервер пакети се комбинирани во MariaDB верзија 10.1. Стандардно, MariaDB 10.1 не е достапна во Ubuntu складиштата стандардно, so you will need to add the MariaDB repository on all the nodes.

прво, add the MariaDB repository key with the following command:

sudo apt-key advrecv-keyskeyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Следна, add the repository and update the APT cache with the following command:

sudo add-apt-repository ‘deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main
sudo apt-get update-Y

Once the repository is updated, install MariaDB with the following command:

sudo apt-get install mariadb-server rsync -y

The above command will install MariaDB with Galera and several dependencies. The Galera parts remain dormant until configured, like a plugin or storage engine. Once the MariaDB is installed on all the nodes, you can proceed to secure MariaDB.

By default MariaDB installation is not secured, така што ќе треба да се обезбеди инсталацијата MariaDB. Можете да го направите ова со водење на mysql_secure_installation скрипта:

sudo 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 се обезбедени на сите јазли, може да се продолжи кон следниот чекор.

Поставување MariaDB кластер на Node1

прво, оди на Node1 и да се создаде конфигурациска датотека за Galera. Стандардно, 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 е IP адресата на Node1

Додади Node2 на Galera Кластерот

Следна, оди на Node2 и да се создаде конфигурациска датотека за Galera:

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 е IP адресата на Node2.

Додади Node3 на Galera Кластерот

Следна, оди на Node3 и да се создаде конфигурациска датотека за Galera:

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 е IP адресата на Node3.

Firewall Конфигурирај

Galera Кластерот користи четири пристаништа 3306 за MySQL клиент конекција, 4444 за државни Состојба трансфер, 4567 Кластер за Galera репликација сообраќајот и 4568 За постепено членка трансфер. Така што ќе треба да им овозможи на сите овие порти употребувајќи го ufw ѕид. Можете да го направите ова со извршување на следнава команда на сите јазли:

прво, им овозможи на ufw ѕид со следнава команда:

sudo ufw овозможи

Следна, им овозможи на сите пристаништа со следнава команда:

sudo ufw дозволи 3306 / tcp
sudo ufw дозволи 4444 / tcp
sudo ufw дозволи 4567 / tcp
sudo ufw дозволи 4568 / tcp
sudo ufw дозволи 4567 / UDP

Потоа можете да го проверите статусот на заштитниот ѕид со следнава команда:

sudo ufw статус

Откако ѕид ufw е конфигуриран на сите јазли, може да се продолжи кон следниот чекор.

Започнете MariaDB Galera Кластерот

По успешно конфигурирање на сите јазли, оди на Node1 и да почне Galera Кластерот.

Пред да почнете да Galera, треба да се осигура дека MariaDB услуга е запрен на сите јазли.

Извршете ја следнава команда на сите јазли:

sudo systemctl станица mysql

сега, започнете Galera кластер на Node1 со следнава команда:

sudo galera_new_cluster

сега, проверете дали кластерот работи или не со следнава команда:

mysql -u root-p -е “шоу статус како "wsrep_cluster_size"”

Ако се е во ред, треба да го видите на следниот излез:

+--------------------+-------+
| Variable_name | вредност |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

На Node2, започне на услугата MariaDB:

sudo systemctl почеток mysql

Можете да го проверите статусот на MariaDB услуги дали тоа е работа или не, со следнава команда:

sudo 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 (код = излезе, status=0/SUCCESS)
  Process: 713 ExecStartPost = / etc / mysql / Debian-проектот (код = излезе, status=0/SUCCESS)
  Process: 545 ExecStartPre = / bin / sh -c [! -Е / usr / bin / galera_recovery] && VAR = || VAR = `/ usr / bin / galera_recovery`; [ $? -eq 0 ]   && systemctl set
  Process: 535 ExecStartPre = / bin / sh -c systemctl размести средина _WSREP_START_POSITION (код = излезе, status=0/SUCCESS)
  Process: 514 ExecStartPre = / usr / bin / инсталирате -М 755 -o MySQL root -G-d / var / работи / mysqld (код = излезе, 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 root-p -е “шоу статус како "wsrep_cluster_size"”

Ако се работи добро, Големина на кластер треба да бидат поставени на две:

+--------------------+-------+
| Variable_name | вредност |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

На Node3, започне на услугата MariaDB:

sudo systemctl почеток mysql
mysql -u root-p -е “шоу статус како "wsrep_cluster_size"”

Ако се работи добро, Големина на кластер треба да се постави на три:

+--------------------+-------+
| Variable_name | вредност |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Вие кластерот е сега работат и комуникација едни со други.

Тест база на податоци репликација

сега, сите јазли се онлајн, тоа е време да ги тестираат базата на податоци репликација низ кластер Galera. Ајде да започнете со креирање на база на податоци за Node1 и да се провери дали се реплицира на сите јазли.

прво, пријавете се за да MariaDb конзола со следнава команда:

mysql -u root-p

Внесете ја лозинката за root и да се создаде база на податоци со име test_db:

MariaDB [(none)]> test_db се создаде база на податоци;
MariaDB [(none)]> покажуваат бази на податоци;

+--------------------+
| База на податоци |
+--------------------+
| test_db |
+--------------------+

Сега одиме на Node2 и Node3, тогаш проверете репликација е работен или не:

mysql -u root-p
MariaDB [(none)]> покажуваат бази на податоци;

+--------------------+
| База на податоци |
+--------------------+
| test_db |
+--------------------+

Алал да му е! успешно ќе се инсталира и конфигурира MariaDB Galera кластер на Ubuntu 16.04 сервер.

заклучок

Се надевам дека ќе имаат доволно знаење сега да инсталирате и конфигурирате MariaDB Galera кластер на Ubuntu 16.04. Сега ќе можете лесно намалени и до неколку, па дури и десетици, на различни јазли. Ако се сомневате или повеќе за пребарување, потоа да се однесува на врската Galera Кластерот Док

извор