درک انواع پشتیبان گیری SQL ServerReviewed by صبا شادروز on Jun 30Rating: 5.0درک انواع پشتیبان گیری SQL Server | شرکت طراحان وب تبریزپشتیبان گیری SQL Server به خودی خود یک موضوع بسیار گسترده است، در این مقاله، ما به نوع پشتیبان هایی که برای ما در دسترس هستند تمرکز می کنیم

انواع پشتیبان گیری SQL Server

پشتیبان گیری SQL Server به خودی خود یک موضوع بسیار گسترده است، چندین کتاب در مورد آنها نوشته شده است. با این حال، در این مقاله، ما به نوع پشتیبان هایی که برای ما در دسترس هستند تمرکز می کنیم و درک می کنیم که چطور باید آنچه را که نیاز داریم را انتخاب کنیم و جنبه هایی را که بر اساس آن تصمیم گیری می کنیم. این درک، به نوبه خود، به ما در تصمیم گیری در مورد استراتژی پشتیبان گیری و بازگرداندن ما کمک می کند.

در زیر انواع معمولی پشتیبان گیری موجود در SQL Server وجود دارد:

  • پر شده
  • دیفرانسیل
  • ثبت تراکنش
  • نسخه پشتیبان ته پشتیبان

انواع پشتیبان دیگری نیز موجود است:

  • نسخه پشتیبان تهیه کپی تنها
  • پشتیبان گیری فایل
  • پشتیبان گیری جزئی

پشتیبان کامل SQL Server

یک نسخه پشتیبان کامل، همانطور که از نامش بر می آید، همه چیز را پشتیبان می گیرد. این پایه ای از هر گونه پشتیبان است. این یک کپی کامل است که تمام اشیاء پایگاه داده را ذخیره می کند: جداول، روش ها، توابع، نمایش ها، شاخص ها و… 

یک پشتیبان کامل یک نسخه پشتیبان کامل از پایگاه داده و همچنین بخشی از ثبت معامله ایجاد می کند، بنابراین پایگاه داده می تواند بازیابی شود. این اجازه می دهد تا برای ساده ترین شکل از بازسازی پایگاه داده، از آنجا که تمام مطالب در یک نسخه پشتیبان تهیه شده است.

یک پشتیبان کامل باید حداقل یک بار قبل از هر نوع دیگر از پشتیبان گیری ها اجرا شود – این پایه ای برای هر نوع پشتیبان است.

نحوه ایجاد پشتیبان کامل پایگاه داده با استفاده از T-SQL

BACKUP DATABASE فرمانی است که برای ایجاد پشتیبان کامل پایگاه داده استفاده می شود. این حداقل دو پارامتر ورودی نیاز دارد: نام پایگاه داده و دستگاه پشتیبان.

مثال زیر برای پشتیبان کامل پایگاه داده ذخیره شده در یک دستگاه است:

BACKUP DATABASE [SQLShackDemoATC]
To DISK=‘f:\PowerSQL\SQLShackDemoATC.BAK’
WITH FORMAT,
      MEDIANAME = ‘Native_SQLServerBackup’,
      NAME = ‘Full-SQLShackDemoATC backup’;

پشتیبان گیری کامل پایگاه داده به چندین فایل

گاهی اوقات در بعضی موارد، ما محدود به مقدار فضای ما است. اگر می خواستیم یک پایگاه داده کلیدی را بزرگ کنیم، چه می شود؟ یا اگر ما بایستی فایلهای پشتیبان را بر روی شبکه کپی کنیم؟ ممکن است در این موارد یک ایده خوب برای تقسیم نسخه پشتیبان به تکه های کوچکتر باشد که هر یک از آنها یک فایل جداگانه است.
BACKUP DATABASE SQLShackDemoATC TO
DISK = ‘f:\PowerSQL\SQLShackDemoATC_1.BAK’,
DISK = ‘f:\PowerSQL\SQLShackDemoATC_2.BAK’,
DISK = ‘f:\PowerSQL\SQLShackDemoATC_3.BAK’,
DISK = ‘f:\PowerSQL\SQLShackDemoATC_4.BAK’
WITH INIT, NAME = ‘FULL SQLShackDemoATC backup’, STATS = 5
در حقیقت، شما می توانید تا سه نسخه آینه داشته باشید:
BACKUP DATABASE ProdSQLShackDemo
TO DISK = ‘F:\PowerSQL\ProdSQLShackDemo_1.BAK’
MIRROR TO DISK =‘F:\PowerSQL\ProdSQLShackDemo_2.BAK’
MIRROR TO DISK =‘F:\PowerSQL\ProdSQLShackDemo_3.BAK’
MIRROR TO DISK =‘F:\PowerSQL\ProdSQLShackDemo_4.BAK’
WITH FORMAT
GO

