مقدمه
خوشه بندی با توزیع تغییرات در سرورهای مختلف ، دسترس پذیری بالایی به پایگاه داده شما می دهد. در صورت عدم موفقیت یکی از موارد ، بقیه سریعاً برای سرویس دهی در دسترس هستند.
خوشه ها در دو پیکربندی کلی ، فعال-منفعل و فعال-فعال ارائه می شوند. در خوشه های فعال منفعل، همه نوشتن ها بر روی یک سرور مجازی فعال انجام می شود و سپس در یک یا چند سرور مجازی منفعل کپی می شوند که آماده هستند فقط در صورت خرابی سرور مجازی فعال ، به کار بیفتند. برخی از خوشه های فعال منفعل نیز امکان انجام SELECT بر روی گره های منفعل را می دهند. در یک خوشه فعال فعال ، هر گره خواندن -نوشتن است و تغییر ایجاد شده در یکی ، برای همه تکرار می شود.
MySQL یک سیستم مدیریت پایگاه داده رابطه ای منبع باز است که یک انتخاب محبوب برای پایگاه داده های SQL میباشد. Galera یک راه حل خوشه بندی بانک اطلاعاتی است که شما را قادر می سازد با استفاده از همانند سازی همزمان ، خوشه های چند مستر تنظیم کنید. Galera به طور خودکار داده ها را بر روی گره های مختلف به صورت همگام سازی مدیریت میکند در حالی که به شما امکان می دهد برای هر کدام از گره های موجود در این گروه ، درخواست هایی را بخوانید و بنویسید. می توانید اطلاعات بیشتری در مورد Galera در صفحه مطالب رسمی کسب کنید.
در این راهنما ، یک خوشه فعال MySQL Galera را پیکربندی می کنید. برای اهداف نمایشی ، سه دراپلت Ubuntu 18.04 را که به عنوان گره در خوشه عمل می کنند ، پیکربندی کرده و آزمایش می کنید. این مقدار گره کوچکترین خوشه قابل تنظیم است.
پیش نیازها
برای دنبال کردن مطلب ، علاوه بر موارد زیر ، به یک حساب vpsgol نیز نیاز دارید:
سه دراپلت Ubuntu 18.04 با شبکه خصوصی فعال شده که هر کدام دارای یک کاربر غیر ریشه با امتیازات sudo هستند.
برای راه اندازی شبکه های خصوصی در سه دراپلت ، راهنمای راه اندازی سریع شبکه را دنبال کنید.
برای کمک به راه اندازی یک کاربر غیر ریشه با امتیازات sudo ، راهنمای اولیه راه اندازی سرور مجازی ما با آموزش اوبونتو 18.04 را دنبال کنید.
در حالی که مراحل این آموزش برای دراپلت های vpsgol نوشته و تست شده است ، بسیاری از آنها در سرورهای غیر vpsgol نیز که شبکه های خصوصی را فعال می کنند کاربرد دارند.
مرحله 1 – اضافه کردن منابع MySQL به همه سرورها
در این مرحله منابع بسته MySQL و Galera را به هر سه سرور مجازی خود اضافه می کنید تا بتوانید نسخه صحیح MySQL و Galera مورد استفاده در این آموزش را نصب کنید.

توجه: Codership ، شرکت پشتیبان خوشه Galera ، منبع Galera را حفظ می کند ، اما توجه داشته باشید که همه منابع خارجی قابل اعتماد نیستند. مطمئن شوید که فقط از منابع معتبر نصب کنید.
در این آموزش از MySQL نسخه 5.7 استفاده خواهید کرد. کار را با اضافه کردن منبع خارجی اوبونتو که توسط پروژه Galera برای سه سرور مجازی شما ذخیره شده است شروع می کنید.
پس از به روزرسانی منابع هر سه سرور مجازی ، شما می توانید MySQL را به همراه Galera نصب کنید.
ابتدا ، در هر سه سرور مجازی خود ، کلید منبع Galera را با دستور apt-key اضافه کنید ، که مدیر بسته APT برای تأیید صحت این بسته از آن استفاده می کند:
$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv BC19DDBA
بعد از چند ثانیه ، خروجی زیر را دریافت خواهید کرد:
Executing: /tmp/apt-key-gpghome.RG5cTZjQo0/gpg.1.sh –keyserver keyserver.ubuntu.com –recv BC19DDBA
gpg: key D669017EBC19DDBA: public key “Codership Oy <info@galeracluster.com>” imported
gpg: Total number processed: 1
gpg: imported: 1

