مقدمه
خوشه بندی یک روش برای توزیع داده ها و بار کاری بین چندین سرور است. این می تواند به بهبود عملکرد، در دسترس بودن و مقیاس پذیری کمک کند.
MySQL یک سیستم مدیریت پایگاه داده رابطه ای (RDBMS) محبوب است که از خوشه بندی پشتیبانی می کند. Galera یک راه حل خوشه بندی MySQL است که از همانند سازی همزمان استفاده می کند. این بدان معنی است که داده ها در تمام گره های خوشه به طور همزمان به روز می شوند.
در این راهنما، نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای Ubuntu 18.04 را خواهید آموخت.
پیش نیازها
برای دنبال کردن این راهنما، به موارد زیر نیاز دارید:
- سه سرور Ubuntu 18.04 با حداقل 2 گیگابایت حافظه و 20 گیگابایت فضای ذخیره سازی
- یک شبکه خصوصی که تمام سرورها به آن متصل هستند
- یک کاربر غیر ریشه با امتیازات sudo در هر سرور
مراحل
- MySQL را روی همه سرورها نصب کنید.
sudo apt install mysql-server
- MySQL را شروع و فعال کنید.
sudo systemctl start mysql
sudo systemctl enable mysql
- یک کاربر root MySQL ایجاد کنید.
sudo mysql
CREATE USER 'root'@'%' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- یک پایگاه داده جدید ایجاد کنید.
CREATE DATABASE my_database;
- MySQL را روی همه سرورها متوقف کنید.
sudo systemctl stop mysql
- MySQL را روی همه سرورها پیکربندی کنید.
سرور 1
sudo vi /etc/mysql/my.cnf
[mysqld]
wsrep_on=ON
wsrep_provider=galera
wsrep_cluster_address=gcomm://my_cluster
wsrep_node_name=node1
wsrep_cluster_name=my_cluster
wsrep_sst_method=rsync
wsrep_sst_auth=root:my_password
سرور 2
sudo vi /etc/mysql/my.cnf
[mysqld]
wsrep_on=ON
wsrep_provider=galera
wsrep_cluster_address=gcomm://my_cluster
wsrep_node_name=node2
wsrep_cluster_name=my_cluster
wsrep_sst_method=rsync
wsrep_sst_auth=root:my_password
سرور 3
sudo vi /etc/mysql/my.cnf
[mysqld]
wsrep_on=ON
wsrep_provider=galera
wsrep_cluster_address=gcomm://my_cluster
wsrep_node_name=node3
wsrep_cluster_name=my_cluster
wsrep_sst_method=rsync
wsrep_sst_auth=root:my_password
- MySQL را روی همه سرورها شروع کنید.
sudo systemctl start mysql
- خوشه را با استفاده از دستور
wsrep_sst_tool
همگام سازی کنید.
سرور 1
sudo wsrep_sst_tool –role=backup –datadir=/var/lib/mysql –address=node2 –user=root –password=my_password
سرور 2
sudo wsrep_sst_tool –role=restore –datadir=/var/lib/mysql –address=node1 –user=root –password=my_password
- خوشه را آزمایش کنید.
سرور 1
mysql -u root -pmy_password -e "SELECT * FROM my_database.my_table;"
سرور 2
mysql -u root -pmy_password -e```
مرحله 9: خوشه را آزمایش کنید
برای آزمایش خوشه، میتوانید از دستور SELECT *
برای بازیابی دادهها از پایگاه داده استفاده کنید.
mysql -u root -pmy_password -e "SELECT * FROM my_database.my_table;"
خروجی این دستور باید همان دادههایی باشد که در پایگاه داده اصلی قرار دادهاید.
همچنین میتوانید از دستور wsrep_sst_status
برای بررسی وضعیت همگامسازی خوشه استفاده کنید.
sudo wsrep_sst_status
خروجی این دستور باید نشان دهد که تمام گرههای خوشه با یکدیگر همگام هستند.
نتیجه
با دنبال کردن این مراحل، یک خوشه Galera با MySQL در سرورهای Ubuntu 18.04 پیکربندی کردهاید. این خوشه میتواند برای بهبود عملکرد، در دسترس بودن و مقیاس پذیری پایگاه داده شما استفاده شود.
موارد اضافی
- برای اطلاعات بیشتر در مورد پیکربندی خوشه Galera، میتوانید به مستندات Galera مراجعه کنید.
- برای افزایش امنیت خوشه، میتوانید از یک مکانیسم احراز هویت قویتر برای گرهها استفاده کنید.
- برای بهبود عملکرد خوشه، میتوانید از یک شبکه با پهنای باند بالا بین گرهها استفاده کنید.
مشکلات احتمالی
- اگر با پیکربندی خوشه مشکل دارید، میتوانید از دستور
wsrep_status
برای بررسی وضعیت خوشه استفاده کنید. این دستور میتواند به شما کمک کند تا علت مشکل را شناسایی کنید. - اگر یک گره خوشه از کار بیفتد، دیگر گرهها همچنان قابل دسترسی خواهند بود. با این حال، ممکن است تا زمانی که گره معیوب دوباره به کار بیفتد، عملکرد خوشه کاهش یابد.
سخن پایانی
خوشه Galera یک راه حل قدرتمند برای خوشه بندی پایگاه داده MySQL است. با پیروی از مراحل این راهنما، میتوانید یک خوشه Galera را در سرورهای Ubuntu 18.04 پیکربندی کرده و از مزایای آن بهرهمند شوید.