خانه SQL Server آشنایی با مفاهیم اولیه تهیه Backup در SQL Server SQL Server SQL Server Backup نوشته شده توسط: حسن سلیمانی تاریخ انتشار: ۲۰ فروردین ۱۴۰۲ آخرین بروزرسانی: 08 آذر 1403 زمان مطالعه: 9 دقیقه ۴.۴ (۲۲) تهیه Backup در SQL Server یک امر ضروری برای حفظ اطلاعات در دیتابیس است. بکاپ گیری در SQL Server به سه روش صورت میگیرد. برای انجام بهتر این کار لازم است تا با بخشهای مختلف یک Backup set آشنایی پیدا کنید. همچنین لازم است تا بهترین روش بک آپ گیری در شرایط متفاوت را بدانید. در مقاله آشنایی با مفاهیم اولیه بکاپ گیری در sql server قصد داریم تا شما را با این موارد آشنا کنیم. پیشنهاد میکنیم برای درک بهتر مفاهیم آموزش جامع SQL Server را مطالعه کنید. بکاپ ست (Backup set) به خروجی هر دستور Backup، یک Backup set گفته میشود. یک Backup set میتواند از نوع Full، Differential و یا Log باشد. بهعنوان مثال، خروجی دستور زیر یک Backup set از نوع Full است. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' مدیا ست (Media set) به محل ذخیره سازی یک Backup set ، Media set گفته میشود. درون یک Media set میتواند Backup set های مختلفی (هر نوع از backup از هر بانک اطلاعاتی) قرار بگیرد. بهعنوان مثال، برای تهیه Backup در SQL Server دستور زیر، یک Media set با نام NW.bak ایجاد میکند و Backup set را در آن ذخیره مینماید. اما در صورتی که این Media set وجود داشته باشد، Backup set را در انتهای آن قرار میدهد. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' درون یک Media set مطابق تصویر زیر است. Media Header که هنگام ایجاد Media ایجاد میشود، یک یا چند Backup set که هر یک از آنها برای خود یک Backup set Header دارند. برای مشاهده اطلاعات مربوط به Media Header از دستور زیر استفاده نمایید. RESTORE LABELONLY FROM DISK = 'D:\Temp\NW1.bak' برای مشاهده اطلاعات مربوط به Backup set های موجود در مدیا، از دستور زیر استفاده نمایید. RESTORE HEADERONLY FROM DISK = 'D:\Temp\NW1.bak' در صورتی که درون مدیا چندین Backup set وجود داشته باشد، میتوانید با دستور زیر Header مربوط به یک Backup set خاص را مشاهده نمایید. N شماره Backup set مورد نظر است. RESTORE HEADERONLY FROM DISK = 'D:\Temp\NW1.bak' WITH FILE = [N] برای مشاهده فایلهای درون یک Backup set در تهیه Backup در SQL Server از دستور زیر استفاده نمایید. RESTORE FILELISTONLY FROM DISK = 'D:\Temp\NW1.bak' WITH FILE = [N] خانواده مدیا (Media Family) به مجموعهای از Media set های مرتبط با یکدیگر، Media Family گفته میشود. بهعنوان مثال، دستور زیر، یک Backup set را درون دو Media set (NW1 و NW2) قرار میدهد که به مجموعهی این دو Media set، Media Family گفته میشود. توجه داشته باشید که اگر هر یک از این Media Set ها را از دست بدهید، دیگر امکان بازیابی بانک اطلاعاتی از سایر Media Set ها برای تهیه Backup در SQL Server وجود ندارد. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW1.bak', DISK = 'D:\Temp\NW2.bak' انواع بکاپ (Backup Types) در SQL Server سه نوع Backup وجود دارد. ۱- نوع اول: Full Backup فرض کنید که شما یک بانک اطلاعاتی دارید که فایلهای آن مطابق تصویر زیر است. در این نوع از بکاپ برای تهیه Backup در SQL Server از کل دیتا فایلهای بانک اطلاعاتی بکاپ تهیه میشود. از فایل Log نیز مطابق تصویر، از لحظه شروع Backup تا لحظه اتمام آن از Log Record های که در این بازه قرار گرفتهاند، بکاپ گرفته میشود. دوره کوئری نویسی پیشرفته دلیل بکاپ گیری از فایل Log به مبحث WAL(Write ahead log) باز میگردد. اگر در حین فرآیند بکاپ گیری، دادهای در یک Page تغییر کند، اطلاعات تغییر در فایل Log ذخیره میشود و حین فرآیند Restore، این مقدار از Log خوانده و در Data File مربوطه اعمال میگردد. دستور ایجاد یک Full Backup به شکل زیر است. BACKUP DATABASE [Database name] TO DISK = 'Media set path' ۲- نوع دوم: Differential Backup این نوع از بکاپ گیری برای تهیه Backup در SQL Server بهشدت به Full Backup قبل از خود وابسته است و تعریف دقیق آن عبارت است از ذخیره آخرین تغییرات به نسبت آخرین Full Backup. برای بازیابی این نوع از بکاپ، باید حتماً Full Backup قبل از آن در دسترس باشد. دستور ایجاد Differential Backup به شکل زیر است. BACKUP DATABASE [Database name] TO DISK = ['Media set path'] WITH DIFFERENTIAL SQL Server با مراجعه به Page سیستمی DCM (Differential Changed Map) آخرین extent های تغییر یافته را شناسایی میکند. DCM Page یک Page سیستمی است که آدرس extent های تغییر یافته را نسبت به آخرین Full Backup در خود ذخیره میکند. دادههای موجود در DCM Page پس از تهیه یک Full Backup حذف میشود. ۳- نوع سوم : Log Backup در این نوع از بکاپ فقط از فایل Log ، Backup تهیه میشود. لازمه تهیه Backup در SQL Server از این نوع به شرح زیر است. Recovery Model بانک اطلاعاتی حتماً باید Full یا Bulk Logged باشد. یک Full Backup حتماً از بانک اطلاعاتی تهیه شده باشد. برای بازیابی این نوع از بکاپ باید حتماً Full Backup و Log Backup های قبل از آن در دسترس باشد. دستور تهیه Backup در SQL Server از این نوع به شرح زیر است. BACKUP LOG [Database name] TO DISK = 'Media set path' گزینه های پشتیبان گیری (Backup options) در ادامه Option های مربوط به فرآیند تهیه Backup در SQL Server آورده شده است. دستور FORMAT زمانی که از FORMAT استفاده میکنیم، اگر Media از قبل وجود داشته باشد، تمامی اطلاعات داخل مدیا اعم از Media header و تمامی بکاپهای موجود در آن پاک شده و Media از ابتدا ایجاد میشود. این طور در نظر بگیرید که یک Media جدید برای شما ایجاد میشود. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH FORMAT دستور INIT زمانی که از INIT استفاده میکنیم، اگر Media از قبل وجود داشته باشد، تمامی بکاپهای موجود در آن پاک میشود؛ اما توجه داشته باشید که اطلاعات مربوط به Media header تغییر نخواهد کرد. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH INIT دستور COPY_ONLY زمانی که شما برای تهیه Backup در SQL Server فرآیند Backup گیری Job تهیه کردهاید، اگر بخواهید یک Backup خارج از برنامه Job تهیه کنید، برای اینکه زنجیرهی بکاپهای گرفته شده توسط Job خراب نشود (بهعنوان مثال، DCM Page ریست نشود) باید از این Option استفاده نمایید. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH COPY_ONLY دستور COMPRESSION زمانی که شما از این Option در فرآیند بکاپگیری استفاده نمایید، باعث میشود تا حجم فایل Backup کاهش یابد. همچنین باعث افزایش سرعت فرآیند بکاپگیری میشود. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH COMPRESSION دستور NAME اگر بخواهید برای Backup set خود یک نام تعیین کنید، از این Option استفاده نمایید. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH NAME = 'نام بکاپ' دستور DESCRIPTION اگر بخواهید برای Backup set خود توضیحات بنویسید، از این Option استفاده نمایید. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH DESCRIPTION = 'توضیحات' دستور MEDIANAME اگر بخواهید برای Media set خود یک نام تعیین کنید، از این Option استفاده نمایید. توجه داشته باشید که از این Option فقط در دو حالت میتوان استفاده کرد. وقتی Media set وجود ندارد. وقتی با Option: FORMAT فرآیند تهیه Backup در SQL Server انجام میشود. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH MEDIANAME = N'نام مدیا', FORMAT دستور MEDIADESCRIPTION اگر بخواهید برای Media set خود یک توضیحات تعیین کنید از این Option استفاده نمایید. این Option تمامی شروط MEDIANAME را برای تهیه Backup در SQL Server شامل میشود. BACKUP DATABASE Northwind TO DISK = 'D:\Temp\NW.bak' WITH MEDIADESCRIPTION = N'توضیحات مدیا ست' دستور EXPIREDATE این Option باعث میشود که Backup set شما زمانی که دوباره یک بکاپ جدید در همان مدیا قرار میدهید و از INIT هم استفاده میکنید، overwrite نشود. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH EXPIREDATE = '2021-08-19 15:00:00' اگر شما دوباره یک بکاپ در همان مدیا با Option: INIT قرار دهید، با خطای زیر مواجه میشوید. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH INIT Error: Msg 4030, Level 16, State 1, Line 5 The medium on device ‘D:\Temp\NW.bak’ expires on Aug 19 2021 12:00:00:000AM and cannot be overwritten. برای رفع این مشکل هم میتوانید از Option: SKIP استفاده نمایید. یکم عجیبه، قبول دارم! BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH INIT, SKIP دستور RETAINDAYS این option دقیقاً مشابه EXPIREDATE عمل میکند؛ با این تفاوت که به جای تاریخ، تعداد روز را تعیین میکنید که Backup set شما، قابلیت Overwrite ازطریق INIT را نداشته باشد. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH RETAINDAYS = 1 دستور CHECKSUM زمانی که از این Option استفاده میکنید، Checksum تمامی Page های محاسبه میشود و با مقدار ذخیره شده آن، مقایسه میشود. در کل، اگر خطای IO در بانک اطلاعاتی وجود داشته باشد، فرآیند تهیه Backup در SQL Server متوقف میشود و خطای IO به شما نشان داده میشود. همچنین یک Checksum هم برای کل فایل بکاپ هم تهیه و در فایل Backup ذخیره میکند. توصیه میشود که حتماً از این Option در بکاپهای خود استفاده نمایید. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH CHECKSUM دستور STOP_ON_ERROR این Option باعث میشود که اگر حین فرآیند بکاپ، خطا رخ دهد، فرآیند متوقف شود. بهصورت پیشفرض فعال است. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH CHECKSUM, STOP_ON_ERROR دستور CONTINUE_AFTER_ERROR این Option باعث میشود که اگر حین تهیه Backup در SQL Server خطا رخ دهد، فرآیند بکاپ ادامه یابد. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH CHECKSUM, CONTINUE_AFTER_ERROR از این Option هنگامی که بانک در حالت Suspected قرار گرفته است و شما میخواهید یک Tail log backup تهیه نمایید، استفاده کنید. دستور STATS این Option درصد پیشرفت فرآیند را در تب Message نمایش میدهد. در این مثال، درصد پیشرفت با گام ۵% نمایش داده میشود. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW.bak' WITH STATS = 5 مبحث Mirrored media set اگر قصد این را دارید که هنگامی که تهیه Backup در SQL Server تمام میشود، دو فایل بکاپ ایجاد شود و میتوانید از MIRROR استفاده نمایید. BACKUP DATABASE Northwind TO DISK = N'D:\Temp\NW1.bak', DISK = N'D:\Temp\NW2.bak' MIRROR TO DISK = N'E:\Temp\NW1.bak', DISK = N'E:\Temp\NW2.bak' WITH STATS = 1, FORMAT به دستور بالا توجه کنید. یک Media family از بانک Northwind در مسیر D:\Temp و یک Media Family کاملاً مشابه در مسیر E:\Temp ایجاد مینماید. در این سناریو، شما یک Backup از فایل Backup خود تهیه کردهاید. تهیه Backup در SQL Server به این شیوههای گفته شده به شما کمک میکند تا بتوانید بهترین روش بکاپ گیری را باتوجه به شرایط خود انتخاب و اطلاعات خود را حفظ کنید. سخن پایانی تهیه Backup در SQL Server یکی از مباحث مهم برای نگهداری و حفظ داده ها است. تهیه Backup لازمه یک دیتابیس است، در این مقاله به سه روش تهیه Backup و چندین گزینه پشتیبان گیری (Backup options) پرداخته شد و برای شما عزیزان با ارائه مثال توضیح داده شد. ما در نیک آموز منتظر نظرات ارزشمند شما درباره این مقاله هستیم. چه رتبه ای میدهید؟ میانگین ۴.۴ / ۵. از مجموع ۲۲ اولین نفر باش دانلود مقاله آشنایی با مفاهیم اولیه تهیه Backup در SQL Server فرمت PDF 8 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 7 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده حسن سلیمانی معرفی محصول مسعود طاهری دوره آموزشی نگهداری از بانکهای اطلاعاتی در SQL Server 1.180.000 تومان 708.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