PDA

View Full Version : Point-in-Time Restore



Developer Programmer
سه شنبه 08 اردیبهشت 1388, 17:23 عصر
سلام
پیرامون سئوال یه امتحان که میخواست دیتابیس رو به وضعیت 10 دقیقه پیش برگردونه...

از پایگاه Northwind یکبار Full Backup گرفتم و بعد توسط Transaction Log Shipping هر 15 دقیقه یکبار، یک Log Backup ایجاد میکنم.
کدی که برایFull Backup ایجاد میکنه به این شکله


BACKUP DATABASE [Northwind] TO DISK = N'f:\backup\Northwind_Full' WITH NOFORMAT, NOINIT, NAME = N'Northwind-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10


مایکروسافت میگه اگه میخوای Point-in-Time Restore داشته باشی، باید این کد رو بنویسی


RESTORE DATABASE database_name FROM full_backup
WITH NORECOVERY;
RESTORE DATABASE database_name FROM full_differential_backup
WITH NORECOVERY;
RESTORE LOG database_name FROM log_backup
WITH STOPAT = time, RECOVERY;
RESTORE LOG database_name FROM log_backup
WITH STOPAT = time, RECOVERY;


اولا چرا دو خط آخر، دقیقا یکسان هستن ؟

دوما من بر اساس راهنمای مایکروسافت سعی میکنم دیتابیس رو به وضعیت 2009-04-28 10:00:00.000 برگردونم... آیا باید تمام Log Backup هایی که تا آن لحظه گرفته شده اند رو Restore کنم یا فقط اون تاریخ، کافیه (من فقط اون تاریخ رو Restore میکنم)

سوما، من برای Restore-int-time اینطور عمل کردم. اما اجرا نمیشد !


RESTORE DATABASE [Northwind] FROM DISK = N'F:\backup\Northwind_Full' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10
GO
RESTORE LOG [Northwind] FROM DISK = N'f:\backup\Northwind_20090428100000.trn' WITH StopAT='2009-04-28 10:00:00.700' , RECOVERY
GO


لیست کل Log Backup ها هم در عکس قابل مشاهده هستن.

Developer Programmer
شنبه 12 اردیبهشت 1388, 19:07 عصر
جسارتا کسی بلد نیست؟