بازیابی فایل های دیتابیس
پایگاه داده چیست؟
در این مقاله ابتدا قصد داریم به تعریف پایگاه داده بپردازیم. دیتابیس یا پایگاه داده، مجموعهای سیستماتیک از دادههاست که قابلیت پشتیبانی از ذخیرهسازی الکترونیک و دستکاری داده ها را دارد. برای مثال فیس بوک نیاز دارد تا اطلاعات مربوط به اعضا، دوستان هرعضو، فعالیتهای هر عضو، پیامها، تبلیغات و اطلاعات بسیار دیگری را ذخیره، دستکاری و ارائه دهد. و لزوما نسخه پشتیبان از تمام این اطلاعات تهیه کند. تا درصورت نیاز به بازیابی فایل های دیتابیس، انجام این کار ازطریق نسخه پشتیبان، به مراتب سادهتر خواهد بود.
SQL چیست؟
SQL مخفف عبارت Structured Query Language می باشد. که یک زبان استاندارد برای برقراری ارتباط با وابستگیهای پایگاه داده است که برای insert، search، update و delete رکوردهای دیتابیس استفاده میشود. همچنین عملیات دیگری از قبیل بهینهسازی و نگهداری پایگاه های داده، از طریق SQL قابل انجام است.
سیستم های دیتابیس مانند هر سیستم کامپیوتری دیگری ممکن است دچار مشکل شود. اما مسئله اینجاست که داده های ذخیره شده بر روی آن، درهرزمان باید دردسترس و قابلاستفاده باشد. زمانی که دیتابیس با مشکلی مواجه شود باید قابلیت بازگردانی سریع داده ها را داشته باشد.
برای بک آپ گرفتن و ریکاوری داده ها به هنگام مواجه با مشکل ایجاد شده در دیتابیس،دو روش اتوماتیک و غیراتوماتیک وجود دارد. برای بازیابی اطلاعات از دست رفته، به دلیل مشکلات سیستم، ارورهای اجرایی، ویروس ها و غیره، از تکنیک های بازیابی دیتابیس استفاده میشود. بنابراین برای جلوگیری از به کاربردن تکنیک های بازیابی داده باید همواره از داده های خود نسخه بک آپ تهیه کرد و داده های خود را به روز نگه داریم.
انواع ریکاوری های پایگاه داده
هر پایگاه داده ای نیازمند یک ریکاوری مدل است. که مشخص میکند کدام نوع بک آپ نیاز است. و یا اینکه آیا عمل بازگردانی داده های از دست رفته که به دلیل مشکلات سخت افزاری و یا هر مشکل دیگری رخ داده است، توسط کاربر قابل انجام است یا خیر.
سه مدل کلی برای بازیابی دیتابیس داریم. دراینجا به شرح هرکدام میپردازیم:
ریکاوری ساده:
در این مدل، transaction log ها بدون دلیل پاک میشوند و سایز فایلها تغییر می کنند. به همین دلیل، تهیه بک آپ از logها کار دشواری خواهد بود. بکآپ ساده، از بکآپ transaction logها پشتیبانی نمیکند. اما از هر دو عملیات بک آپ گیری full و bulk_ligged پشتیبانی می کند.
عملیاتی که توسط این مدل پشتیبانی نمیشود عبارت اند از: Log shipping ، AlwaysOn or Mirroring و Point-in-time restore
در این مورد پایگاه داده فقط برای تست کردن و توسعه مورد استفاده قرار میگیرد.
داده ها در این مدل از نوع استاتیک هستند و ریکاوری point-to-time را ایجاد نمیکند.
ریکاوری کامل(full):
برخلاف ریکاوری ساده، این مدل از ریکاوری transaction log ها نیز پشتیبانی میکند.
در این مدل به دلیل وجود فایلهای گمشدهی آسیبدیده، هیچ بخشی از کار از دست نخواهد رفت. چرا که مسیر انجام کار در پایگاه داده نگه داشته میشود.
این مدل از ریکاوری point-to-time پشتیبانی میکند. به همین دلیل میتوان تا حد دلخواه عمل ریکاوری را انجام داد.
زمانی که پایگاه داده از این مدل استفاده کند، تعداد transaction log ها بسیار زیاد خواهد شد. این مسئله میتواند باعث از کار افتادن سیستم شود.
بنابراین برای جلوگیری از بروز چنین مشکلی، باید به طور منظم از transaction logها بک آپ تهیه کرد.
ریکاوری bulk logged:
این مدل از لحاظ بکآپ و transaction logها، شبیه به مدل فول ریکاوری میباشد.
این مدل عملکرد بسیار بالایی برای عملیات bulk دارد. سریع تر از مدلهای دیگر، دادههای bulk را وارد میکند.
فایل های transaction را در سایزهای کمتری نگهداری میکند.
همچنین از ریکاوری point-in-time را پشتیبانی نمیکند.
درصورت نیاز به ریکاوری transaction log ها، ممکن است داده ها از دست برود.