1. انواع نحوه پشتيبان گيري در SQL Server

2. برنامه پيشنهادي جهت تهيه فايل پشتيبان

3. نحوه  تهيه و تنظيم فايل پشتيبان از طريق نرم افزار SQL Server


 3-1 نحوه ورود به نرم افزار SQL Server

3-2 نحوه ايجاد فايل پشتيبان Full BackUp

 3-3نحوه ايجاد فايل پشتيبان Differential Back Up

 3-4نحوه ايجاد فايل پشتيبان TransactionLog Back Up

 3-5 نحوه ايجاد برنامه حذف خودكار فايل هاي پشتيبان قديمي با نام CleanUp Maintenance Plan 


1) انواع نحوه پشتيبان گيري در SQL Server

براي تعريف برنامه زمان بندي جهت پشتيبان گيري از اطلاعات درSQL بهتر است تعريفي از انواع نسخ پشتيبان در SQL داشته باشيد:




  

در اين اينجا به معرفي روش هاي مورد نياز و كليات انواع روش هاي Backup گيري در SQL Server خواهيم پرداخت و در خصوص ريز و جزئيات روش ها در قسمت بعدي به تفصيل مي آيد.

به صورت كلي در SQL Server ما مي توانيم هشت روش مختلف Backup گيري داشته باشيم كه سه روشي كه ما پيشنهاد مي دهيم به اشكال زير مي باشند:

1-1 ) SQL Server Full Backup 

معمول ترين روش Backup گيري از  SQL Serverروش Full يا Complete مي باشد. به اين روش Database Backup هم گفته مي شود. در اين نوع Backup گيري از كليه Database هاي موجود بر روي Instance به همراه همگي Transaction Log هاي موجود در آن Backup گرفته مي شود و با اين روش به راحتي مي توانيد اطلاعات خود را Recover يا بازيابي نمائيد. اين روش ساده ترين روش بازيابي اطلاعات مي باشد زيرا تمامي اطلاعات به يك باره بازيابي مي شوند.

 

1-2 ) SQL Server Differential Backup

يكي ديگر از روش هاي معمول Backup گيري از SQL Server به روش Differential معروف است. اگر كمي با مفاهيم Backup  در ويندوز آشنائي داشته باشيد اين نوع روش بسيار راحت مي باشد. در اين روش فقط از تغييراتي كه در Database ها  از آخرين Backup گرفته شده، انجام شده است. Backup گرفته مي شود؛ طبيعي است كه اگر از Database ها  تاكنون Backup  گرفته نشده باشد در اولين باري كه به صورت Differential بكاپ بگيريد تمامي اطلاعات Database ها، Backup گرفته مي شوند. در فايل هاي ويندوز يك بيت به نام Archive Bit وجود دارد كه تغييركردن يك فايل را نشان مي دهد. همين مفهوم در SQL Server به عنوان extent شناخته مي شود. يك extent شامل هشت قسمت 8  كيلوبايتي مي شود كه مجموعه 64 كيلوبايت داده را تشكيل مي دهد. هر بار كه اطلاعاتي در SQL سرور وارد مي شود و يا تغييري انجاد مي شود يك Flag ايجاد مي شود كه به SQL سرور مي گويد يك Differential Backup ايجاد شده است و بايد اطلاعات موجود در extent ها در آن موجود باشد. زماني كه يك Full Backup مي گيريد اين Flag ها خاموش مي شوند .

