بک آپ گیری خودکار از MongoDB
بک آپ گیری خودکار از دیتابیس MongoDB عمل خوبی در برابر وقوع اتفاقات ناگوار برای سرور است. به طور مشخص، قرار گیری یک نسخه از همه چیز بر روی جایی غیر از دیتابیس، در صورت وقوع اتفاقی به ما اطمیان خاطر می دهد. همچنین ما می توانیم به سرعت آن را بازیابی و اجرا نماییم.
بسیاری از شرکت های هاستینگ، سرویس بک آپ گیری را به عنوان یک سرویس پولی در نظر می گیرند، اما زمانی که ما می توانیم خودمان بک آپ گیری و پشتیبان گیری را به صورت شبانه و در چند دقیقه راه اندازی کنیم، چرا باید پول پرداخت کنیم.
خب! در اینجا به طور خلاصه به عملیات ی که قرار است انجام دهیم، می پردازیم:
- راه اندازی اسکریپتی خودکاری که یک بک آپ فولدر با تاریخ جاری ایجاد کرده، و پایگاه داده MongoDB ما را به آن فولدر یا دایرکتوری اکسپورت می کند.
- این اسکریپت را بر روی سروری قرار می دهیم که بتواند اسکریپت های cron را برای ما اجرا کند.
- در نهایت cron را برای اجرای بک آپ گیری شبانه تنظیم می کنیم.
قدم آغازین
قبل از این که ما شروع به نوشتن اسکریپت کنیم، یک نقطه در سرور را برای فایل های بک آپ ایجاد می کنیم. برای نمونه، فرض می کنیم می خواهیم فایل های بک آپ خود را در root وب سرور و در پوشه ای با نام db_backups نگاه داریم.
به سادگی این دایرکتوری یا پوشه را در سرور ایجاد می کنیم:
mkdir /db_backups
قدم اول – نوشتن اسکریپت
خب، ما یک شل اسکریپت کوچکی مبنی بر ایجاد یک دایرکتوری با نام تاریخ روز که پایگاه داده MongoDB را در آن اکسپورت می کند می نویسیم. که این اسکریپت چیزی شبیه به (اسکریپت) زیر است.:
#!/bin/sh
DIR=`date +%m%d%y`
DEST=/db_backups/$DIR
mkdir $DEST
mongodump -h <your_database_host> -d <your_database_name> -u <username> -p <password> -o $DEST
در بالا نمونه ی یک شل اسکریپت ای که یک دایرکتوری در فرمت MMDDYY را ایجاد می کند مشاهده می کنیم، همچنین مسیر کامل دایرکتوری ایجاد شده را کنار هم قرار می دهد، دایرکتوری مورد نظر را ایجاد کرده؛ و در نهایت، برای اکسپورت کردن دیتابیس یا همان پایگاه داده در دایرکتوری از ابزار Mongo’s mongodump استفاده می کند.
این اسکریپت را ایجاد می کنیم و آن را در جایی روی سرور خود ذخیره کرده، مثلا در ~/scripts یا جای مشابه دیگری که ما تشخیص می دهیم.
قدم دوم – تنظیم کرون (cron) برای اجرای اسکریپت به صورت شبانه
اکنون که اسکریپت بک آپ خود را برای اجرا و به صورت آماده داریم. پس فقط ما نیاز به اجرا به صورت شبانه داریم تا این عمل یعنی بک آپ گیری انجام شود. این عمل به راحتی با استفاده از cron برای اجرای اسکریپت صورت می پذیرد.
بر روی سرور خودمان و به راحتی crontab را همانند زیر اجرا می کنیم:
sudo crontab -e
در فایل مذکور، زیر تمام نظرات یا کامنت ها اما در در بالا، خط زیر را وارد می کنیم:
45 1 * * * ../../scripts/db_backup.sh
در کرون، هر خط نشان دهنده یک ورودی ثبت شده است.فرمت یا قالب هر ورودی به cron می گوید که چگونه عمل کند و دارای 5 فیلد متفاوت برای تعیین روز و ساعت اجرای دستور است. این فیلدها به ترتیب قرار می گیرند: دقیقه، ساعت، روز ماه، ماه، روز هفته. ستاره به این معنی است که در هر تقسیم فاصله (وقفه) اجرا می شود (بنابراین، اگر یک ستاره را در قسمت دوم قرار دهید، هر ساعت اجرا می شود).
بنابراین، در ورودی بالا، به cron میگوییم که اسکریپت ما (مسیری را که در ورودی میبینید)، در ساعت 1:45 صبح هر شب اجرا کند. خب! فقط crontab خود را ذخیره کرده و خارج می شویم.
یک راز بزرگ درمورد 90 % هاستینگ های ایرانی، اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.
وان سرور با ارائه دسترسی های مختلف این امکان را به شما خواهد داد که تمامی منابع سرورتان را مدیریت و بررسی کنید و همچنین با ارائه گارانتی 100% برگشت وجه ریسک خرید شما را به %0 کاهش میدهد.
نکات اضافه
کارهای دیگری که ممکن استبرای بهبود این اسکریپت انجام گیرد: پاک نمودن دایرکتوری هایی که بیشتر از یک ماه ایجاد شده اند، البته به شرطی که نیازی به این بک آپ ها نداریم، پس به سادگی دایرکتوری های قدیمی را همزمان با پشتیبان گیری شبانه خود حذف می کنیم.
همچنین باید اسکریپت خود را با استفاده از متغیرهای مختلفی نظیر رمز عبور یا همان پسورد ایمن کنیم. قرار دادن پسورد دیتابیس در اسکریپتی نظیر این، بسیار می تواند خطرناک باشد. در صورتی که اسکریپت مقابل افراد اشتباه قرار گیرد،باید از یک متغیر برای پر کردن رمز عبور خود استفاده کنیم. همچنین ممکن است اتصال به Mongo از طریق ssh را ما به عنوان یک مسئله در نظر بگیریم، اما متاسفانه این مسئله خارج از محدوده این آموزش است.
در این آموزش نحوه بک آپ گیری خودکار از MongoDB را به شما آموزش دادیم . با این دید که اگر شما بدانید مسئله ی بک آپ چقدر حائز اهمیت است (در صورت وقوع اتفاقات ناگوار)، امیدواریم این مقاله به شما کمک شایانی کند!
اولین نفر باشید که نظر ارسال میکنید