پس از داشتن کلید قابل اعتماد در بانک اطلاعاتی هر سرور مجازی ، می توانید منابع را اضافه کنید. برای این کار ، یک فایل جدید به نام galera.list را در فهرست /etc/apt/source.list.d/ هر سرور مجازی ایجاد کنید:
$ sudo nano /etc/apt/sources.list.d/galera.list
در ویرایشگر متن ، سطرهای زیر را اضافه کنید ، که منابع مناسب را در اختیار مدیر بسته APT قرار می دهد:
/etc/apt/sources.list.d/galera.list
deb http://releases.galeracluster.com/mysql-wsrep-5.7/ubuntu bionic main
deb http://releases.galeracluster.com/galera-3/ubuntu bionic main

فایل ها را روی هر سرور مجازی ذخیره کنید و ببندید (CTRL + X ، Y ، سپس ENTER را فشار دهید)
منابع codership اکنون برای هر سه سرور مجازی شما در دسترس است. با این حال ، مهم است که به apt دستور دهید که منابع Codership را به دیگر منابع ترجیح دهد تا از نصب نسخه های پچ شده نرم افزار مورد نیاز برای ایجاد یک خوشه Galera اطمینان حاصل شود. برای این کار ، فایل جدید دیگری به نام galera.pref را در فهرست /etc/apt/preferences.d/ هر سرور مجازی ایجاد کنید:

$ sudo nano /etc/apt/preferences.d/galera.pref
خطوط زیر را به ویرایشگر متن اضافه کنید:
/etc/apt/preferences.d/galera.pref
# Prefer Codership repository
Package: *
Pin: origin releases.galeracluster.com
Pin-Priority: 1001

آن فایل را ذخیره کرده و ببندید ، سپس دستور زیر را روی هر سرور مجازی اجرا کنید تا مانیفست بسته از منابع جدید را شامل شود:
$sudo apt update
اکنون که منبع بسته را با موفقیت روی هر سه سرور مجازی خود اضافه کردید ، آماده هستید MySQL را در بخش بعدی نصب کنید.
مرحله 2 – نصب MySQL در تمام سرورها
در این مرحله بسته MySQL را روی سه سرور مجازی خود نصب خواهید کرد.
برای نصب نسخه MySQL پچ شده برای کار با Galera ، و همچنین بسته Galera ، دستور زیر را در هر سه سرور مجازی اجرا کنید.
$ sudo apt install galera-3 mysql-wsrep-5.7
از شما خواسته می شود که تأیید کنید آیا نصب را ادامه می دهید یا خیر. Y را وارد کنید تا نصب ادامه یابد. در حین نصب از شما خواسته می شود که یک رمز عبور برای کاربر اجرایی MySQL ایجاد کنید. یک رمز عبور ایمن تنظیم کنید و ENTER را برای ادامه فشار دهید.
پس از نصب MySQL ، مشخصات پیش فرض AppArmor را غیرفعال می کنید تا مطابق مطالب مربوطه Galera ، از عملکرد صحیح Galera اطمینان حاصل کنید. AppArmor یک ماژول هسته برای لینوکس است که عملکرد کنترل دسترسی را برای خدمات از طریق پروفایل های امنیتی فراهم می کند.
AppArmor را با اجرای دستور زیر در هر سرور مجازی غیرفعال کنید:
$ sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
این دستور یک پیوند نمادین از پروفایل MySQL را به فهرست disable اضافه می کند ، که نمایه را در بوت غیرفعال می کند.
سپس دستور زیر را اجرا کنید تا تعریف MySQL را که قبلاً در هسته بارگذاری شده است حذف کنید.
$ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
پس از نصب MySQL و نمایه AppArmor در اولین سرور مجازی خود ، این مراحل را برای دو سرور مجازی دیگر خود تکرار کنید.

