نصب Galera Cluster بر روی debian 10

نصب Galera Cluster بر روی debian 10
در این پست می‌خوانید:

در راهنمای امروز ، مراحل لازم برای راه اندازی کلاستر MariaDB Galera در Debian 10 (Buster) را برای شما شرح می دهم. برای افرادی که حجم بار جدی در MariaDB دارند ، در دسترس بودن سرور پایگاه داده نیازمند استقرار کلاستر Galera است.

کلاستر MariaDB Galera یک کلاستر چند کاره همزمان برای MariaDB با پشتیبانی از موتورهای ذخیره سازی XtraDB/InnoDB است. دارای ویژگی های زیر است.
این توپولوژی چند master ای  فعال – فعال را ارائه می دهد
می توانید در هر گره از کلاستر عملیات read , write انجام شود
دارای اتصال خودکار نود ها بهم است
دارای کنترل خودکار عضویت و خارج سازی گره های خراب از کلاستر می باشد
دارای parallel replication واقعی در سطح ردیف های جدول
ارتباط مستقیم با کلاینت ها

سرور ها با اطلاعات زیر برای نصب مدنظر قرار گرفته است

Server Hostname IP Address
DB 1 db1.linuxlearn.org 10.0.0.2
DB 2 db2.linuxlearn.org 10.0.0.3
DB 3 db3.linuxlearn.org 10.0.0.4

 

گام اول – به روزرسانی کامل سرور

از دستورات زیر برای بروزرسانی استفاده میکنیم

sudo apt update && sudo apt -y upgrade && sudo reboot

 

گام دوم – ست کردن نام هاست ها

# DB1
sudo hostnamectl set-hostname db1.linuxlearn.org --static

# DB2
sudo hostnamectl set-hostname db2.linuxlearn.org --static

# DB3
sudo hostnamectl set-hostname db3.linuxlearn.org --static

جا داره در ادامه د صورت نبودن سرویس دی ان اس آدرس ها به فایل هاست در هر سرور منتقل شود

sudo tee -a /etc/hosts<<EOF
10.0.0.2 db1.linuxlearn.org db1
10.0.0.3 db2.linuxlearn.org db2
10.0.0.4 db3.linuxlearn.org db3
EOF

 

گام سوم – نصب پکیج های Mariadb روی همه سرور ها

sudo apt -y install mariadb-server mariadb-client

سپس روی همه سرور ها دستور mysql_secure_installation اجرا میکنیم.

$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

گام چهارم – پیکربندی گلرا کلاستر

در ابتدا سرویس دیتابیس روی 127.0.0.1 سرویس میده که میبایست تغییر کند

برای این منظور در فایل زیر خط bind-address رو کامنت میکنیم

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf 

#bind-address = 127.0.0.1

پیکربندی گلرا روی نود اول

برای این نود پیکربندی به صورت زیر میباشد

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="galera_cluster"
wsrep_node_address="db1"

برای اجرا دستورات زیر را میزنیم

sudo galera_new_cluster 

sudo systemctl restart mariadb 

پیکربندی گلرا روی نود دوم

برای این نود پیکربندی به صورت زیر میباشد

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Specify cluster nodes
wsrep_cluster_address="gcomm://db1,db2,db3"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="galera_cluster"
wsrep_node_address="db2"

برای اجرا دستور زیر را میزنیم

sudo systemctl restart mariadb

پیکربندی گلرا روی نود دوم

 

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Specify cluster nodes
wsrep_cluster_address="gcomm://db1,db2,db3"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="galera_cluster"
wsrep_node_address="db3"

 

برای اجرا دستور زیر را میزنیم

sudo systemctl restart mariadb

گام آخر – چک صحت ایجاد کلاستر

وارد یکی از نود های کلاستر میشویم و در کنسول mysql کویری زیر را میزنیم

$ MariaDB [(none)]> show status like 'wsrep_%'; 
+------------------------------+--------------------------------------+
| Variable_name | Value |
+------------------------------+--------------------------------------+
| wsrep_apply_oooe | 0.000000 |
| wsrep_apply_oool | 0.000000 |
| wsrep_apply_window | 0.000000 |
| wsrep_causal_reads | 0 |
| wsrep_cert_deps_distance | 0.000000 |
| wsrep_cert_index_size | 0 |
| wsrep_cert_interval | 0.000000 |
| wsrep_cluster_conf_id | 3 |
| wsrep_cluster_size | 3 |
| wsrep_cluster_state_uuid | 0f6dbe29-bec4-11e9-a243-eb8c0dc70c76 |
| wsrep_cluster_status | Primary |
| wsrep_cluster_weight | 3 |
| wsrep_commit_oooe | 0.000000 |
| wsrep_commit_oool | 0.000000 |
| wsrep_commit_window | 0.000000 |
| wsrep_connected | ON |
| wsrep_desync_count | 0 |
| wsrep_evs_delayed | |
| wsrep_evs_evict_list | |
| wsrep_evs_repl_latency | 0/0/0/0/0 |
| wsrep_evs_state | OPERATIONAL |
| wsrep_flow_control_paused | 0.000000 |
| wsrep_flow_control_paused_ns | 0 |
| wsrep_flow_control_recv | 0 |
| wsrep_flow_control_sent | 0 |
| wsrep_gcomm_uuid | 0f6d51e5-bec4-11e9-bd50-52974fa5f2b4 |
| wsrep_incoming_addresses | db1:3306,db2:3306,db3:3306 |
| wsrep_last_committed | 0 |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_cached_downto | 18446744073709551615 |
| wsrep_local_cert_failures | 0 |
| wsrep_local_commits | 0 |
| wsrep_local_index | 0 |
| wsrep_local_recv_queue | 0 |
| wsrep_local_recv_queue_avg | 0.100000 |
| wsrep_local_recv_queue_max | 2 |
| wsrep_local_recv_queue_min | 0 |
| wsrep_local_replays | 0 |
| wsrep_local_send_queue | 0 |
| wsrep_local_send_queue_avg | 0.000000 |
| wsrep_local_send_queue_max | 1 |
| wsrep_local_send_queue_min | 0 |
| wsrep_local_state | 4 |
| wsrep_local_state_comment | Synced |
| wsrep_local_state_uuid | 0f6dbe29-bec4-11e9-a243-eb8c0dc70c76 |
| wsrep_open_connections | 0 |
| wsrep_open_transactions | 0 |
| wsrep_protocol_version | 9 |
| wsrep_provider_name | Galera |
| wsrep_provider_vendor | Codership Oy <[email protected]> |
| wsrep_provider_version | 3.25(rddf9876) |
| wsrep_ready | ON |
| wsrep_received | 10 |
| wsrep_received_bytes | 790 |
| wsrep_repl_data_bytes | 0 |
| wsrep_repl_keys | 0 |
| wsrep_repl_keys_bytes | 0 |
| wsrep_repl_other_bytes | 0 |
| wsrep_replicated | 0 |
| wsrep_replicated_bytes | 0 |
| wsrep_thread_count | 2 |
+------------------------------+--------------------------------------+
61 rows in set (0.002 sec)

همین طور که میبینین مقدار wsrep_cluster_size برابر 3 میباشد

 

ویدیو آموزش زیر میتونه برای توزیع بار بین نود های گلرا واستون مفید باشه

بررسی گلرا کلاستر و maxscale

امیدوارم مفید بوده باشه یا حق

دیدگاه‌ها ۰
ارسال دیدگاه جدید