پشتیبان گیری از بانک های اطلاعاتی MySQL
امروزه با همه گیر شدن سایت های پویا، بسیاری از سرویس دهنده های وب که این نرم افزارهای کاربردی وب را اجرا می کنند، دارای تعداد زیادی بانک اطلاعاتی هستند که همانند فایل های دیگر نیاز است تا بصورت مرتب از آنها نسخه های پشتیبان تهیه شود. گاهی اهمیت نسخه های پشتیبان از بانک های اطلاعاتی از نسخه های پشتیبان فایل سیستم بیشتر است. دلیل آن هم روشن است، بسیاری از اطلاعات مهم در بانک های اطلاعاتی ذخیره می شوند نه در فایل سیستم! در قدم نخست باید موارد ابتدایی و لازم برای انجام پشتیبان گیری را فراهم کرد. نخست باید بر روی سرویس دهنده بانک اطلاعاتی MySQL کاربری را ایجاد کرد که دارای حداقل دسترسی برای خواندن و ذخیره اطلاعات باشد. برای این منظور دستورات زیر را وارد می کنیم: mainserver# mysql -u root -p بجای bkuser و bkpass می توانید نام کاربر و کلمه عبور مورد نظر خودتان را استفاده نمایید. backupserver$ ssh-keygen -t dsa -f $HOME/.ssh/id_dsa -P '' سپس فایل id_dsa.pub موجود در شاخه ssh . را در شاخه root/.ssh / سرویس دهنده اصلی با نام authorized_keys2 کپی نمایید: backupserver$ scp .ssh/id_dsa.pub root@mainserver:/root/.ssh/authorized_keys2 بسته به شماره نسخه سرویس دهنده ssh ای که بر روی سرویس دهنده اصلی در حال اجراست، ممکن است نیاز داشته باشید تا نام فایل authorized_keys2 به authorized_keys تغییر داده شود. برای این منظور می توانید یک لینک از آن به فایل authorized_keys ایجاد کنید: mainserver# ln -s /root/.ssh/authorized_keys2 /root/.ssh/authorized_keys نکته مهمی که باید رعایت کنید این است که کلید عمومی یک کاربر غیر از کاربر ریشه را بر روی سرویس اصلی قرار دهید تا در صورتی که احتمالا سرویس دهنده اصلی شکسته شود، امکان دسترسی کامل نفوذگر بر روی سرویس دهنده پشتیبان فراهم نگردد. برای مثال می توانید یک کاربر با نام backup بر روی سرویس دهنده مقصد ایجاد کنید. پس از کپی کلید بر روی سرویس دهنده اصلی، مجوز آنرا برای امنیت بیشتر بر روی 600 تنظیم کنید: mainserver# chmod 600 /root/.ssh/authorized_keys * در مرحله بعدی شاخه ای را که فایل های پشتیبان در آن ذخیره خواهد شد را بر روی سرویس دهنده مقصد ایجاد می کنیم: backupserver$ mkdir /home/backup/bkstore / اکنون تمامی مقدمات برای بکارگیری اسکریپت پشتیبان گیری از بانک اطلاعاتی انجام شده است. اسکریپت مورد استفاده ما دارای ساختاری به شکل زیر است: # !/bin/sh cd /var/lib/mysql / همانطور که مشاهده می کنید، نحوه عمل این اسکریپت بسیار ساده است. اسکریپت وارد شاخه var/lib/myslq / که در آنجا بانک های اطلاعاتی ذخیره می شود شده و با استفاده از یک حلقه ساده for و دستور mysqldump شروع به پشتیبان گیری از بانک های اطلاعاتی می کند. در نهایت نیز تمامی فایل ها را بصورت فشرده در آورده و با استفاده از دستور scp بر روی سرویس دهنده مقصد کپی می کند. در صورتی که سرویس دهنده مقصد با استفاده از اشتراک nfs به سرویس دهنده اصلی متصل بود، تنها به یک دستور cp اکتفا می کردیم و نیازی به بکارگیری کلیدهای عمومی ssh وجود نداشت ولی امنیت در هنگام انتقال اطلاعات در حالت دوم یعنی بکارگیری ssh بیشتر است. اسکریپت بالا را با نامی مانند mysqlbk در مسیر root / ذخیره کرده و مجوز اجرا به آن می دهیم: mainserver# chmod +x mysqlbk برای اینکه عملیات پشتیبان گیری بصورت خودکار و در ساعت خاصی از روز انجام گیرد، می توانیم از cron استفاده کنیم. دستور زیرا را تایپ کرده: mainserver# crontab -e سپس خط زیر را وارد می کنیم: 0 3 * * * /root/mysqlbk از این پس هر روز در ساعت ۳ صبح عملیات پشتیبان گیری و کپی بر روی سرویس دهنده مقصد بصورت خودکار انجام خواهد شد. با ایجاد تغییرات کوچکی در اسکریپت فوق می توان از آن برای پشتیبان گیری دایرکتوری های خانگی کاربران نیز استفاده کرد. ![]() |
آخرین مقالات
پربیننده ترین مقالات
مقالات تصادفی
امتیاز دهی به مطلب
تعداد آراء: 1 ![]() انتخاب ها
|
