اگر از دیتابیس‌های MySQL و یا MariaDB در کسب‌وکار یا سرویس‌تان استفاده می‌کنید و قصد مهاجرت به دیتابیس‌ ابری را دارید، می‌توانید به کمک این راهنما داده‌هایتان را به MySQL مدیریت‌شده‌ی آروان‌کلاد انتقال دهید. در فرآیند مهاجرت باید به دو عنوان «دیتابیس مبدا» و «دیتابیس مقصد» توجه کنیم.

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

پیش از آغاز فرآیند مهاجرت لازم است چند گام را طی کنید. 

پیش‌نیاز‌ها

  • کلاستر دیتابیس ابری: توصیه می‌کنیم برای کاهش Downtime در سوریس‌تان، پیش از شروع انتقال داده‌ها یک کلاستر دیتابیس با انجین MySQL و پیکربندی مورد نیازتان بسازید. راهنمای ساخت کلاستر دیتابیس در این مسیر به شما کمک می‌کند.
  • دسترسی‌های لازم در دیتابیس مبدا: برای انتقال داده‌ها باید دستورهای MySQL را با کاربری (User) اجرا کنید که دسترسی‌های SELECT، LOCK TABLES، SHOW VIEW و TRIGGER را داشته باشد.
  • توقف نوشتن داده‌ها در دیتابیس مبدا: اگر هنگام خروجی گرفتن از دیتابیس‌ مبدا، داده‌های آن تغییر کند یا داده‌ی جدید به آن اضافه شود، احتمال خرابی یا از دست دادن اطلاعات بالا می‌رود. از همین‌ رو، پیشنهاد می‌شود پیش از خروجی گرفتن، حتمن نوشتن داده‌ها را متوقف کنید. برای این کار می‌توانید سرویس‌هایی که از دیتابیس استفاده می‌کنند را متوقف کنید. در بسیاری موارد، متوقف کردن وب‌سرور سریع‌ترین راه برای این کار است اما باعث از دسترس خارج شدن وب‌سایت یا اپلیکیشن‌تان می‌شود. به همین دلیل، بر اساس معماری و نوع سرویس‌تان راهکار مناسب را انتخاب کنید.

برای متوقف کردن وب‌سرور می‌توانید از یکی از دستورهای زیر بر اساس وب‌سرورتان استفاده کنید:

NGINX:

sudo systemctl stop nginx

APACHE on Ubuntu/Debian:

sudo systemctl stop apache2

APACHE on RHEL/CentOS:

sudo systemctl stop httpd

دریافت خروجی داده‌های دیتابیس مبدا

برای آغاز فرآیند مهاجرت دیتابیس، ابتدا باید داده‌های مبدا را در قالب یک فایل .sql ذخیره کنید تا بتوانید آن را به کلاستر دیتابیس ابری آروان‌کلاد منتقل کنید. برای این کار از ابزار کامندلاینی mysqldump استفاده می‌کنیم.

در سروری که دیتابیس‌ فعلی‌تان قرار دارد دستور زیر را اجرا کنید:

sudo mysqldump -u [user] -p --single-transaction [database-name] > db-migrate.sql

این دستور داده‌های دیتابیس موردنظرتان را در فایلی به نام db-migrate.sql در سرور مبدا ذخیره می‌کند. در این دستور باید [user]  را با کاربری که برای دسترسی به دیتابیس استفاده می‌کنید جایگزین کنید. هم‌چنین نام دیتابیسی که می‌خواهید منتقل کنید را به جای [database-name] قرار دهید.

با وارد کردن پسورد دیتابیس مبدا، فایل ذخیره خواهد شد.

وارد کردن داده‌ها در کلاستر دیتابیس آروان‌کلاد

اکنون، باید فایل .sql مرحله‌ی قبل را به دیتابیس مدیریت‌شده‌ی آروان منتقل کنیم. در همان سروری که فایل را ذخیره کردید و به‌کمک دستور زیر، داده‌ها را به کلاستر مقصد انتقال دهید.

mysql -h [host] -u [username] -p [database_name] < db-migrate.sql

[host] و [username] را با مقادیر مربوط به کلاسترتان جایگزین کنید. راهنمای اتصال به کلاستر دیتابیس در این مسیر به شما کمک می‌کند. هم‌چنین به‌جای [database_name] نام دیتابیس مقصد را وارد کنید.

با وارد کردن پسورد دیتابیس مبدا، فایل ذخیره خواهد شد.

سپس می‌توانید با دستورهای زیر دیتابیس را بررسی و از انتقال داده‌ها اطمینان پیدا کنید.

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

mysql -h [host] -u [username] -p[password]

سپس دیتابیسی که داده‌ها را به آن منتقل کردید انتخاب کنید:

USE [database_name];

به‌کمک دو دستور زیر جدول‌ها و داده‌های هر کدام را بررسی کنید:

SHOW TABLES;
SELECT * FROM [table_name];

به‌روزرسانی تنظیمات مرتبط با دیتابیس در اپلیکیشن

پس از انتقال داده‌ها به دیتابیس مدیریت‌شده‌ی آروان‌کلاد، باید اپلیکیشن‌هایی را که از دیتابیس مبدا استفاده می‌کردند، به‌روزرسانی کنید تا از این پس از دیتابیس جدید استفاده کنند. این کار معمولن شامل ویرایش جزییات اتصال به دیتابیس (مانند هاست، نام کاربری، رمز عبور و پورت) در کد یا رابط گرافیکی اپلیکیشن‌تان می‌شود.

هم‌چنین اگر سرویسی مانند وب‌سرور را متوقف کرده بودید، پس از اتمام فرآیند انتقال داده‌ها، می‌توانید آن‌‌ها را دوباره فعال کنید.

NGINX:

sudo systemctl start nginx

APACHE on Ubuntu/Debian:

sudo systemctl start apache2

APACHE on RHEL/CentOS:

sudo systemctl start httpd