هدف از Backup گيري ، ايجاد امكان بازيابي دیتابیس در زمان خرابي و از دست دادن دیتابیس مي باشد. يكي از اهداف ديگر Backup گيري ، جابجا كردن دیتابیس مي باشد كه اين روش ، روش پرهزينه ايي براي انتقال دیتابیس مي باشد .در عمل Backup گيري عملي است كه در آن با استفاده از توابعي ويژه دیتابیس را به File تبديل مي كند. اين فايل با ساختاري كاملا منحصر به فرد و قابل شناسايي توسط SQL Server ايجاد مي شود.
در واقع Backup مي گيريم براي بازسازي دیتابیس وقتي كه
- دیتابیس خراب شود.
- سخت افزاري خراب شود.
- اشكالاتي از بابت كار كاربران پيش مي آيد.
Backup تهيه شده بايستي قابل اتكا و حتي الامكان با كمترين هزينه براي كاربر تهيه شود لذا تحليل و تهيه يك برنامه مدون براي Backup گيري از ملزمات اين كاراست.
شناخت فاكتورهاي مهم براي Backup گيري مناسب
براي تهيه Backup هاي بهينه از دیتابیس ها شناخت فاكتورهاي اساسي در نحوه Backup گيري بسيار موثر است . اين فاكتورها عبارتند از :
- نرخ بروز رساني اطلاعات در هر روز
- سخت افزار لازم براي تهيه Backup
- اهميت بازيابي اطلاعات از Database Recovery) Backup)
در واقع بايستي عمل Backup گيري در شرايطي انجام شود كه هزينه backup گيري تا حد ممكن كم شود.
Recovery Model
رفتار هاي مختلفي كه SQL Server در مورد نگهداري Log هاي دیتابیس اجرا مي كند را Recovery Model گوييم اين حالات عبارتند از :
- Full
- Simple
- Bulk-logged
Full Recovery Model
در اين مدل تمامي تراكنشها در Log file ثبت ميشود .اين حالت باعث افزايش حجم Log File و در نتيجه كندي در ثبت اطلاعات را پيش مي آورد.ولي در اين حالت امكان بازيابي دیتابیس از طريق Log file مقدور مي باشد .
Simple Recovery Model
در اين مدل تمامي تراكنشهاي دیتابیس فقط براي حفظ Database Consistency ثبت مي شود و از نگهداري Log ها Historical خودداري مي شود .به عبارت ديگر تمامي تراكنشهاي Commit شده از Truncate ، Log file مي شوند. استفاده از Log در دیتابیس مهمترين عامل براي باز سازي دیتابیس در زمان خرابي آن به حساب مي آيد. لذا ضرورت استفاده از Log در SQL Server از ملزمات مي باشد .
نكته:
- در زماني كه دیتابیس در Recovery model = Simple باشد . امكان تهيه Transaction Log Backup مقدور نمي باشد و با Backup گيري از آن اندازه آن به اندازي ابتدايي خود ميرسد (Shrink) مي شود.
- براي حفظ امنيت دیتابیس بايستي از امكان Transaction Log Backup استفاده كرد. از اين رو استفاده از Recovery model = Full را پيشنهاد مي نماييم .
Bulk-logged :
در اين مدل تمامي تراكنش ها روي دیتابیس Log مي شود مگر آندسته از Logهايي كه از نتيجه كارهاي حجيم مانند Import Data و Index Creation ... توليد مي شود.
براي تغيير Recovery Model مي توان بصورت زير عمل كرد:
ضمیمه 69802
انواع Backup ها
انواع Backup هاي موجود در SQL Server به شرح زير است :
- Full Backup
- Deferential Backup
- File \ File Group Backup
- Transaction Log Backup
قبل از معرفي انواع Backup بايستي بدانيم كه هر دیتابیس شامل 2 دسته اطلاعات است. يكي اطلاعات كاربر (User Data) و ديگري اطلاعات مربوط به ساختار هاي دیتابیسSystem Data) .
Full Backup - Complete Backup
در اين نوع Backup از تمام اشياي دیتابیس و Data ها مي توانيد Backup بگيريد. اين Backup كاملترين نوع Backup بوده و با Restore آن تمامي اطلاعات دیتابیس بازسازي مي شود .
اين Backup همواره نسبت به زمان ايجاد دیتابیس ، ايجاد مي شود . در نتيجه اندازه اين نوع از Backup با افزايش حجم Database نيز زياد مي شود. استفاده از اين نوع Backup بسيار مطمئن مي باشد ولي بايستي طوري از آن استفاده شود تا اندازه فايل Backup دردسر ساز نشود.
Deferential Backup
دراين مدل Backup از تغييرات Data ها نسبت به آخرين Full Backup ، Backup تهيه مي شود. استفاده از اين مدل Backup از محدوديت هاي خاصي برخوردار است و بايستي براي حفظ امنيت اطلاعات طبق زمانبندي و بطور منظم Backup تهيه شود.به عنوان مثال
شنبه ساعت 8:00 يك Backup Full تهيه مي شود و در طي روز 3 Backup از نوع Deferential گرفته مي شود. اين مدل در طي هفته تكرار مي شود ولی Backup از نوع Full فقط هفته ايي يكبار گرفته مي شود. آخرين Deferential Backup روز 3 شنبه شامل تغييرات دیتابیس از آخرين Full Backup يعني Backup روز شنبه مي باشد..
اين Backup سريعتر و در اندازه كمتر گرفته مي شود و زمان بازيابي كمتري را صرف مي كند.
Transaction Log Backup
يكي از مهمترين انواع Backup براي نگهداري از دیتابیس هايي است كه بين 2 Full Backup تغييرات زيادي دارند.
در اين مدل Backup از تمامي Log Entry هاي غير فعال در فايل Log ، يك Backup تهيه مي شود. ارزش اين Backup در آن است كه در صورت خرابي دیتابیس مي توان دیتابیس را از روي آنها باز سازي كرد.
تعاريف پايه ايي براي Backup
براي تشريح موضوع بايستي ابتدا تعاريف زير را بيان نماييم :
Backup Set
مجموعه ايي از Backup ها روي يك يا چند Backup Media و يا تركيبي از چندين Backup Media را يك Backup Set گوييم.
Media Set
تركيبي از چندين Backup Media مانند Disk و Tape را گوييم.
Backup Media
سخت افزار هاي مورد استفاده در Backup گيري را گوييم.
Media Family
زمانيكه از چندين Backup Media براي تهيه Backup استفاده مي نماييم به آن Media Family مي گوييم. معمولا از اين كار براي ايجاد Mirror Backup و يا توزيع Backup يك دیتابیس روي چندين Media مورد استفاده قرار مي گيرد .در اين رابطه بايستي ملاحظاتي را در نظر بگيريم:
- در حالت Backup گيري چنانچه از چندين Media استفاده نماييد تمامي زير مجموعه هاي Backup ها بايستي در Backup Device ها شركت كنند.
Backup Device
شيي از SQL Server مي باشد كه وظيفه مديريت Backup هاي يك يا چندين دیتابیس را برعهده دارد. در واقع اين شيي مديريت Backup هاي تهيه شده و مديريت Backup Media را برعهده دارد. براي ايجاد اين شيي به صورت زير عمل مي كنيم در سمت Server Object ، عنوان Backup Device را انتخاب مي نماييم :
ضمیمه 69801
با انتخاب اين گزينه مي توان يك Device را انتخاب كرد. مزاياي استفاده از Backup Device عبارتند از :
- Device Backup شامل يك فايل مي باشد و تمامي Backup هاي ايجاد شده در يك فايل نگهداري مي شود.
- همواره كاربر با يك فايل به عنوان Backup روبرو است ولي بايد اندازه فايل Backup را كنترل كرده زيرا Backup ها در اين فايل بصورت تصاعدي افزايش حجم پيدا مي كند.
ضمیمه 69800
همانطور كه در شكل فوق ملاحظه مي فرماييد مجموعهايي از Backup ها در يك Device قرار دارد و در زمان Restore كردن اين امكان وجود دارد تا با انتخاب هركدام از Backup هاي اين مجموعه به دیتابیس آن دسترسي پيدا كزد.
ادامه دارد...
![]()





پاسخ با نقل قول
