دیتابیس mariadb توپولوژی های رپلیکیشن مختلفی را معرفی کرده، معروف ترین آنها توپولوژی Master/Slave می باشد. به طور پیش فرض، رپلیکیشن به صورت نامتقارن بوده که با ارسال وقایع مستر به باینری لاگ دیتابیس که توضیح دهنده تغییرات لحظه ای دیتابیس بوده و اسلیوها این وقایع را زمانی که آماده باشند درخواست می کنند. نکته مهم این است که در این روش، امکان عملیات write/read فقط روی سرور مستر می باشد و روی سرور اسلیو فقط امکان read وجود دارد.
در نوشته قبلی
راه اندازی Mysql/Mariadb Slave Replication
صرفا پیرامون راه اندازی یک رپلیکیشن master/slave
روی mariadb/mysql
به صورت ساده و با
استفاده از دستور mysqldump
با این ویژگی که نیازی به توقف دیتابیس در حین کار نباشد و یک نود
slave
را ایجاد نمود.
این روش، روشی مطمئن می باشد، اما یکی از مشکلات بزرگ آن زمان بر بودن اجرای آن می باشد. استفاده دستور 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
در پایان انتظار می رود تا رپلیکیشن با موفقیت ایجاد و اجرا شود.