اکنون که MySQL را با موفقیت در هر سه سرور مجازی نصب کردید ، می توانید در قسمت بعدی به مرحله تنظیمات بروید.
مرحله 3 – پیکربندی گره اول
در این مرحله اولین گره خود را پیکربندی می کنید. هر گره در خوشه نیاز به پیکربندی تقریباً یکسان دارد. به همین دلیل تمام پیکربندی های موجود در دستگاه اول خود را انجام داده و سپس آن را در گره های دیگر کپی می کنید.
به طور پیش فرض ، MySQL پیکربندی شده است تا دایرکتوری /etc/mysql/conf.d را بررسی کند تا تنظیمات اضافی پیکربندی را از فایل های منتهی به .cnf دریافت کند. در اولین سرور مجازی خود ، با همه دستورالعملهای مربوط به خوشه ، یک فایل در این فهرست ایجاد کنید:
Glara-node01$ sudo nano /etc/mysql/conf.d/galera.cnf
پیکربندی زیر را در فایل اضافه کنید. پیکربندی گزینه های مختلف خوشه ای ، جزئیات مربوط به سرور مجازی فعلی و سایر سرورهای موجود در خوشه و تنظیمات مربوط به همانند سازی را مشخص می کند. توجه داشته باشید که آدرسهای IP موجود در پیکربندی ، آدرسهای خصوصی سرورهای مربوطه شما هستند. خطوط هایلایت شده را با آدرس های IP مناسب جایگزین کنید.
/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=”test_cluster”
wsrep_cluster_address=”gcomm://

First_Node_IP,Second_Node_IP,Third_Node_IP”

# Galera Synchronization Configuration
wsrep_sst_method=rsync

 

در این مرحله ، کلیه خوشه ها بصورت آنلاین و با موفقیت ارتباط برقرار می کنند. در مرحله بعد می توانید با آزمایش همانند سازی در بخش زیر ، از تنظیم کار اطمینان حاصل کنید.
مرحله 7 – تست همانندسازی
شما مراحل تا این مرحله طی کرده اید تا خوشه شما بتواند کپی کردن را از هر گره به گره دیگر که همانندسازی فعال-فعال نامیده میشود، انجام دهد. در این مرحله ، شما تست خواهید کرد و میبینید که آیا همانند سازی همانطور که انتظار می رود، کار می کند.
در گره اول بنویسید
با ایجاد تغییر در پایگاه داده در اولین گره خود شروع خواهید کرد. دستورات زیر یک پایگاه داده به نام playground و یک جدول درون این پایگاه داده با نام equipment ایجاد می کنند.
Galera-node-01$ mysql -u root -p -e ‘CREATE DATABASE playground;
Galera-node-01$ CREATE TABLE playground.equipment ( id INT NOT NULL AUTO_INCREMENT, type VARCHAR(50), quant INT, color VARCHAR(25), PRIMARY KEY(id));
Galera-node-01$ INSERT INTO playground.equipment (type, quant, color) VALUES (“slide”, 2, “blue”);’
در دستور قبلی ، عبارت CREATE DATABASE یک دیتابیس با نام playground ایجاد می کند. عبارت CREATE یک جدول به نام equipment  درون playground  ایجاد می کند که دارای یک ستون شناسه افزایش خودکار به نام id و سایر ستون ها است. ستون type ، ستون quant و ستون color به ترتیب برای ذخیره نوع و کمیت و رنگ تجهیزات تعریف شده است. عبارت INSERT یک ورودی از نوع اسلاید ، کمیت 2 و رنگ آبی را درج می کند.
اکنون یک مقدار در جدول خود دارید.
داده ها را در گره دوم بخوانید و بنویسید.
در مرحله بعدی ، به منظور بررسی اینکه کپی در حال کار کردن است ، به گره دوم نگاه کنید:
Galera-node-02$ mysql -u root -p -e ‘SELECT * FROM playground.equipment;’
داده هایی که در گره اول وارد کرده اید در مرحله دوم قابل مشاهده خواهد بود ، که اثبات میکند این همانندسازی کار می کند:
Output
+—-+——-+——-+——-+
| id | type | quant | color |
+—-+——-+——-+——-+
| 1 | slide | 2 | blue |
+—-+——-+——-+——-+
از همین گره ، داده ها را در خوشه بنویسید:
Galera-node-02$ mysql -u root -p -e ‘INSERT INTO playground.equipment (type, quant, color) VALUES (“swing”, 10, “yellow”);’

