مقدمه

در حال حاضر دیتابیسی با حجم حدود ۳۵۰گیگ روی mysql-8.0.23 در حال اجرا می باشد. برای ایجاد پایداری و تحمل پذیری بیشتر لازم است تا این دیتابیس کلاستر شود. برای کلاستر شدن، از گلرا استفاده می کنیم. برای کلاستر، گلرا را روی mariadb بالا آورده و لازم است تا دیتای روی mysql به این کلاستر مهاجرت داده شوند.

پیش فرض های انتقال

برای راه اندازی کلاستر گلرا ۳ سرور mariadb در نظر گرفته و فعال می باشند.

روش های مهاجرت

برای مهاجرت دیتا ۵ روش زیر مد نظر و مورد بررسی قرار گرفتند که هر کدام مزایا و معایب خود را دارند و جداگانه تست و ثبت شده اند:

  1. انتقال با mysqldump معمولی
  2. انتقال با binarylog ها
  3. افزودن دیتابیس جاری به عنوان نود مستر اول به گلرا
  4. حالت stream در mydumper/myloader
  5. حالت ساده در mydumper/myloader
  6. انتقال با xtrabackup/mariadb-backup

انتقال با mysqldump معمولی

در این روش با دستور mysqldump ساده یک بکاپ گرفته شده و روی سرورهای مقصد بازگردانده می شود.

مزایا

  • بکاپ گیری مطمئن
  • خروجی فایل متنی .sql
  • امکان ویرایش و تغییر مستقیم در فایل بکاپ
  • امکان مهاجرت از نسخه ای به نسخه ای دیگر

معایب

  • زمان بازگرداندن طولانی تر در دیتابیس حجیم
  • لزوم دان تایم زیاد به نسبت بازگرداندن دیتابیس به علت جلو گیری از خرابی دیتا
  • زمان بکاپ گیری طولانی در دیتابیس حجیم
  • خروجی یک فایل یکپارچه به ازای هر دیتابیس

انتقال با binarylog ها

در این روش با دستور mysqldump ساده یک بکاپ کامل گرفته شده و روی سرورهای مقصد بازگردانده می شود. در ادامه از binarylog ها نیز بکاپ گرفته می شود. این متد به incremental backup نیز معروف است

مزایا

  • بکاپ گیری مطمئن
  • حداقل زمان دان تایم به نسبت دیگر روش ها
  • همزمان با بازگرداندن دیتا روی دیتابیس، دیتابیس قبلی نیز همچنان می تواند در حال سرویس دهی باشد

معایب

  • زمان بازگرداندن دو بخش است، یکی زمان بازگرداندن فایل بکاپ فول، یکی هم بازگرداندن بکاپ های مازاد binarylog ها
  • زمان بازگرداندن بخش اول که در متد قبلی بیان شد
  • زمان بازگرداندن بخش دوم نیز به نسبت باز هم زیاد است
  • کل زمان انتقال داده ها به نسبت حجم داده ها زیاد است

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

در این روش با انجام تنظیمات، سرور دیتابیس جاری ای که زیر بار است را می توان به کلاستر اضافه کرده و به عنوان نود دهنده تعیین نمود. در این حالت دیگر نودها شروع به همسان سازی خودشان با این نود می کنند. متاسفانه به علت تفاوت نسخه بین سرور جاری و سرور هدف، امکان اضافه شدن به کلاستر نبود و به محض ورود سرور جاری کلاستر بهم می خورد.

مزایا

  • حداقل دان تایم ممکن
  • کنترل انتقال دیتا بین دیتابیس جاری و کلاستر، توسط خود گلرا انجام می شود
  • برای افزودن فقط کافی است تا اطلاعات کلاستر را به سرور جاری اضافه نمود و یکبار آن را ریست نمود، بعد ریست خود نود شروع به ارسال، و همسان سازی دیتا با دیگر نودها می کند

معایب

  • به منظور اطمینان بیشتر بهتره که در زمان همسان سازی نودها، حداقل جلو رایت روی دیتابیس گرفته شود
  • زمان بر بودن بازگرداندن دیتای کل و خرد

حالت stream در mydumper/myloader

در این حالت با استفاده از سناریو بکاپ ریستور نیز انجام می شود با این تفاوت که با دستورات mydumper/myloader عملیات بکاپ گیری و بازگرداندن با سرعت خیلی زیادی انجام می شود. نکته که در این روش به کار گرفته شده است استفاده از گزینه stream در این دستور است که بکاپ گیری با mydumper را به جای این که به فایل انتقال دهد، در لحظه، می توان به stdout دستور و به عنوان ورودی دستور myloader ارسال نمود تا در لحظه عملیات بازگرداندن نیز انجام شود.

مشکل این متد با خود گلرا است، زمانی که دستور myloader شروع به کار می کند، binarylog ها را غیرفعال می شوند، از طرف دیگر چون گلرا به شدت به binarylog ها وابسته است، کلاستر خراب می شود.

مزایا

  • سرعت بالا در پشتیبان گیری
  • عدم نیاز به گام انتقال فایل های پشتیبان در شبکه جهت ریستور روی دیتابیس مقصد

معایب

  • عدم سازگاری با کلاستر گلرا
  • وابسته به سرعت پهنای باند در لحظه شبکه
  • انجام تنظیمات مشکل برای راه اندازی بکاپ و ریستور در مبدا و مقصد

حالت ساده در mydumper/myloader

در این متد همانند روش قبلی، عمل می شود با این تفاوت که از گزینه stream در mydumper/myloader استفاده نمی شود، به عبارت دیگر به صورت آفلاین پروسه انجام می شود.

نکته حائز اهمیت این که فقط یک نود از کلاستر روشن بوده تا بازگرداندن دیتا روی آن انجام شود، زمانی که تمام شد، یکی یکی نودها را روشن و به کلاستر متصل می کنیم تا همسان سازی دیتا روی همه نودها انجام شود.

مزایا

  • سرعت خیلی بالا در پشتیبان گیری به ویژه روی دیتابیس حجیم
  • سرعت به نسبت بالا در بازگرداندن بکاپ ها

معایب

  • ایجاد قطعی و دان تایم کوتاه
  • عدم امکان بازگرداندن بکاپ همزمان روی ۳ نود کلاستر

انتقال با xtrabackup/mariadb-backup

در این حالت امکان انتقال از mysql به mariadb نمی باشد و حتی امکان انتقال از نسخه ای به نسخه ای دیگر در دیتابیس همسان نیز نمی باشد، اما این روش سرعت و دقت به شدت بالایی دارد.

مزایا

  • سرعت بسیار بالا در بکاپ گیری و بازگردانی
  • امکان پشتیبان گیری به صورت increamental
  • دقت بالا در پشتیبان گیری
  • نیازمند فضایی همسان دیتابیس اصلی برای بازگردانی

معایب

  • عدم امکان مهاجرت بین mysql و mariadb
  • عدم امکان انتقال بین نسخ در دیتابیس های همسان
  • عدم امکان پیشتیبان گیری بیرونی

نتیجه گیری

در پایان و بعد از این بررسی ها، بسته به نوع مشکل، چالش یا سناریو پیش رو و با توجه به مزایا و معایبی که برای هر کدام از روش های فوق بیان شده است، می توان نسیبت به انتخاب راه و ابزار مناسب تصمیم گیری کرد.

برچسب ها: database mariadb mysql backup