آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server

آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server

نوشته شده توسط: حسن سلیمانی
تاریخ انتشار: ۲۲ فروردین ۱۴۰۲
آخرین بروزرسانی: ۰۳ آبان ۱۴۰۲
زمان مطالعه: 10 دقیقه
۴.۵
(۸)

در مقاله قبلی با مفاهیم اولیه تهیه نسخه پشتیبان در SQL Server آشنا شدیم. در این مقاله، قصد ما این است که بتوانیم با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server آشنا شویم.

ساختار کلی یک Medial set به شکل زیر است که در قسمت Backup کامل توضیح داده شده است.

آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server

LABELONLY

برای مشاهده Media Header مربوط به یک Media از دستور زیر استفاده نمایید.

RESTORE LABELONLY FROM DISK = 'D:\Temp\NW.bak'

دوره نگهداری از بانک های اطلاعاتی نیک آموز

HEADERONLY

برای مشاهده Backup Set Header های موجود در یک Media از دستور زیر استفاده نمایید.

RESTORE HEADERONLY FROM DISK = 'D:\Temp\NW.bak'
Or
RESTORE HEADERONLY FROM DISK = 'D:\Temp\NW.bak'
WITH FILE = 1

FILELISTONLY

برای مشاهده فایل­‌های موجود در یک Backup Set از دستور زیر استفاده نمایید.

RESTORE FILELISTONLY FROM DISK = 'D:\Temp\NW.bak'
WITH FILE = Filenumber

آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server

بازگرداندن (RESTORE Full Backup)

برای Restore یک Full Backup از دستور زیر استفاده نمایید.

RESTORE DATABASE Northwind FROM DISK = 'D:\Temp\NW.bak'

دستور بالا یک بانک اطلاعاتی با نام Northwind ایجاد می­‌کند که دیتا فایل­‌ها و لاگ فایل آن در مسیر که از دستور FILELISTONLY به‌دست می‌­آید، قرار گرفته است. توجه داشته باشید اگر در آن مسیر فایل­‌های هم نامی وجود داشته باشند، این دستور با خطا مواجه خواهد شد.

 دستور جایگزین کردن (REPLACE)

در ادامه فرآیند Restore کردن نسخه پشتیبان در SQL Server اگر بخواهیم که فایل­‌های قبلی بانک اطلاعاتی (در صورت وجود) با فایل­‌های جدید (از Backup) جایگزین شود، باید از دستور زیر استفاده کرد.

RESTORE DATABASE Northwind FROM DISK = 'D:\Temp\NW.bak'
WITH REPLACE

دستور MOVE

اگر بخواهیم مسیر دیتا فایل­‌ها و لاگ فایل موجود در Backup set را تغییر دهیم، باید در دستور RESTORE از کلمه کلیدی MOVE استفاده کرده و آدرس جدیدی برای فایل‌ها ایجاد نماییم.

RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH 
MOVE 'Northwind' TO 'D:\Northwind.mdf',
MOVE 'Northwind_log' TO 'D:\Northwind_log.ldf'

توصیه می­‌شود که از این روش، برای بازیابی استفاده شود.

 دستور VERIFYONLY

به منظور اطمینان از صحت یک Backup set از دستور زیر استفاده نمایید.

RESTORE VERIFYONLY FROM DISK = 'D:\Temp\NWnew.bak'

در صورتی که هنگام تهیه Backup از CHECKSUM استفاده شده باشد، می‌­توان دستور بالا را به شکل زیر بازنویسی کرد. این روش، بهترین راه برای اطمینان از صحت Backup است.

RESTORE VERIFYONLY FROM DISK = 'D:\Temp\NWnew.bak'
WITH CHECKSUM

Restore Differential Backup

به منظور Restore یک Differential Backup باید به شکل زیر عمل نمود.

آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server

ابتدا آخرین Full Backup قبل از Differential Backup باید به یکی از دو روش زیر بازیابی شود.

  • NORECOVERY
RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, NORECOVERY, FILE = 1,
MOVE 'Northwind' TO 'D:\Temp\Northwind.mdf',
MOVE 'Northwind_log' TO 'D:\Temp\Northwind_log.ldf'
  • STANDBY
RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, FILE = 1, 
STANDBY = 'D:\Temp\N_Northwind.undo',
MOVE 'Northwind' TO 'D:\Temp\Northwind.mdf',
MOVE 'Northwind_log' TO 'D:\Temp\Northwind_log.ldf'

تفاوت NORECOVERY با STANDBY در این است که در حالت STANDBY، بانک اطلاعاتی به‌صورت Readonly در دسترس است اما در حالت NORECOVERY، بانک اطلاعاتی در دسترس (Restoring) نیست.

آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server

پس از آن Backup Differential موردنظر خود را به یکی از روش‌­های زیر بازیابی می­‌کنید.

۱- اگر قصد بازیابی Backup Log را ندارید.

RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, RECOVERY, FILE = 3

۲- اگر قصد بازیابی Backup Log را دارید.

  • NORECOVERY
RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, NORECOVERY, FILE = 3
  • STANDBY
RESTORE DATABASE N_Northwind2 FROM DISK ='D:\Temp\NWnew.bak'
WITH STATS = 1, FILE = 3,
STANDBY = 'D:\Temp\N_Northwind2.undo'

روش بازیابی Log Backup

روش بازیابی Log Backup مشابه روش Differential Backup است. اگر شما Full Backup را بازیابی کرده‌اید و هیچ Differential Backup ای ندارید، باید از اولین Log Backup بعد از Full شروع به بازیابی کنید.

اما اگر شما در بین Log Backup های خود Differential داشته باشید، می­‌توانید ابتدا Differential موردنظر خود را بازیابی کرده و سپس از اولین Log بعد از  Differential فرآیند بازیابی خود را ادامه دهید. توجه داشته باشید که در اینجا نیز می‌­توانید از هرکدام از روش­‌های NORECOVERY یا STANDBY استفاده نمایید. برای درک بهتر، به مثال زیر توجه فرمایید.

آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server

  • گام اول:
RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, NORECOVERY, FILE = 1,
MOVE 'Northwind' TO 'D:\Temp\Northwind.mdf',
MOVE 'Northwind_log' TO 'D:\Temp\Northwind_log.ldf'
  • گام دوم:

RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, NORECOVERY, FILE = 4
  • گام سوم:

RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, NORECOVERY, FILE = 5
  • گام چهارم:

RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, RECOVERY, FILE = 6

Restore With Recovery

اگر فرآیند Restore شما به اتمام رسیده است اما فراموش کرده‌اید که بانک اطلاعاتی را از حالت NORECOVERY یا STANDBY خارج کنید، می‌­توانید از دستور زیر کمک بگیرید.

RESTORE DATABASE N_Northwind WITH RECOVERY

بازیابی بانک اطلاعاتی در زمان خاص (Restore Point in Time)

با استفاده از Log Backup های خود می‌­توانید بانک اطلاعاتی را تا یک زمان خاص بازیابی کنید. روش کار مشابه Restore مربوط به Log است؛ با این تفاوت که در آخرین مرحله بازیابی، باید از کلمه کلیدی STOPAT استفاده شود.

RESTORE DATABASE N_Northwind FROM DISK = 'D:\Temp\NWnew.bak'
WITH STATS = 1, RECOVERY, FILE = 6, 
STOPAT = '2021-08-19 02:22:21.458'

 

چه رتبه ای می‌دهید؟

میانگین ۴.۵ / ۵. از مجموع ۸

اولین نفر باش

title sign
دانلود مقاله
آشنایی با مفاهیم اولیه Restore کردن نسخه پشتیبان در SQL Server
فرمت PDF
7 صفحه
حجم 0.759 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
حسن سلیمانی
مقالات
7 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
حسن سلیمانی
title sign
دیدگاه کاربران