در گره سوم بخوانید و بنویسید
از گره سوم ، می توانید با فراخوانی مجدد جدول ، تمام این داده ها را بخوانید:
Galera-node-03$ mysql -u root -p -e ‘SELECT * FROM playground.equipment;’
خروجی زیر را نشان می دهد که دو ردیف را نشان می دهد:
Output
+—-+——-+——-+——–+
| id | type | quant | color |
+—-+——-+——-+——–+
| 1 | slide | 2 | blue |
| 2 | swing | 10 | yellow |
+—-+——-+——-+——–+
باز هم ، می توانید مقدار دیگری از این گره اضافه کنید:
Galera-node-03$ mysql -u root -p -e ‘INSERT INTO playground.equipment (type, quant, color) VALUES (“seesaw”, 3, “green”);’
در گره اول بخوانید
با بازگشت به گره اول ، می توانید تأیید کنید که داده های شما در همه جا در دسترس است:
Galera-node-01$ mysql -u root -p -e ‘SELECT * FROM playground.equipment;’
خروجی زیر را مشاهده خواهید کرد ، که نشان می دهد ردیف ها در گره اول موجود هستند.
Output
+—-+——–+——-+——–+
| id | type | quant | color |
+—-+——–+——-+——–+
| 1 | slide | 2 | blue |
| 2 | swing | 10 | yellow |
| 3 | seesaw | 3 | green |
+—-+——–+——-+——–+

اکنون با موفقیت تأیید کرده اید که می توانید در همه گره ها بنویسید و این تکرار به درستی انجام می شود.
نتیجه
در این مرحله ، شما یک خوشه آزمایش Galera سه گره ای پیکربندی کرده اید. اگر قصد دارید از یک خوشه Galera در یک وضعیت تولید استفاده کنید ، توصیه می شود با حداقل کمتر از پنج گره شروع نکنید.
قبل از استفاده از تولید ، بهتر است به برخی از عوامل تبدیل اسنپ شات (sst) حالات دیگر از جمله xtrabackup نگاهی بیندازید ، که به شما امکان می دهد گره های جدید را به سرعت و بدون ایجاد اختلال در گره های فعال خود تنظیم کنید. این کار بر کپی کردن واقعی تأثیر نمی گذارد، اما وقتی گره ها شروع می شوند اهمیت پیدا میکند.
همچنین ممکن است به راه حل های خوشه بندی دیگری برای MySQL علاقه مند باشید ، در این صورت می توانید نحوه آموزش ایجاد یک خوشه MySQL چند گره را در Ubuntu 18.04 ببینید. اگر می خواهید راه حل پایگاه داده مدیریت شده را امتحان کنید ، به مستندات پایگاه داده های مدیریت شده vpsgol مراجعه کنید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

راه اندازی اولیه سرور با CentOS 8   –  تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes

نحوه تنظیم کلیدهای SSH در CentOS 8   –  نحوه نصب و استفاده از PostgreSQL در CentOS 7

نحوه ساختن یک برنامه Node.js با Docker [Quickstart]   –  چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو

چگونه می توان هاست های مجازی Apache را در اوبونتو  –   مدیریت DNS با استفاده از DNSControl در Debian 10

نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04    –  چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7

نحوه نصب و استفاده از TimescaleDB در CentOS 7   –  نحوه نصب Apache Kafka در Debian 10

نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 –  نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

استفاده از Cron برای خودکارسازی کارها در اوبونتو 18  –

نصب و استفاده ازRadamsa برای فوز کردن برنامه ها روی Ubuntu 18 –

نحوه راه اندازی Eclipse Theia Cloud IDE Platform در Debian 10  –

نحوه نصب Docker Compose در Debian 10 –

چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد –

نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04 –

نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7  –

بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو 18  –

بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16 –

استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18 –

چگونه می توان پلتفرم کد سرور Cloud IDE را در اوبونتو 18.04 –

چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی –

نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18 –

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا