بازیابی اطلاعات پایگاه داده (پارت دوم)

نحوه گرفتن بکاپ صحیح از دیتابیس SQL Server

براي گرفتن Backup از اطلاعات موجود در Database از الگوريتم هاي زير پيروي مي‌شود.

در بانك اطلاعاتي MS SQL Server سه نوع تهيه نسخ پشتيبان وجود دارد كه از هر كدام بنا به حجم اطلاعات و امكانات سخت افزاري مي‌توان در دوره هاي مختلف بهره برداري نمود.

1- Full Backup :

كه از كل اطلاعات موجود در Database نسخه پشتيبان تهيه مي‌گردد.

2- Differential Backup:

در اين نوع از آخرين تغييرات بوجود آمده در Database نسخه پشتيبان تهيه مي شود . آخرين مرحله Backup گيري مد نظر قرار گرفته مي شود و از آخرين تغييرات نسخه پشتيباني تهيه مي شود . لازم به ذكر است كه در اين نوع فقط تغييرات اطلاعات نسخه پشتيبان گرفته مي‌شود و نه كل اطلاعات

3- Transaction Log Backup:

در اين نوع از آخرين Transaction هايي كه در Database رخ داده نسخه پشتيبان تهيه مي‌شود . بدين معنا كه كليه عمليات اتفاق افتاده در بانك اطلاعاتي را پشتيبان گيري مي‌نمايد و اين مورد از آخرين اتفاق هاي Backup گرفته شده به بعد نسخه پشتيبان تهيه مي‌نمايد.

تهيه نسخ پشتيبان بنا به حجم اطلاعات و منابع سخت افزاري

حال بنا به تعاريف فوق عمل تهيه نسخ پشتيبان بنا به حجم اطلاعات و منابع سخت افزاري در دسترس تنظيم مي‌شود ، ليكن آنرا مي‌توان به گروه هاي زير تقسيم نمود:

  • حجم اطلاعات كمتر از GB 30
  • حجم اطلاعات بيشتر از GB 30

حجم اطلاعات كمتر از GB 30

در اين حالت توصيه مي‌شود از نوعهاي 1 و 3 با الگوريتم زير استفاده شود:

  • تهيه نسخه پشتيبان نوع 1 در انتهاي هر روز كاري
  • تهيه نسخه پشتيبان نوع 3 در هر روز با فاصله زماني 1 ساعت
  • حذف نسخ تهيه شده بعداز 3 روز

حجم اطلاعات بيشتر از GB 30

در اين حالت توصيه مي‌شود از نوع هاي 1 و 3 با الگوريتم زير استفاده شود:

  • تهيه نسخه پشتيبان نوع 1 در انتهاي هر هفته كاري
  • تهيه نسخه پشتيبان نوع 2 در انتهاي هر روز كاري
  • تهيه نسخه پشتيبان نوع 3 در هر روز با فاصله زماني 1 ساعت
  • حذف نسخ تهيه شده نوع 1 و 2 بعداز 2 هفته
  • حذف نسخ تهيه شده نوع 3 بعداز 3 روز

بکاپ گیری در SQL Server به روش دستی

بکاپ گیری دستی در SQL Server به روش دستی، به دو صورت انجام می شود.

  • روش اول: ابتدا پنجره Management Studio را باز می کنیم و در قسمت Object Explorer وارد بخش دیتابیس شده، روی دیتابیس مورد نظر کلیک می کنیم و در منوی Taskگزینه بکاپ را انتخاب می کنیم. سپس نوع بکاپ را مشخص کرده و گزینه Addرا انتخاب می کنیم. حال در این جا باید محل مورد نظر برای ذخیره و همچنین نام بکاپ را مشخص کرد. پس از اتمام این مراحل گزینه OKرا زده و صفحه پایان کار با موفقیت، به ما نشان داده می شود.
مرحله اول
مرحله اول
مرحله دوم
مرحله دوم
مرحله سوم
مرحله سوم
مرحله چهارم
مرحله چهارم
مرحله پنجم
مرحله پنجم
پیغام با موفقیت انجام شدن کار
پیغام با موفقیت انجام شدن کار
  • روش دوم: بکاپ گیری از T-SQL استفاده می شود. برای این کار باید وارد SQL Server Management Studioشده و از نوار ابزار ها گزینه New Queryرا انتخاب کنیم. سپس با دستوری مشابه دستور زیر فایل بکاپ را ذخیره می کنیم:
BACKUP DATABASE BinaDB TO DISK = ‘C:BinaDB-Backup-Test.BAK’
GO

( توجه داشته باشید که این دستور دیتابیس BinaDB را در درایو C و با نام نوشته شده در حالت Full Backup ذخیره می کند)
پس از اتمام کار، پیغامی مبنی بر اجرای موفقیت آمیز دستور نمایش داده می شود.

برای دیدن فیلم آموزشی این روش اینجا کلیک کنید

بکاپ گیری در SQL Server به روش خودکار

برای استفاده از این روش باید سرویس SQL Server Agent در حالت فعال یا Running قرار داشته باشد. برای بررسی این موضوع می توانید وارد کنسول Services.msc شده و وضعیت آن را بررسی کنید. در صورتی که حالت آن روی Stop بود آن را به استارت تغییر دهید. همچنین می توانید پس از اتصال به instance مورد نظر در SQL Server Management Studio در منوی Object Explorer ببینید که سرویس مورد نظر اجرا می شود و یا اینکه غیر فعال است.
پس از مطمئن بودن از فعال بودن آن، از منوی Object Explorer بر روی گزینه Management کلیک کرده و گزینه Maintenance Plan را انتخاب کنید. سپس وارد بخش Maintenance Plan Wizard شوید. در صفحه باز شده، گزینه Next را انتخاب می کنیم. در صفحه بعدی نام فایل را انتخاب می کنیم و سپس برای انجام تنظیمات مربوطه Change را انتخاب می کنیم.

سپس تنظیماتی مثل زمان، نوع بکاپ، شرایط بکاپ گیری و… را در صفحه باز شده مشخص می کنیم. در صفحه بعدی باید نوع بکاپ را انتخاب کنیم

برای دیدن فیلم آموزشی اینجا کلیک کنید

ریکاوری دیتابیس در SQL Server

حال که نحوه گرفتن بکاپ را یاد گرفتیم می خواهیم درباره ی ریکاوری دیتابیس در SQL Server صحبت کنیم. برای این کار به این صورت عمل می کنیم. ابتدا در SQL Server Management Studioبر روی دیتابیس مورد نظر راست کلیک کرده و از قسمت Task، گزینه Restore و سپس از آن قسمت هم گزینه Databaseرا انتخاب می کنیم. در صفحه باز شده در قسمت Source For Restore گزینه From Device را انتخاب کرده و فایل بکاپی را که قبلا ایجاد شده است انتخاب می کنیم. اگر می خواهید فایل بکاپ جایگزین دیتابیس فعلی شود، باید از قسمت Options در سمت راست گزینه Overwrite the Exsisting Database را تیک بزنید.

برای دیدن ویدئو آموزشی اینجا کلیک کنید

نرم افزار های ریکاوری و بازیابی اطلاعات دیتابیس

برای ریکاوری اطلاعات پایگاه داده می‌‌توان از نرم افزارهای مختلف استفاده کرد. این نرم افزارها را می‌‌توانید از اینترنت دانلود کرده و آن را بر روی سیستم خود نصب کنید. نرم افزارهایی مانند نرم افزارهای :

Stellar Phoenix Access Database Repair v5.5.0.0 x64

Stellar Repair for MS SQL

استفاده از نرم افزار Stellar Repair for MS SQL

در اینجا نحوه استفاده از نرم افزار Stellar Repair for MS SQL برای ریکاوری و بازیابی اطلاعات دیتابیس بررسی می‌‌کنیم. برای استفاده از این برنامه به صورت زیر عمل کنید.

گام اول: دانلود و نصب برنامه

اولین کاری که باید انجام دهید، دانلود و نصب برنامه Stellar Repair for MS SQL استت سپس آن را اجرا کنید.

بعد از اجرای این برنامه پنجره‌ رابط کاربری اصلی آن باز می‌‌شود و می‌‌توانید با استفاده از کادر جستجو یا Browseدیتابیس خود را انتخاب کنید و یا به جستجوی فایل‌‌های MDF بپردازید.

گام دوم: در این مرحله مسیر و آدرس فایل‌‌هایی که می‌خواهید به صورت کامل نمایش داده شوند در کادر دیتابیس وارد می‌‌کنید. با انتخاب جستجو و انتخاب فایل‌ها و دیتابیس این کادر به صورت اتوماتیک پر می‌شود.

گام سوم: بعد ازاین که فایل‌ها بارگذازی شدند می‌‌توانید روی دکمه Repairکلیک کنید تا برنامه شروع به تعمیر و بازیابی اطلاعات دیتابیس کند.

گام چهارم: وقتی که روند تعمیر به صورت کامل و موفقیت‌آمیز به پایان رسید، فایل‌‌ها و داده‌‌های قابل بازیابی و ریکاوری را که شامل Tables و Defaults و Viewsو Data Typesو Synonymsو غیره می‌شود را به شما نمایش می‌دهد. در پنل سمت چپ می‌‌توانید ساختار آنها را مشاهده کنید.

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

گام پنجم: در این مرحله گزینه MDF را انتخاب کنید. این دکمه در بخش Save As قرار دارد.

گام ششم: بعد از این مرحله باکس MS SQL dialog برنامه Stellar Repair ظاهر خواهد شد. در این پنجره می‌توانید موارد زیر را انتخاب کنید.

۱- دیتابیس‌‌های جدید : (New Database) اگر می‌‌خواهید ریکاوری و بازیابی اطلاعات دیتابیس در new database ذخیره شود، این آپشن را انتخاب کنید.

۲- انتخاب آپشن Live Databaseاگر می‌‌خواهید دیتابیس های ریکاوری شده را در existing database ذخیره کنی، استفاده می‌شود.

ذخیره ریکاوری اطلاعات دیتابیس در دیتابیس جدید

برای ذخیره ریکاوری اطلاعات پایگاه داده در دیتابیس جدید به صورت زیر عمل کنید:

۱- بر روی دکمه دیتابیس جدید یا New Database کلیک کنید.

۲- کادر روبروی Server/Instance Name را پر کنید و یک مسیر مقصد برای صرفه‌جویی در دیتابیس انتخاب کنید.

۳- بر روی دکمه Saveبرای تعمیر فایل‌‌های پایگاه داده کلیک کنید. بعد از این که روند به صورت موفقیت‌آمیز به پایان رسید، پیغام File saved at the desired locationظاهر می‌‌شود. روی دکمه Ok کلیک کنید

. ۴-نرم افزار دیتابیس را در New Database ذخیره می‌‌کند و پنجره‌‌ای به صورت زیر برای شما نمایش داده می‌شود.

ذخیره ریکاوری اطلاعات دیتابیس در Live Database

برای ذخیره اطلاعات و داده‌‌های دیتابیس درLive Database به صورت زیر عمل کنید:

۱- روی دکمه رادیویی یعنی Live Database کلیک کنید.

۲- کادر Server/Instance Name را پر کنید.

۳- از لیست کشویی Existing Database را انتخاب کنید، جایی که می‌‌خواهید ریکاوری اطلاعات دیتابیس در آن ذخیره شود.

۴- بر روی دکمه ذخیره کلیک کنید تا برنامه شروع به ذخیره و تعمیر فایل‌های دیتابیس کند. وقتی که روند ذخیره به صورت کامل و موفقیت‌آمیز به پایان رسید، شما پیام File saved at the desired pathرا دریافت خواهید کرد.

۵- نرم افزار دیتابیس‌ها را در Live Database ذخیره خواهد کرد. در پنجره زیر آن را مشاهده می‌‌کنید.

استفاده از نرم افزار Stellar Phoenix Access Database Repair v5.5.0.0 x64برای ریکاوری دیتابیس

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

در بکاپ و ریکاوری دیتابیس در SQL Server به چه نکاتی باید توجه کنیم؟

در نسخه های جدید SQL Server ، برای مشخص کردن محل ذخیره ی جدیدی برای فایل های دیتابیس، باید در قسمت Files گزینه Relocate all files to folder را تیک بزنید و سپس یک محل جدید برای ذخیره ی داده ها و لاگ ها مشخص کنید.

اگر می خواهید پلنی برای بکاپ خودکار تنظیم کنید، پیشنهاد می شود به دلیل شلوغ بودن سرور، این کار را برای ساعات پایانی روز تعیین کنید.

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

برای انجام دادن عملیات بکاپ ‌گیری، کاربر باید دسترسی Sysadmin را به عنوان Server Roles و دسترسی ‌هایdb_owner و db_backupoperator را به عنوان Database Roles داشته باشد. برای این منظور در نرم ‌افزار SQL Server Management Studio پس از اتصال بهInstance به مسیر Security و سپس Login رفته و با راست کلیک بر روی یوزر مورد نظر گزینهProperties را انتخاب کنید و تنظیمات را مطابق زیر اعمال نمایید:

در قسمت Server Roles، دو گزینه Public و Sysadmin را تیک بزنید. سپس وارد قسمت User Mapping شده و در این قسمت گزینه های BinaDB، db_backupoperatorو db_owner را تیک بزنید.

انواع مدل های ریکاوری و تفاوت های آن ها

همان طور که مشاهده کردید در قسمت هایی از مقاله به مدل های مختلف بکاپ اشاره شد و گفتیم که بعدا به توضیح آن ها می پردازیم، ریکاوری هم مدل های مختلف دارد. عملیات گرفتن بکاپ و ریکاوری دیتابیس در SQL Server ، بر اساس مدل ریکاوری در آن دیتابیس انجام می گیرد. این مدل های مختلف ریکاوری برای به منظور کنترل و نگه داریTransaction Log ها ایجاد شده اند و بر مواردی مثل نحوه ذخیره تراکنش ها به صورت لاگ، اجازه بکاپ گیری به تراکنش ها و نوع عملیات بازگردانی اطلاعات کنترل دارند. به صورت کلی سه نوع مدل ریکاوری در SQL Server وجود دارد:

· مدل ریکاوری Full

· مدل ریکاوری Bulk-Logged

· مدل ریکاوری Simple

· مدل بازیابی کامل یا Full Recovery

تنظیم این مدل به گونه ای است که تا زمانی که از تراکنشی بکاپ گرفته نشده باشد، دیتابیس آن را پاک نمی کند. پس از گرفته شدن بکاپ به یکی از سه روش موجود است که دیتابیس اقدام به حذف تراکنش ها خواهد کرد. در صورت ایجاد اشکال در دیتابیس، روش Full Recovery Model بهترین عملکرد را در بازیابی اطلاعات ما دارد. در این مدل شما قادر خواهید بود در هنگام بازیابی اطلاعات دیتابیس، آن ها را به زمان و تاریخ مد نظرتان بازیابی کنید که به این ویژگی قابلیت Point In Time Recovery گفته می شود. حجم اطلاعاتی که در صورت بروز مشکل می توان بازیابی کرد، توسط مدت زمان طول کشیده برای بکاپ گیری از تراکنش ها تعیین می شود.

مدل بازیابی Bul-Logged

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

از دیگر تفاوت های این دو روش این است که در این مدل، قابیلت Point In Time Restore را نخواهید داشت. همچنین در این مدل ریکاوری، حجم فایل ها نسبت به مدل قبلی بسیار کمتر خواهد بود. معمولا از این مدل ریکاوری دیتابیس در SQL Server ، به صورت تک موردی و یا برای مدت زمان کوتاهی استفاده می شود نه یک راه دائمی. اگر از این مدل ریکاوری در سازمان خود استفاده می کنید باید دقت داشته باشید که این عملیات را در زمان بروز رسانی ثبت اطلاعات جدید توسط کاربران انجام ندهید، زیرا امکان از بین رفتن داده ها در حین این کار وجود دارد.

مدل بازیابی ساده و یا Simple Recovery Model

در این روش، هدف اصلی کاهش اندازه اطلاعات تراکنش ها در لاگ های ذخیره شده است. در این مدل SQL Server هر زمانی که دیتابیس به یک Transaction Checkpoint برسد، اطلاعات تراکنش ها را حذف می‌ کند، که در اصطلاح به اینکار Truncate کردن گفته می ‌شود. استفاده از این مدل ریکاوری سبب می ‌شود که فقط امکان بازگردانی اطلاعات از آن دیتابیس ‌هایی وجود داشته باشد که به روش ‌های Full و Differential از آن ها بکاپ ‎گیری شده است.

در حالت Simple Recovery Model قابلیت بازیابی اطلاعات به یک نقطه زمانی خاص یا همان Point In Time Restore وجود ندارد و تنها می ‌توان اطلاعات را به صورت کامل با استفاده از Full Backup و یا Differential Backup به زمانی برگرداند که Backupها ایجاد شده اند. در استفاده از این مدل ریکاوری دیتابیس در SQL Server ، با خالی شدن Transaction Logها، فضای بیشتری در هارد دیسک شما برای انجام فرآیندهای دیگر باز خواهد شد.

در حالت عادی تنظیمات بر روی حالت ریکاوری کامل قرار گرفته است. برای تغییر آن در SQL Server Management Studio وارد قسمت دیتابیس ها در Object Explorer شده، بر روی دیتابیس مورد نظرتان راست کلیک کرده و Properties را انتخاب کنید. در قسمت Options از صفحه باز شده امکان تغییر مدل ریکاوری وجود دارد.

نحوه بازنشانی دیتابیس از طریق Microsoft SQL Server Management Studio

  • جهت Restore دیتابیس، پس از ورود به محیط Microsoft SQL Server management Studio، بر روی گزینه Database کلیک نمائید.
  • بر روی دیتابیس مورد نظر راست کلیک نموده و از لیست موجود بر روی گزینه Tasks کلیک نمائید.
  • بر روی گزینه Restore کلیک نموده و سپس گزینه Database را انتخاب نمائید.
  • گزینه From Device را انتخاب نمائید.
  • جهت انتخاب مسیر قرار گرفتن فایل پشتیبان، روی این گزینه کلیک نمائید.
  • بر روی گزینه Add کلیک نمائید.
  • در این بخش، درایوی که فایل پشتیبان دیتابیس را روی آن ذخیره نموده اید، انتخاب نمائید.
  • جهت نمایش کلیه فایل ها، گزینه All Files را انتخاب نمائید.
  • از لیست موجود فایل Backup دیتابیس را انتخاب نمائید.
  • بر روی گزینه OK کلیک نمائید.
  • در این قسمت مسیر فایل Backup دیتابیس قابل مشاهده می باشد.
  • بر روی گزینه OK کلیک نمائید.
  • در قسمت مشخص شده، فایل پشتیبان Database را انتخاب نمائید.
  • بر روی گزینه Option کلیک نمائید.
  • با توجه به اینکه قبلا، بر روی نرم افزار Management Studio دیتابیس را ایجاد نموده اید، گزینه Overwrite the existing database را انتخاب نمائید تا فایل بکاپ جایگزین اطلاعات دیتابیس فعلی گردد.
  • در این قسمت دقت نمایید مسیر فیزیکی فایل های MDF و LDF دیتابیس به درستی تعیین شده باشند.چرا که فایل بکاپ مورد نظر جهت ریستور، دقیقا بر روی همان مسیر فیزیکی که در تصویر مشاهده می نمائید بازگردانی خواهد شد.
  • توجه / این مسیر میبایست در سیستم لوکال وجود داشته باشد و در صورت عدم تطابق، به مسیر قرار گرفتن فایلهای MDF و LDF دیتابیس ایجاد شده در سیستم داخلی، تغییر یابد.
  • بر روی گزینه OK کلیک نمائید.
  • اگر تمامی مراحل را به درستی طی کرده باشید، پیغام موفقیت آمیز Restore دیتابیس را مشاهده می نمائید.

جمع بندی

دیتابیس و یا به عبارت دیگر بانک اطلاعاتی به مجموعه اطلاعات با ساختار منظم گفته می‌‌شود. دیتابیس های اطلاعاتی معمولا قالبی برای دستگاه‌‌ها و رایانه‌ها قابل خواندن و قابل دسترسی باشند، ذخیره می‌‌شوند.

ذخیره اطلاعات و داده‌ها در دیتابیس از جمله روش‌‌های مطمئن و ایمن برای حفظ اطلاعات است. ولی با این حال، دیتابیس ها به دلایل مختلف ممکن است با مشکلاتی مواجه شوند و اطلاعات آن از بین برود.

از این رو، ریکاوری و بازیابی اطلاعاتی که در اثر اختلال و مشکل در دیتابیس از بین رفته‌‌اند، بهترین راه برای دسترسی مجدد به اطلاعات ذخیره شده در دیتابیس است. به این روش دیگر نگران از دست رفتن اطلاعات و داده های روی دیتابیس خود نباشید.

پایان

باتشکر از توجه شما

تهیه کننده :حسین حلاجی دانشجوی رشته علوم کامپیوتر

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


Dr.Maryam Hajiesmaeili

PhD of computer science from Kingston university of London

https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743