پس همانطور كه عنوان شد، اگر يك Backup Full بگيريد و سپس يك Differential Backup بگيريد محتويات موجود در Differential Backup  فقط شامل اطلاعات تغيير كرده بعد از Full Backup مي باشد كه در واقع همان اطلاعات Extent ها هستند. توجه نمائيد كه برخلاف ساختار  Backup گيري ويندوز اگر چندين بار هم از اطلاعات موجود در SQL Server به صورت Differential  بكاپ بگيريد در نهايت همه تغييراتي كه از ابتداي آخرين Full Backup بر روي Database انجام شده اند Backup  گرفته خواهند شد. زماني كه مي خواهيد Backup اي از SQL سرور خود را بازيابي كنيد كافيست ضمن بازگرداني آخرين Full Backup  فقط اطلاعات موجود در آخرين Differential Backup را نيز بازيابي كنيد تا اطلاعات شامل بازيابي شود. در اين حالت ساير Differential Backup هاي موجود ناديده گرفته مي شوند. توجه كنيد كه اگر Database  در مدل ريكاوري Simple يا Simple Recovery Model قرار دارد همچنان قابليت استفاده از Full Backup و Differential Backup را داريد. اگر Database هايتان از مودل ريكاوري Full يا Logged -Bulk استفاده مي كنند مي توانيد همچنان از Differential Backup  ها استفاده كنيد. در اين حالت بايد توجه نمائيد اين كه تعداد Transaction Log بكاپ هايي كه مي بايست بازگرداني شوند را نيز درست تعيين كنيد. با توجه به اين كه در Differential Backup تمامي Extent هايي كه تا آخرين لحظه Full Backup  از سيستم گرفته شده اند Backup گرفته مي شوند، در زمان بازيابي اطلاعات، ابتدا بايد Full Backup خود را بازيابي كنيد و آخرين Differential Backup  را به همراه Transaction Log Backup اي كه بعد از Differential Backup  آخر گرفته شده است بايستي بازيابي كنيد. با اين كار تعداد فايل هايي كه بايد بازيابي شوند را به حداقل مي رسانيد .

 

1-3) SQL Server Log Backup (Transaction Log Backup)

اگر Recovery Model پايگاه داده ها در حالت Full ياBulk Logge   قرار داشته باشد؛ مي توانيد از Transaction Log  هاي خود نيز Backup بگيريد. اگر در ساختار خود Transaction Log Backup را ديده باشيد و به همراه آن Full Backup  نيز داشته باشيد قادر خواهيد بود چيزي شبيه به Restore Point  ويندوز را براي SQL سرور ايجاد كنيد بدين معنا كه اگر شخصي به صورت تصادفي كليه اطلاعات موجود در Database ها را حذف كند، مي توانيد با استفاده از اين Backup ها اطلاعات را به حالت عملياتي قبل از حذف اطلاعات بازيابي كنيد. نكته منفي كه در خصوص Log Backup ها وجود دارد اين است كه اگر Recovery Model  به حالت Bulk-Logged قرار گرفته باشد براي بازيابي مجبور هستيد كل Transaction Log هاي موجود را بازيابي كنيد.  Log Backup ها در واقع همان Transaction Log Backup ها هم هستند. اين نوع Backup  اجازه مي دهد كه بتوانيد از بخش فعال Transaction Log ها Backup بگيريد. در اين صورت زماني كه از اطلاعات خود يك Full يا Differential Backup  مي گيريد، Transaction Log Backup تمامي اطلاعاتي كه بعد از گرفتن اين Backup ها ايجاد شده اند را نيز Backup مي گيرد. زماني كه دستور گرفتن Transaction Log Backupصادر شد فضايي كه توسط Transaction Log ها اشغال شده بود آزاد و مي توان از آن براي ساير فرآيند هاي سيستم استفاده كرد؛ اما اگر Transaction   Log Backup  نگيريد، حجم اين Log ها همينطور اضافه خواهد شد و رشد خواهد كرد .

همانطور كه مشاهده شد اطلاعات بالا بسيار گسترده بوده و داراي جزئيات زيادي مي باشد، لذا پيشنهاد مي گردد براي كسب اطلاعات بيشتر به منابعي همچون لينك زير مراجعه نمايند.

http://msdn.microsoft.com/en-us/library/ms886488

 



Database

 

Schedule

 

Backup Type

 

Reliability

 

Day

 

Backup Time

ديتابيس اصلي *

Weekly

Full Backup

VerifyBackup

Weekend

1:00 AM

ديتابيس اصلي *

Daily

Differential Backup

VerifyBackup

Daily

04:11  AM

ديتابيس اصلي *

Daily

Transaction log Backup

VerifyBackup

Daily

Every 2 hours

ديتابيس اصلي ***

Weekly

FullBackup

VerifyBackup

Weekend

09:00 PM

ديتابيس اصلي *

Weekly

Clean up  (Full Backup)

-

Weekend

11:00PM

ديتابيس اصلي*

Daily

Clean up Differential Backup)

-

Daily

02:00AM



*  منظور از ديتابيس اصلي تمام ديتابيس هايي مي باشد كه كاربران در فرم تنظيمات صفحه ورود به نرم افزار آن ها  مي بينند. در صورتي كه براي منظورهاي مختلف ديتابيس هاي مختلفي وجود دارد كه اطلاعات آن ها حائز اهميت مي باشد؛ براي هر ديتابيس تمامي مراحل فوق الذكر بايد اجرا شود.

***منظور از ديتابيس سورس تماد ديتابيس هايي مي باشد كه با همنام با ديتابيس هاي اصلي و با پسوند " _srcs " در ادامه نام آن ها وجود دارد. در حالت معمول فابل هاي سورس با نام هاي SeyaghExtDbApp و Seyagh_Complete_Srcs شناخته مي شوند .

توجه:  فايل پشتيبان بهتر است روي انبارداده Data Storage جدا از سرور اصلي و با قابليت اطمينان دسترسي و امنيت بالا نگهداري شود. در صورت نياز

و تشخيص مدير فناوري اطلاعات ممكن است راه حل هاي تركيبي يا انبارك هاي موازي نيز اجرا گردد.

 

3) نحوه تهيه و تنظيم فايل پشتيبان از طريق نرم افزار SQL Server

1-3) نحوه ورود به نرم افزار  Microsoft SQL Server

 براي شروع كار با نرم افزار بايد نرم افزار SQL Server را در سرور اجرا نمائيد براي اين كار  پس از  باز كردن منوي Start و در قسمت All Programs برنامه يSQL Server Management Studio ، نرم افزار را اجرا نمائيد.

 



در قسمت بعدي بايد روي دكمه  Connecكليك نمائيد تا وارد محيط نرم افزار شويد.



حالا پنجره اي همچون پنجره زير مشاهده خواهيد نمود.


براي مشاهده بانك هاي اطلاعاتي بر روي علامت + Databases  كليك نموده تا آن ها را مشاهده نمائيد.


2-3) نحوه ايجاد فايل پشتيبان  Full BackUp

 پس از ورود به نرم افزار روي شاخه ي management دابل كليك نموده تا زير شاخه ها قابل مشاهده باشند. سپس بر روي maintenance plan  راست كليك نموده و گزينه ي  New Maintenance Plan Wizard را انتخاب نمائيد.


سپس بر روي دكمه Next در پنجره ايكه مشاهده مي كنيد؛ كليك نمائيد.


در مرحله بعدي و در قسمت Name نام طرح مورد نظر را وارد نمائيد و بر روي دكمه ي Change  كليك نموده تا زمان بندي اجراي طرح را تنظيم نمائيد.



تنظيمات لازم را براي زمان بندي را مطابق تصوير به صورت هفتگي و در روزهاي شنبه و در ساعت 1 صبح تنظيم نمائيد و سپس دكمه ي Ok را بزنيد. در مورد ساعت اجراي طرح ها توجه شود كه خارج از زمان كار كاربران بوده و با زمان اجراي طرح هاي تعريف شده تداخل زماني نداشته باشد


بر روي Next كليك نمائيد


در اين مرحله گزينه Back up Database (Full) را انتخاب نمائيد و با كليك بر روي next به مرحله بعدي برويد.


بر روي Next كليك نمائيد.


در اين قسمت بايد بانك هاي اطلاعاتي مورد نظر جهت تهيه نسخه پشتيبان انتخاب شوند. تنظيمات را با توجه به تصوير زير انجام دهيد. در قسمت Database(s) بايد گزينه All User Databases انتخاب شود.


گزينه Create a backup file for every database را فعال نمائيد. در اين قسمت بايد مسير ذخيره سازي نسخه پشتيبان را معرفي نمائيد. دقت نمائيد اگر گزينه dictionary for each database -Sub فعال شود. به ازاي هر نسخه پشتيبان مربوط به هر بانك اطلاعاتي پوشه اي جداگانه و به نام بانك اطلاعاتي مربوطه ايجاد مي شود