
به اشتراک بگذارید
ریستور کردن فایلهای بزرگ و حجیم دیتابیس MySQL در ssh لینوکس یکی از حیاتیترین مهارتهایی است که هر مدیر سرور یا توسعهدهنده وب باید به آن مسلط باشد. زمانی که حجم دیتابیس شما از چند مگابایت فراتر میرود (مثلاً 500 مگابایت یا چند گیگابایت)، ابزارهای تحت وب مانند phpMyAdmin دیگر پاسخگو نیستند و دچار Timeout میشوند.
در این شرایط، تنها راه مطمئن و پایدار، استفاده از خط فرمان (Command Line) و پروتکل قدرتمند SSH است. در این مقاله، ما نه تنها روشهای استاندارد، بلکه تکنیکهای حرفهای برای مدیریت فایلهای فشرده (Gzip) و بهینهسازی تنظیمات سرور برای جلوگیری از خطا را بررسی میکنیم.
💡 ریستور دیتابیس (Database Restore)
بازگرداندن اطلاعات ذخیره شده در یک فایل (Backup) به سرور دیتابیس جهت بازیابی وضعیت قبلی سایت یا نرمافزار.
✅ استفاده از SSH پایداری100% را برای فایلهای حتی بالای 50 گیگابایت تضمین میکند.
بازگرداندن اطلاعات ذخیره شده در یک فایل (Backup) به سرور دیتابیس جهت بازیابی وضعیت قبلی سایت یا نرمافزار.
✅ استفاده از SSH پایداری100% را برای فایلهای حتی بالای 50 گیگابایت تضمین میکند.
حتماً زمانی که این مقاله را باز کردهاید، احتمالاً با خطای آزاردهنده “Script Timeout” در هنگام آپلود دیتابیس مواجه شدهاید یا نگرانید که انتقال سایت بزرگتان با شکست مواجه شود. نگران نباشید؛ ما اینجا هستیم تا دقیقاً همان روشهایی را که متخصصان هاستینگ برای انتقالهای حساس استفاده میکنند، به زبان ساده به شما آموزش دهیم. اگر به دنبال یادگیری روشهایی هستید که یک بار برای همیشه مشکل ریستور دیتابیس MySQL را حل کنید، این مقاله برای شماست. 😉👇
💡 بیشتر بدانید: آموزش تصویری و گام به گام نصب MySQL در لینوکس و سرور (راهنمای 2025)
بهترین VPS ایران با پنل مدیریت اختصاصی، هارد NVMe و پهنای باند بالا
برای مشاهده پلنهای
سرور مجازی ایران وبداده
روی دکمه زیر کلیک کنید
سرور مجازی ایران وبداده
روی دکمه زیر کلیک کنید
آنچه در این مقاله میخوانید:

