بکاپ (پشتیبان، Backup) گرفتن از پایگاه داده یکی از مهمترین اقداماتی است که مدیر سیستم یا توسعهدهنده باید به آن توجه کند. بکاپ به معنای ایجاد یک نسخه پشتیبان از دادهها و اطلاعات موجود در پایگاه داده است. این کار به دلایل مختلفی مثل حفاظت از دادهها و افزایش قابلیت اطمینان (Reliability) یا انتقال سرور انجام میشود.
بعد از بکاپ گرفتن، مرحله بعدی بازگردانی (Restore) دادهها است. فرآیند بازگردانی شامل استفاده از فایلهای پشتیبان برای بازگرداندن پایگاه داده به وضعیت قبلی است.
مستند رسمی بکاپ و بازگردانی MongoDB
ابزار مورد نیاز
برای انجام این فرآیند، میتوانید از ابزار MongoDump استفاده کنید. این ابزار به شما این امکان را میدهد که یک نسخه پشتیبان از پایگاه داده خود ایجاد کنید. سپس، با استفاده از ابزار MongoRestore، میتوانید این نسخه پشتیبان را به یک سرور یا پایگاه داده دیگر منتقل نمایید.
👇 برای شروع باید ابزارهای مورد نیاز را دانلود و فایل فشرده شده را اکسترکت کنید.
و در مسیر فولدر bin، ترمینال باز کنید (برای مثال cmd در ویندوز):
از این مرحله به بعد دستورات را داخل این مسیر اجرا کنید (فایلهای mongodump و mongorestore در مسیر ترمینال باشند). همچنین اگر سیستم عامل ویندوز باشد باید پسوند .exe
را به mongodump و mongorestore دستورات زیر اضافه کنید.
پشتیبان گیری
برای پشتیبانگیری از ابزار MongoDump استفاده میشود که قابلیت اجرا به چندین روش را داراست. با توجه به نیاز یا سلیقه شخصی، میتوانید روش مناسب برای وارد کردن پارامترها را انتخاب نمایید.
برای مثال، مشخص کردن پارامترها را به صورت مجزا:mongodump --host="127.0.0.1" --port=27017 --username=user --authenticationDatabase=admin ./backup-destination
استفاده از Connection string:
mongodump --uri="mongodb://mongodb0.example.com:27017" ./backup-destination
در این حالت، از تمام مجموعههای (Collection) سروری که از آدرس 127.0.0.1:27017
در دسترس است، به مسیر ./backup-destination
پشتیبانگیری میشود و برای کاربری که دسترسی کامل دارد (root) مناسب است.
در صورت نیاز به پشتیبانگیری از یک مجموعه (Collection) خاص، کافی است با استفاده از پارامتر --db collection_name
مشخص نمایید که کدام مجموعه مورد نظر است.
* حساب کاربری که برای تهیه نسخه پشتیبان استفاده میشود، باید دارای دسترسی خواندن داده (Read) به پایگاه دادههای مقصد باشد.
* در این دستور، هیچ رمز عبور یا پسوردی مشخص نشده است. در صورتی که حساب کاربری دارای رمز عبور باشد، لازم است پس از اجرای دستور، رمز عبور وارد گردد. این اقدام به منظور جلوگیری از ذخیرهسازی رمز عبور در لاگها و تاریخچه دستورات انجام میشود. در غیر این صورت، امکان ارسال رمز عبور به صورت پارامتر --password ***
وجود دارد.
بازگردانی دیتابیس
برای بازگردانی فایلهایی که با استفاده از ابزار mongodump پشتیبانی گرفته شدهاند، کافی است مسیر پوشهی پشتیبان را برای mongorestore مشخص نمایید. به عنوان مثال، میتوانید از دستور زیر استفاده کنید:
mongorestore ./backup-destination
این دستور به ابزار mongorestore این امکان را میدهد که فایلهای پشتیبان موجود در مسیر مشخص شده را بازگردانی کند.
همچنین پارامترهایی که برای ابزار mongodump استفاده شد، برای mongorestore نیز قابل استفادهاند:
mongorestore --host="127.0.0.1" --port=27017 --username=user --authenticationDatabase=admin ./backup-destination