پشتیبان گیری دیفرانسیل SQL Server

پشتیبان گیری پایگاه داده دیفرانسیل فوق العاده از آخرین پشتیبان کامل است و حاوی تمام تغییراتی است که از آخرین نسخه کامل پشتیبان گرفته شده است. بنابراین، اگر معاملات بسیار کمی انجام شده است که اخیرا اتفاق افتاده است، یک نسخه پشتیبان دیجیتال ممکن است کوچک باشد، اما اگر تعداد زیادی از معاملات را انجام داده باشید، پشتیبان دیفرانسیل می تواند بسیار بزرگ باشد.

به عنوان یک پشتیبان دیفرانسیل همه چیز را پشت سر نمی گذارد، پشتیبان معمولا سریعتر از یک پشتیبان کامل اجرا می شود. نسخه پشتیبان تهیه دیفرانسیل دیجیتال قطعه ای از حالت های تغییر یافته در زمانی که تهیه پشتیبان ایجاد شد. اگر یک سری پشتیبان گیری دیفرانسیل ایجاد کنید، یک پایگاه اطلاعاتی که اغلب بهروز شده است، احتمالا حاوی داده های مختلف در هر دیفرانسیل است. به عنوان پشتیبان گیری دیفرانسیل در اندازه افزایش می یابد، بازگرداندن پشتیبان دیفرانسیل می تواند به طور قابل توجهی زمان لازم برای بازگرداندن پایگاه داده را افزایش دهد. بنابراین، توصیه می شود یک فضای پشتیبان کامل جدید را در فواصل زمانی تعیین شده برای ایجاد یک پایگاه دیفرانسیل جدید برای داده ها ایجاد کنید.

بیشتر بخوانید >> دعوت به عمل (CTA) چیست و چگونه می توانم یکی را انتخاب کنم؟

پشتیبان گیری دیفرانسیل صرفه جویی در فضای ذخیره سازی و زمان برای پشتیبان گیری می کند. با این حال، به عنوان داده ها در طول زمان تغییر می کند، اندازه پشتیبان دیفرانسیل نیز افزایش می یابد. طول عمر پشتیبان دیفرانسیل و اندازه بزرگتر و در بعضی نقاط زمان ممکن است به اندازه نسخه پشتیبان کامل برسد. یک پشتیبان دیفرانسیل بزرگ، مزایای یک نسخه پشتیبان سریع و کوچک را از دست می دهد، زیرا قبل از بازگرداندن نسخه پشتیبان دیجیتال اخیر، پشتیبان کامل نیاز به بازگردانی دارد. به طور معمول، ما آخرین نسخه پشتیبان کامل را به دنبال آخرین نسخه دیفرانسیل دیجیتال که بر اساس آن نسخه پشتیبان کامل است بازگردانده ایم.

چگونگی ایجاد پشتیبان پایگاه داده دیفرانسیل با استفاده از T-SQL

دستور BACKUP DATABASE با استفاده از بند دیفرانسیل برای ایجاد پشتیبان پایگاه داده دیفرانسیل استفاده می شود. این نیاز به سه پارامتر دارد:

  • نام پایگاه داده
  • دستگاه پشتیبان گیری
  • بند DIFFERENTIAL
    مثلا

 

BACKUP DATABASE [SQLShackDemoATC]
   To DISK=‘f:\PowerSQL\SQLShackDemoATC_Diff.BAK’
   WITH DIFFERENTIAL,
    MEDIANAME = ‘Native_SQLServerDiffBackup’,
    NAME = ‘Diff-SQLShackDemoATC backup’;

تراکنش پشتیبانگیری 

پشتیبان ورود به سیستم، همانطور که از نام آن بدست می آید، پشتیبان گیری از logs تراکنش است. این نوع پشتیبان تنها با مدل هایaبازیابی کامل و یا دسته ای ثبت شده امکان پذیر است. یک فایل ثبت معامله یک سری از سیاهههای مربوط را که تاریخچه هر اصلاح داده را در پایگاه داده ذخیره می کند ذخیره می کند. یک نسخه پشتیبان از ثبت معامله شامل تمام پرونده های ثبت شده است که در آخرین نسخه پشتیبان ثبت معامله گنجانده نشده است.

این اجازه می دهد تا پایگاه داده به یک نقطه خاص در زمان بهبود یابد. این به این معنی است که پشتیبان گیری ورود به سیستم تراکنش افزایشی است و پشتیبان گیری دیفرانسیل در طبیعت تجمعی است.

