پشتیبانگیری و بازیابی در SQL Server
SQL Server سه نوع اصلی پشتیبانگیری دارد: Full Backup که کل پایگاهداده را کپی میکند، Differential Backup که فقط تغییرات پس از آخرین Full Backup را ذخیره میکند و Transaction Log Backup که امکان بازیابی نقطهبهنقطه (Point-in-Time Recovery) را فراهم میکند.
BACKUP DATABASE Shop
TO DISK = 'C:\Backups\Shop_Full.bak'
WITH FORMAT, INIT;
برای گرفتن بکاپ افزایشی پس از یک Full Backup:
BACKUP DATABASE Shop
TO DISK = 'C:\Backups\Shop_Diff.bak'
WITH DIFFERENTIAL;
برای بازیابی پایگاهداده از فایل بکاپ:
RESTORE DATABASE Shop
FROM DISK = 'C:\Backups\Shop_Full.bak'
WITH REPLACE;
اگر پایگاهداده در حالت بازیابی کامل (Full Recovery Model) باشد، باید Transaction Log Backupها را نیز به ترتیب پس از Full Backup بازیابی کنید تا داده تا آخرین لحظهی ممکن پیش از خرابی بازگردانده شود. گزینهی WITH REPLACE به SQL Server میگوید پایگاهدادهی فعلی را با نسخهی داخل فایل بکاپ جایگزین کند، حتی اگر پایگاهدادهای با همین نام از قبل وجود داشته باشد. تست دورهای فرآیند Restore روی یک سرور جداگانه، تنها راه اطمینان از سالم بودن بکاپهاست.