ریستور دیتابیس از طریق SSH چیست؟
ریستور دیتابیس از طریق SSH به معنای استفاده از دستورات متنی در محیط ترمینال لینوکس برای تزریق دادههای فایل SQL به دیتابیس سرور است. برخلاف محیطهای گرافیکی که مرورگر درگیر پردازش میشود، در اینجا دستورات مستقیماً توسط هسته سیستمعامل و سرویس MySQL اجرا میشوند.
تصور کنید میخواهید اسبابکشی کنید؛ استفاده از phpMyAdmin مثل این است که وسایل را دانه دانه با دست جابجا کنید، اما استفاده از SSH مثل استخدام یک کامیون بزرگ و تیم حرفهای است که همه چیز را یکجا و سریع منتقل میکنند.
ساختار ارتباطی در این روش:
کاربر (شما) 💻
⬇️
اینترنت (SSH Protocol) 🌐
⬇️
ترمینال سرور (Linux Shell) ⬛
├─ فایل بکاپ (Backup.sql) 📄
└─ سرویس MySQL 🐬 ⬅️ (تزریق داده با سرعت بالا)
🔸 در صنعت هاستینگ، برای دیتابیسهای بالاتر از ۱۰۰ مگابایت، استفاده از ابزارهای GUI (گرافیکی) عملاً منسوخ شده و غیرحرفهای محسوب میشود.
چرا ریستور با SSH بهترین انتخاب برای دیتابیسهای حجیم است؟
چرا باید زحمت تایپ دستورات را به خود بدهیم؟ پاسخ در “قدرت” و “پایداری” نهفته است. ریستور کردن فایل های بزرگ و حجیم دیتابیس MySQL در ssh لینوکس مزایایی دارد که هیچ ابزار دیگری نمیتواند ارائه دهد.
مهمترین دلایل نیاز به این روش عبارتند از:
- سرعت بسیار بالا: عملیات ایمپورت بدون واسطه وبسرور (Apache/Nginx) انجام میشود.
- عدم محدودیت حجمی: میتوانید دیتابیسهای چند ترابایتی را بدون مشکل ریستور کنید.
- مشاهده خطاهای دقیق: اگر مشکلی پیش بیاید، خطای دقیق SQL را میبینید، نه یک خطای کلی HTTP 500.
💡 بیشتر بدانید: آموزش اتصال به SSH بدون نیاز به Putty
💡 بیشتر بدانید: آموزش اتصال به سرور لینوکس با 4 روش + ویدیو آموزشی
پیشنیازها و شرایط لازم برای ریستور کردن فایل های بزرگ
قبل از شروع عملیات ریستور دیتابیس، باید ابزار و دسترسیهای لازم را آماده کنید. مثل هر عملیات جراحی دقیق، نداشتن ابزار مناسب میتواند منجر به فاجعه شود.
📝 لیست الزامات برای شروع کار:
- دسترسی روت (root) یا کاربری با دسترسی sudo به سرور.
- نرمافزار اتصال SSH (مانند PuTTY در ویندوز یا Terminal در مک/لینوکس).
- نام کاربری و رمز عبور دیتابیس MySQL.
- فایل بکاپ دیتابیس (با پسوند .sql یا .sql.gz) که روی سرور آپلود شده باشد.
🔶 نکته مهم: همیشه، تاکید میکنیم همیشه، قبل از ریستور کردن روی دیتابیسی که حاوی اطلاعات است، یک بکاپ از وضعیت فعلی بگیرید. ریستور کردن، اطلاعات قبلی جداول همنام را بازنویسی (Overwrite) میکند.
آموزش ریستور دیتابیس MySQL در وبداده
در این بخش همراه تیم فنی وبداده باشید تا به صورت عملی و با 3 سناریوی مختلف، نحوه بازگردانی اطلاعات را بررسی کنیم. ما فرض میکنیم شما فایل بکاپ خود را در مسیر
/home/backup/ قرار دادهاید.📝 سناریوی آموزشی: برای ریستور دیتابیس MySQL در این آموزش، ما یک فایل 5 گیگابایتی فروشگاهی را روی یک سرور مجازی اوبونتو تست میکنیم.
WebDade Server Environment
1🖥️ سرور مجازی (Ubuntu 22.04)
[IP: 192.168.1.100]
2🗄️ دیتابیس هدف
[Name: shop_db]
3💾 فایل بکاپ
[Path: /home/backup/big_data.sql]
روش استاندارد (Standard Command)
این روش برای فایلهای متوسط (تا 1-2 گیگابایت) عالی است و رایجترین دستور مورد استفاده مدیران سرور است.
مراحل اجرا: ابتدا با دستور cd به پوشهای که فایل بکاپ در آن قرار دارد بروید:
cd /home/backup/ سپس دستور زیر را اجرا کنید:
mysql -u username -p database_name < file.sql username: نام کاربری دیتابیس (معمولا root).database_name: نام دیتابیسی که ساختهاید و خالی است.file.sql: نام فایل بکاپ شما.
بعد از زدن این دستور، از شما رمز عبور دیتابیس خواسته میشود. پس از وارد کردن رمز، اگر هیچ پیامی ندیدید و خط فرمان به حالت انتظار رفت، یعنی عملیات ریستور دیتابیس در حال انجام است.
📌 نکته: اگر خطایی دریافت نکردید و خط فرمان دوباره ظاهر شد، یعنی عملیات با موفقیت انجام شده است. (سکوت در لینوکس نشانه رضایت است!😉).
استفاده از دستور Source در MySQL Shell (روش حرفهای)
برای آموزش ایمپورت فایل SQL بزرگ در MySQL زمانی که حجم فایل بسیار بالاست یا میخواهید درصد پیشرفت و خطاها را دقیقتر مدیریت کنید، استفاده از دستور
Source بهترین گزینه است. این روش پایداری بیشتری نسبت به روش استاندارد دارد.مراحل کار با دستور Source:
- ابتدا وارد محیط شل MySQL شوید:
mysql -u root -p - دیتابیس مورد نظر را انتخاب کنید:
USE shop_db; - با دستور source فایل را فراخوانی کنید:
source /home/backup/big_data.sql;
📌 چرا این روش بهتر است؟
در روش source، دیتابیس دستورات را خط به خط اجرا میکند و اگر خطایی در یک جدول خاص وجود داشته باشد، راحتتر میتوان آن را ردیابی کرد. همچنین استفاده از دستور Source در MySQL Shell برای ایمپورت معمولاً کمی سریعتر از روش ارجاع استاندارد عمل میکند.
ریستور فایل Gzip دیتابیس در لینوکس (روش فوق سریع)
یکی از مشکلات فایلهای بزرگ، فضای دیسک است. اگر یک فایل 5 گیگابایتی فشرده دارید، باز کردن آن ممکن است 20 گیگابایت فضا اشغال کند! ریستور فایل Gzip دیتابیس در لینوکس بدون اکسترکت کردن، هنر واقعی یک مدیر سرور است.
ما از قابلیت Pipe (لولهکشی) در لینوکس استفاده میکنیم تا فایل را همزمان که از حالت فشرده خارج میکنیم، به MySQL تحویل دهیم.
دستور جادویی:
gunzip < /home/backup/big_data.sql.gz | mysql -u root -p shop_db یا اگر فرمت فایل
.gz است:zcat /home/backup/big_data.sql.gz | mysql -u root -p shop_db مزایای این روش:
- صرفهجویی در فضا: نیازی به فضای خالی برای فایل اکسترکت شده ندارید.
- سرعت بالاتر: عملیات خواندن دیسک (I/O) کاهش مییابد.
| ویژگی | روش استاندارد | روش Source | روش Pipe (Gzip) |
| سهولت | آسان | متوسط | حرفهای |
| مدیریت فضا | نیاز به اکسترکت | نیاز به اکسترکت | بدون نیاز به فضا |
| سرعت | معمولی | خوب | عالی |
رفع مشکلات و بهینهسازی (Packet Size & Timeout)
در هنگام ریستور کردن فایل های بزرگ و حجیم دیتابیس MySQL در ssh لینوکس، ممکن است با خطای معروف
Got a packet bigger than 'max_allowed_packet' مواجه شوید. این خطا یعنی MySQL اجازه ورود بستههای بزرگ داده را نمیدهد.💡 بیشتر بدانید: خطای Got a packet bigger than max_allowed_packet bytes
راه حل رفع مشکل max_allowed_packet در ریستور حجیم:
باید فایل تنظیمات MySQL (معمولاً در /etc/mysql/my.cnf یا /etc/my.cnf) را ویرایش کنید.
- فایل را باز کنید:
nano /etc/my.cnf - در بخش
[mysqld]مقادیر زیر را اضافه یا ویرایش کنید:
[mysqld]
max_allowed_packet = 512M
innodb_buffer_pool_size = 2G # بسته به رم سرور تنظیم کنید
wait_timeout = 600
interactive_timeout = 600 - سرویس MySQL را ریستارت کنید:
service mysql restart
⚠️ هشدار قطع شدن SSH:
اگر اینترنت شما قطع شود، عملیات ریستور متوقف میشود و دیتابیس ناقص میماند. برای جلوگیری از این مشکل، حتماً قبل از شروع دستورات طولانی، از ابزار screen استفاده کنید:
اگر اینترنت شما قطع شود، عملیات ریستور متوقف میشود و دیتابیس ناقص میماند. برای جلوگیری از این مشکل، حتماً قبل از شروع دستورات طولانی، از ابزار screen استفاده کنید:
screen -S db_restore
# حالا دستورات ریستور را بزنید
# اگر اینترنت قطع شد، پروسه در سرور ادامه مییابد میزبانی دیتابیسهای حجیم با وبداده
اگر با وجود تمام این آموزشها، باز هم در ریستور دیتابیس یا سرعت کوئریها مشکل دارید، احتمالاً سختافزار سرور شما گلوگاه شده است. در وبداده، ما سرورهایی را مخصوص دیتابیسهای سنگین بهینهسازی کردهایم.
- ✅ هارد Enterprise NVMe: تا ۱۰ برابر سرعت بیشتر در خواندن و نوشتن دیتابیس.
- ✅ پشتیبانگیری خودکار: دیگر نگران از دست رفتن دادهها نباشید.
- ✅ تحویل آنی: بلافاصله پس از تکمیل خرید خود، سرویس را دریافت می کنید
نتیجهگیری: ریستور کردن فایل های حجیم دیتابیس MySQL در ssh لینوکس
در این مقاله، ما راهکارهای عملی و تست شده برای ریستور کردن فایل های بزرگ و حجیم دیتابیس MySQL در ssh لینوکس را بررسی کردیم. دیدیم که چگونه با استفاده از دستورات خط فرمان و تکنیکهایی مثل پایپ کردن فایلهای Gzip، میتوانیم بر محدودیتهای ابزارهای گرافیکی غلبه کنیم.
ما در وبداده همیشه پیشنهاد میکنیم برای دیتابیسهای حیاتی، از روش SSH استفاده کنید تا ریسک خرابی دادهها به صفر برسد. به یاد داشته باشید که تنظیم صحیح max_allowed_packet و استفاده از Screen کلید موفقیت در ریستورهای طولانی است.
در صورتی که سوالی در مورد خطاهای خاص MySQL داشتید یا تجربهای در ریستور دیتابیسهای ترابایتی دارید، میتوانید در بخش نظرات با ما در میان بگذارید. تیم فنی ما آماده پاسخگویی به شماست.
😉 امیدوارم این مقاله از بلاگ وبداده برای شما مفید و نجاتبخش بوده باشد.
سوالات متداول از آموزش ایمپورت فایل بزرگ در MySQL
1- آیا روش ریستور در SSH برای همه کنترل پنلها (cPanel, DirectAdmin) یکسان است؟
بله، چون ما مستقیماً با خود سرویس MySQL کار میکنیم، نوع کنترل پنل اهمیتی ندارد؛ اما مسیر فایلهای دیتابیس ممکن است متفاوت باشد.




