دیتابیس mariadb توپولوژی های رپلیکیشن مختلفی را معرفی کرده، معروف ترین آنها توپولوژی Master/Slave می باشد. به طور پیش فرض، رپلیکیشن به صورت نامتقارن بوده که با ارسال وقایع مستر به باینری لاگ دیتابیس که توضیح دهنده تغییرات لحظه ای دیتابیس بوده و اسلیوها این وقایع را زمانی که آماده باشند درخواست می کنند. نکته مهم این است که در این روش، امکان عملیات write/read فقط روی سرور مستر می باشد و روی سرور اسلیو فقط امکان read وجود دارد.

در نوشته قبلی راه اندازی Mysql/Mariadb Slave Replication صرفا پیرامون راه اندازی یک رپلیکیشن master/slave روی mariadb/mysql به صورت ساده و با استفاده از دستور mysqldump با این ویژگی که نیازی به توقف دیتابیس در حین کار نباشد و یک نود slave را ایجاد نمود.

replication.png

این روش، روشی مطمئن می باشد، اما یکی از مشکلات بزرگ آن زمان بر بودن اجرای آن می باشد. استفاده دستور mysqldump، چه در مرحله بکاپ گیری و چه در مرحله بازگردانی بکاپ، طولانی عمل کرده که این کندی در مجموع راه اندازی یک رپلیکیشن، بسیار نمایان خواهد بود.

پس راه دیگری که خیلی سریع تر از آن عمل می کند، استفاده از روش mariadb-backup می باشد.

تنظیمات اولیه روی سروی های master و slave همانطور که در نوشته قبلی توضیح داده شد، انجام می گردد. در قسمت همگام سازی دیتابیس ها master با slave به جای mysqldump از mariadb-backup طبق نوشته پشتیبان گیری سریع دیتابیس mariadb عمل می گردد.

همگام سازی

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

mariadb-backup --backup --target-dir=/var/lib/mysql/backup --user=backup-user --password=${PASSWORD}
mariadb-backup --prepare --target-dir=/var/lib/mysql/backup

انتقال به datadir سرور مقصد:

rsync -azviP /var/lib/mysql/backup app-user@salve-server-ip:/var/lib/mysql

راه اندازی سرویس mariadb سرور مقصد و انجام تنظیمات نهایی رپلیکیشن:

systemctl start mariadb

و

change master to
     master_host='master-server-ip',
     master_user='salve1',
     master_password='1234',
     master_log_file='binalog_file_name',
     master_log_pos=345;
start slave;
show slave status \G

در پایان انتظار می رود تا رپلیکیشن با موفقیت ایجاد و اجرا شود.

منابع:

برچسب ها: database mariadb replication