اگر میخواهید پایگاه داده را به یک نقطه خاص در زمان بازگردانید، باید یک دیسکت کامل، اخیرا و تمام پروندههای ثبت معامله مربوطه را که لازم است برای ساخت پایگاه داده تا آن نقطه خاص، یا به یک نقطه بسیار نزدیک به نقطه مورد نظر در زمان، درست قبل از وقوع تصادف که منجر به از دست دادن داده ها. این مجموعه ای از اصلاحات با استفاده از LSN (شماره پیوندی ورودی) در زنجیره ورودی موجود و نگهداری می شود. یک زنجیره ی پشتیبان یابی یک سری از سریال های ناگسستنی از سیاهههای مربوط است که حاوی تمام پرونده ی ثبت معاملات لازم برای بازیابی یک پایگاه داده به یک نقطه در زمان است. یک زنجیره ورودی همیشه با یک پشتیبان کامل پایگاه داده شروع می شود و همچنان ادامه می یابد تا علت آن زنجیره را خراب کند (به عنوان مثال، تغییر مدل بازیابی از پایگاه داده به ساده یا گرفتن یک پشتیبان کامل کامل)، بنابراین جلوگیری از ورود پشتیبان گیری از ورود به پایگاه داده تا زمانیکه یکی دیگر از پشتیبان گیری کامل (یا دیفرانسیل) برای آن پایگاه داده آغاز شود.

نحوه ایجاد نسخه پشتیبان از log transaction با استفاده از T-SQL

دستور BACKUP LOG برای پشتیبان گیری از log transaction استفاده می شود. این به نام پایگاه داده، دستگاه مقصد و قرارداد TRANSACTION LOG برای شروع پشتیبان ورود به سیستم مراجعه می کند.

BACKUP LOG [SQLShackDemoATC]
To DISK=‘f:\PowerSQL\SQLShackDemoATC_Log.trn’
WITH
MEDIANAME = ‘Native_SQLServerLogBackup’,
NAME = ‘Log-SQLShackDemoATC backup’;
GO

پشتیبان گیری ورودی دم

در صورت خرابی، هنگامی که شما به پایگاه داده نیاز دارید که به عقب بر گردیم و اجرا شود، و پایگاه داده در مدل بازیابی FULL یا BULK_LOGGED کار می کند، همیشه عملیات بازیابی آسان است و شروع به بازگرداندن پشتیبان ها می شود. اما قبل از آن، اولین اقدام بعد از شکست، چه چیزی است که به عنوان یک پشتیبان از log در معرض ورود معامله می شود.

این یک مرحله متوسط ​​است که ما باید قبل از شروع ترمیم آن را انجام دهیم. این فرایند به اصطلاح بازگرداندن نسخه پشتیبان تهیه می شود.

USE master;
GO
— create a tail-log backup
BACKUP LOG [SQLShackDemoATC]
TO DISK = ‘f:\PowerSQL\SQLShackDemoATCTailLog.log’
WITH CONTINUE_AFTER_ERROR;
GO
clause WITH CONTINUE_AFTER_ERROR SQL Server را مجبور به ذخیره پرونده ورودی می کند، هرچند که باعث ایجاد یک خطا می شود.

Copy_Only نسخه پشتیبان تهیه کنید

تهیه نسخه پشتیبان یک نوع خاص از پشتیبان کامل است که مستقل از توالی متداول پشتیبان گیری است. تفاوت بین نسخه کپی و پشتیبان کامل این است که تهیه نسخه پشتیبان تنها یک نسخه پشتیبان دیفرانسیل بعدی نمی شود.

نسخه پشتیبان کامل در تمام مدل بازیابی پایگاه داده کار می کند. از سوی دیگر، نسخه پشتیبان تهیه نسخه پشتیبان تنها برای یک مدل بازیابی کامل و یا انبوه ثبت شده قابل اجرا است. بازگرداندن پشتیبان تنها کپی تنها از یک روند بازسازی نرمال متفاوت نیست.

نسخه پشتیبان تهیه نسخه پشتیبان بسیار ساده است. نحو به نظر می رسد چیزی شبیه به این است:

 
BACKUP DATABASE [SQLShackDemoATC]
To DISK=‘f:\PowerSQL\SQLShackDemoATC_1.BAK’
WITH COPY_ONLY,
MEDIANAME = ‘Native_SQLServerFullBackup’,
NAME = ‘Full-SQLShackDemoATC backup’;
BACKUP LOG [SQLShackDemoATC]
TO DISK = ‘f:\PowerSQL\SQLShackDemoATCCopyOnly.log’
WITH COPY_ONLY;
GO
دستور BACKUP LOG با گزینه COPY_ONLY یک نسخه پشتیبان از log را تنها کپی ایجاد می کند. این در قطع تراکنش معاملات دخیل نیست.
 
لازم است که از گزینه ‘COPY_ONLY’ برای پشتیبان گیری از پایگاه داده استفاده شود.
 

پشتیبان گیری جزئی SQL Server

