SQL Backup DB — پشتیبانگیری از پایگاه داده
پشتیبانگیری از پایگاه داده در SQL
آشنایی با روشهای تهیه نسخه پشتیبان از پایگاه داده
پشتیبانگیری یا Backup یکی از مهمترین کارها در مدیریت پایگاه داده است. با تهیه نسخه پشتیبان، یک کپی از اطلاعات و ساختار پایگاه داده در اختیار داریم تا در صورت بروز مشکل بتوانیم اطلاعات را بازیابی کنیم.
خرابی سختافزار، خطای انسانی، حذف تصادفی اطلاعات، حملات امنیتی یا مشکلات نرمافزاری میتوانند باعث از دست رفتن دادهها شوند. داشتن یک نسخه پشتیبان مناسب، احتمال از دست رفتن دائمی اطلاعات را کاهش میدهد.
پشتیبانگیری از پایگاه داده چیست؟
در پایگاه داده، Backup به فرایند تهیه یک نسخه کپی از دادهها و ساختارهای مورد نیاز برای بازیابی اطلاعات گفته میشود.
هدف اصلی پشتیبانگیری این است که اگر اطلاعات اصلی آسیب دیدند یا از بین رفتند، بتوانیم آنها را از روی نسخه پشتیبان بازیابی کنیم.
پشتیبانگیری در محیطهای واقعی اهمیت بسیار زیادی دارد؛ زیرا اطلاعات یک سازمان، فروشگاه، سایت یا نرمافزار ممکن است ارزش زیادی داشته باشند.
نحوه تهیه Backup به سیستم مدیریت پایگاه داده یا DBMS مورد استفاده بستگی دارد. روش پشتیبانگیری در MySQL با SQL Server یا PostgreSQL یکسان نیست.
پشتیبانگیری در SQL Server
در Microsoft SQL Server میتوان با استفاده از دستور BACKUP DATABASE از یک پایگاه داده نسخه پشتیبان تهیه کرد.
ساختار ساده این دستور به صورت زیر است:
BACKUP DATABASE database_name
TO DISK = 'filepath';
در این ساختار، database_name نام پایگاه داده و filepath مسیر فایل پشتیبان است.
یک مثال ساده در SQL Server
فرض کنید پایگاه دادهای با نام School داریم و میخواهیم از آن یک نسخه پشتیبان تهیه کنیم.
BACKUP DATABASE School
TO DISK = 'D:\Backup\School.bak';
در این مثال، نسخه پشتیبان پایگاه داده School در فایل School.bak ذخیره میشود.
مسیر فایل در مثال بالا فقط یک نمونه است. مسیر واقعی باید بر اساس سیستم و تنظیمات سرور شما تعیین شود و حساب کاربری سرویس SQL Server نیز باید امکان دسترسی به آن مسیر را داشته باشد.
پشتیبانگیری کامل با FULL
یکی از روشهای رایج پشتیبانگیری در SQL Server، پشتیبانگیری کامل یا Full Backup است.
در پشتیبانگیری کامل، نسخهای از پایگاه داده در یک فایل پشتیبان ذخیره میشود.
BACKUP DATABASE School
TO DISK = 'D:\Backup\School_Full.bak';
این روش برای ایجاد یک نقطه پشتیبان کامل از پایگاه داده بسیار کاربردی است.
پشتیبانگیری از بخشهای مختلف پایگاه داده
پشتیبانگیری فقط به یک روش محدود نمیشود. در SQL Server میتوان از انواع مختلف Backup استفاده کرد.
| نوع پشتیبان | توضیح |
|---|---|
| Full Backup | پشتیبان کامل از پایگاه داده |
| Differential Backup | پشتیبان از تغییرات ایجادشده از آخرین پشتیبان کامل |
| Transaction Log Backup | پشتیبان از تراکنشهای ثبتشده در لاگ |
انتخاب روش مناسب به نیازهای سیستم، حجم اطلاعات و برنامه بازیابی اطلاعات بستگی دارد.
پشتیبانگیری تفاضلی Differential Backup
در Differential Backup، تغییراتی که پس از آخرین Full Backup ایجاد شدهاند، در نسخه پشتیبان ذخیره میشوند.
برای مثال، فرض کنید روز شنبه یک پشتیبان کامل تهیه کردهایم. اگر در روز یکشنبه و دوشنبه دادههای جدیدی وارد شوند، یک پشتیبان تفاضلی میتواند تغییرات ایجادشده پس از پشتیبان کامل را در خود داشته باشد.
این روش در برخی سناریوها میتواند حجم و زمان پشتیبانگیری را نسبت به تهیه مداوم نسخه کامل کاهش دهد.
پشتیبانگیری از Transaction Log
در پایگاههای دادهای که از مدل مناسب برای Transaction Log Backup استفاده میکنند، میتوان از لاگ تراکنشها نیز نسخه پشتیبان تهیه کرد.
این نوع پشتیبان برای ثبت تغییرات تراکنشی و طراحی برنامههای دقیقتر بازیابی اطلاعات اهمیت دارد.
جزئیات مربوط به Transaction Log Backup و مدلهای بازیابی در SQL Server مبحثی تخصصیتر است و در پروژههای واقعی باید متناسب با نیازهای سیستم طراحی شود.
پشتیبانگیری در MySQL
روش پشتیبانگیری در MySQL با SQL Server متفاوت است. یکی از ابزارهای رایج برای تهیه نسخه پشتیبان از پایگاههای داده MySQL، ابزار خط فرمان mysqldump است.
برای مثال، یک دستور ساده برای تهیه پشتیبان از پایگاه داده School میتواند به شکل زیر باشد:
mysqldump -u username -p School > School_backup.sql
در این مثال، اطلاعات پایگاه داده School در فایل School_backup.sql ذخیره میشود.
mysqldump یک ابزار مخصوص MySQL و برخی محیطهای سازگار با آن است و دستور BACKUP DATABASE در SQL Server را نمیتوان بهجای آن استفاده کرد.
بازیابی پایگاه داده از نسخه پشتیبان
تهیه نسخه پشتیبان زمانی ارزشمند است که بتوانیم در صورت نیاز اطلاعات را از آن بازیابی کنیم. این فرایند Restore نام دارد.
در SQL Server برای بازیابی یک نسخه پشتیبان میتوان از دستور RESTORE DATABASE استفاده کرد.
RESTORE DATABASE School
FROM DISK = 'D:\Backup\School_Full.bak';
در این مثال، پایگاه داده School از فایل پشتیبان مشخصشده بازیابی میشود.
عملیات RESTORE نیز باید با دقت انجام شود؛ زیرا در برخی شرایط ممکن است روی پایگاه داده موجود تأثیر بگذارد یا نیازمند تنظیمات خاصی باشد. در محیط واقعی، قبل از اجرای عملیات بازیابی باید وضعیت پایگاه داده و فایلهای پشتیبان بررسی شوند.
بهترین روش برای نگهداری نسخههای پشتیبان
داشتن یک فایل پشتیبان بهتنهایی همیشه کافی نیست. اگر همان فایل در کنار سرور اصلی نگهداری شود و سرور دچار مشکل جدی شود، ممکن است نسخه پشتیبان نیز از بین برود.
به همین دلیل در سیستمهای مهم معمولاً نسخههای پشتیبان در محلهای جداگانه یا زیرساختهای متفاوت نگهداری میشوند.
- برای اطلاعات مهم، برنامه منظم Backup داشته باشید.
- نسخههای پشتیبان را فقط روی همان سرور اصلی نگهداری نکنید.
- عملیات Restore را نیز آزمایش کنید تا مطمئن شوید نسخه پشتیبان قابل استفاده است.
- تعداد و زمان نگهداری نسخههای پشتیبان را بر اساس اهمیت دادهها مشخص کنید.
نکات مهم درباره Backup
- Backup یعنی تهیه نسخه پشتیبان از اطلاعات برای استفاده در زمان نیاز.
- روش پشتیبانگیری به DBMS مورد استفاده بستگی دارد.
- در SQL Server میتوان از BACKUP DATABASE استفاده کرد.
- Full Backup یک نسخه کامل از پایگاه داده تهیه میکند.
- Differential Backup تغییرات پس از آخرین پشتیبان کامل را در بر میگیرد.
- در شرایط مناسب میتوان از Transaction Log Backup نیز استفاده کرد.
- در MySQL ابزارهایی مانند mysqldump برای تهیه نسخه پشتیبان کاربرد دارند.
- برای بازگردانی اطلاعات از نسخه پشتیبان، فرایند Restore انجام میشود.
- نسخههای پشتیبان مهم باید در محلهای امن و ترجیحاً جدا از سیستم اصلی نگهداری شوند.
پشتیبانگیری یکی از مهمترین بخشهای مدیریت پایگاه داده است. هدف از Backup این است که در صورت از دست رفتن یا آسیب دیدن اطلاعات، امکان بازیابی آنها وجود داشته باشد.
نکته مهم این است که SQL یک استاندارد است و روشهای مدیریتی مانند تهیه Backup در سیستمهای مختلف یکسان نیستند. برای مثال، SQL Server از دستور BACKUP DATABASE استفاده میکند، در حالی که در MySQL ابزارهایی مانند mysqldump کاربرد دارند.
بنابراین هنگام کار با پایگاه داده واقعی، علاوه بر تهیه نسخه پشتیبان، باید امکان Restore آن نیز آزمایش و برنامهریزی شود.