پشتیبان گیری جزئی یکی از روش های پشتیبان گیری کمترین استفاده در SQL Server است. تمامی مدل های بازیابی پایگاه داده از نسخه پشتیبان تهیه جزئی پشتیبانی می کنند، اما پشتیبان گیری جزئی عمدتا در مدل بازیابی ساده برای بهبود انعطاف پذیری در هنگام پشتیبان گیری از پایگاه های داده بزرگ که شامل گروه های فقط خواندنی هستند استفاده می شود.

گزینه READ_WRITE_FILEGROUPS با دستور BACKUP DATABASE مورد استفاده قرار می گیرد. این دستور برای پشتیبان جزئی است. این نسخه پشتیبان تهیه گروه های فایل خواندن و نوشتن را پردازش می کند.

SQLShackPartialBackup پایگاه داده ایجاد شده با گروه های فایل اولیه و ثانویه است. بیایید از پایگاه داده SQL Server برای این نسخه ی نمایشی استفاده کنیم.

پایگاه داده SQLShackPartialBackup را روی PRIMARY ایجاد کنید
(NAME = N’SQLShackPartialBackup_1 ‘)
FILENAME = N’f: \\ PowerSQL \\ SQLShackPartialBackup_1.mdf ‘،
SIZE = 5000KB، FILEGROWTH = 1024KB)،
FILEGROUP [ثانویه]
(NAME = N’SQLShackPartialBackup_2 ‘)
FILENAME = N’f: \\ PowerSQL \\ SQLShackPartialBackup_2.mdf ‘،
SIZE = 5000KB، FILEGROWTH = 1024KB)
ورود
(NAME = N’SQLShackPartialBackup_Log ‘)
FILENAME = N’f: \\ PowerSQL \\ SQLShackPartialBackup_log.ldf ‘،
SIZE = 1024KB، = 10٪)
برو

بیایید مدل بازیابی پایگاه داده را به SIMPLE با استفاده از عبارت ALTER زیر تغییر دهیم

ALTER DATABASE SQLShackPartialBackup SET RECOVERY SIMPLE

اکنون گروه دوم فایل را به حالت READONLY تنظیم کنید

یک پشتیبان را با استفاده از گزینه READ_WRITE_FILEGROUPS آغاز کنید

BACKUP DATABASE SQLShackPartialBackup READ_WRITE_FILEGROUPS
TO DISK = N‘f:\PowerSQL\SQLShackPartialBackup_Full.bak’
GO

ما می توانیم در تصویر زیر ببینیم که گروه فایل SQLShackPartialBackup_2 در فرآیند پشتیبان تهیه نشده است.

فایل و پشتیبان گیری گروهی فایل

این موضوع مربوط به پایگاه داده های SQL Server است که حاوی چندین فایل یا گروه های فایل هستند. پشتیبان گیری فایل از گروه های فایل SQL Server  فقط خواندنی را می توان با پشتیبان گیری جزئی ترکیب کرد. پشتیبان گیری جزئی شامل تمام گروه های فایل خواندن / نوشتن و، اختیاری، یک یا چند گروه فایل فقط خواندنی است.

بیایید یک پایگاه داده با چند فایل و گروه های فایل ایجاد کنیم.

CREATE DATABASE SQLShackFileBackup ON  PRIMARY
( NAME = N‘SQLShackFileBackup_1’,
FILENAME = N‘f:\PowerSQL\SQLShackFileBackup_1.mdf’ ,
SIZE = 5000KB , FILEGROWTH = 1024KB ),
FILEGROUP [Secondary]
( NAME = N‘SQLShackFileBackup_2’,
FILENAME = N‘f:\PowerSQL\SQLShackFileBackup_2.ndf’ ,
SIZE = 5000KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N‘SQLShackFileBackup_Log’,
FILENAME = N‘f:\PowerSQL\SQLShackFileBackup_Log.ldf’ ,
SIZE = 1024KB , FILEGROWTH = 10%)
GO
مثال های زیر نشان می دهد که چگونه می توان نسخه پشتیبان تهیه فایل های فایل را ایجاد کرد:
BACKUP DATABASE SQLShackFileBackup  
   FILE = ‘SQLShackFileBackup_1’,  
   FILE = ‘SQLShackFileBackup_2’  
   TO DISK = ‘f:\PowerSQL\SQLShackGroupfiles.bak’;  
GO 
مثال زیر نسخه پشتیبان کامل فایل تمام فایل ها را در هر دو گروه فایل اولیه و ثانویه نشان می دهد.
BACKUP DATABASE SQLShackFileBackup  
   FILEGROUP = ‘PRIMARY’,
   FILEGROUP = ‘Secondary’
   TO DISK = ‘f:\PowerSQL\SQLShackGroupfilegroup.bak’;  
GO

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست