در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش Snapshot گرفتن از SQL سرور قسمت 1 : آشنایی با Snapshot

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

Snapshot گرفتن از SQL سرور

با معرفی مفهومی به نام Snapshot در تکنولوژی های امروزی مرتبط با کامپیوتر شما می توانید از لحظه فعلی یک عکس یا Snapshot بگیرید و هر موقع که دوست داشتید به زمانی بازگردید که این عکس یا Snapshot را گرفته اید. این مفهوم در SQL سرور هم وجود دارد ، شاید شما با نرم افزارهایی مثل VMware کار کرده باشید آنها هم قابلیت Snapshot گرفتن را دارند ، بنده در همین وب سایت یک مقاله در خصوص Snapshot گرفتن از اکتیودایرکتوری را نیز نوشته ام ، تقریبا دنیا دنیای Snapshot شده است. تمامی مفاهیم اصلی این قابلیت در نرم افزارهای مختلف یکی است و تا اسم Snapshot به گوش یک ITPRO می خورد تداعی کننده همین موضوع است.

SQL سرور Snapshot چیست ؟

مفهوم عکس را به خاطر دارید که ؟ شما در یک لحظه زمانی یک عکس یا بهتر بگوییم یک Image از چهره خود در زمان ثبت می کنید. در Database این مفهوم به این شکل است که شما با عکس گرفتن یا Snapshot گرفتن از Database خود در واقع یک Image کامل از داده ها و وضعیت کامل Database در لحظه فعلی ثبت می کنید و در قالب یک فایل جداگانه در کنار Database نگهداری می کنید. Snapshot ها کار کردن با Database ها را بسیار جالب می کنند و امکانات ویژه ای را در اختیار شما قرار می دهند.

شما می توانید بعد ها با استفاده از همین Snapshot هایی که از Database های خود گرفته اید ، داده های خود به همراه Database های خود و تمامی تنظیماتی که در لحظه ثبت Snapshot بر روی آنها وجود داشته است را به یکباره Restore کنید و در یک حالت عملیاتی از آن استفاده کنید. نمی خواهم از این لفظ استفاده کنم اما بارها دیده ام که از Snapshot به عنوان Backup هم استفاده می کنند که اصلا این مورد درست نیست ، اولین نکته در خصوص SQL Snapshot ها این است که آنها بصورت پیشفرض فقط خواندی یا Read Only هستند و بر خلاف فایل های Backup که آنها را می توانیم بصورت جداگانه در محل دیگری و حتی در کامپیوتر دیگری ذخیره کنیم .

ما نمی توانیم Snapshot ها را از کنار Database های اصلی ( Source Database) دور کنیم و آنها در کنار Database ها همیشه قرار دارند. شما می توانید از یک Database موجود روی SQL سرور خود چندین Snapshot در وهله های زمانی معین داشته باشید و هربار که دوست داشتید داده های خود را به وضعیتی که در آن Snapshot گرفته اید برگردانید. SQL Snapshot ها را تا زمانیکه بصورت دستی از روی سرور حذف نکنید بر روی سرور Database های شما وجود خواهند داشت.

Database های SQL Snapshot ها در سطح Page ها عملیاتی می شوند. Snapshot ها باتوجه به اینکه از فضاهای پراکنده سیستم استفاده می کنند در بدو ایجاد معمولا فضای بسیار کمی از سیستم عامل را به خود اختصاص می دهند. زمانیکه یک Page در Database اصلی یا همان Source Database تغییر کند این Page تغییر کرده در داخل دیتابیس Snapshot نیز کپی می شود و به مرور باعث افزاریش حجم فایل Snapshot خواهد شد. توجه کنید که اگر Page ای دستکاری نشده باشد و از درون Snapshot خوانده شود ، این Page در واقع از Source Database خوانده می شود به زبان دیگر تغییراتی که در Source Database انجام می شود کاملا بر روی Snapshot Database تاثیر متقابل دارند. Snapshot ها در مواقع بسیاری به کمک شما می آیند و مفید هستند :

  1. همانطور که اشاره کردیم Snapshot ها در حالت Read Only هستند و بهترین گزینه برای تهیه گزاش به حساب می آیند. تمامی فرآیند هایی که برای گرفتن گزارش می خواهیم انجام دهیم را براحتی می توانی با استفاده از Snapshot ها انجام بدهیم بدون اینکه به Source Database نیازی داشته باشیم. با اینکار Load کاری بر روی Database اصلی نیز کاهش پیدا می کند. همچنین به دلیل Read Only بودن این Database خیالمان از بابت تغییرات ناخواسته و تصادفی بر روی Database نیز راحت است.
  2. شما می توانید با استفاده از SQL Snapshot ها فرآیندهای تحلیلی و آنالیزهای داده های خود را در وهله های زمانی معین بصورت ثبت شده نگهداری کنید. برای مثال شما می توانید در انتهای هر سال کاری یک Snapshot کامل از Database های خود بگیرید و بعد از چند سال از گذشته این رویه می توانید روند رشد و تحلیل هایی که نیازمند دسترسی به داده های دقیق سالهای گذشته می باشد را در کنار هم قرار دهید و در نتیجه بهترین گزارش ها را دریافت کنید.
  3. Snapshot ها می توانند برای بازگردانی یا Restore کردن داده ها نیز مورد استفاده قرار بگیرند. شما می توانید داده های خود را دقیقا به زمانی بازگردانی کنید که در آن زمان Snapshot گرفته شده است . برای مثال شما می خواهید تغییراتی را بر روی Database های خود انجام دهید که ممکن است آنها را دچار اختلال کند ، برای اینکه بتوانید بدون استرس اطلاعات خود را مانند قبل به حالت عملیاتی بازگردانید کافیست قبل از انجام هر عملیاتی یک Snapshot از SQL دیتابیس های خود بگیرید.

یک نکته را فراموش نکنید ، هیچوقت کل دیتابیس های شما در Snapshot قرار نمی گیرد . در واقع SQL Snapshot یک اشاره گر یا Pointer به Database اصلی شما می باشد ، اگر شما از آن Query بگیرید متوجه می شوید که Query های شما به Database اصلی Refer داده می شود. اما این اتفاق تا زمانی رخ می دهد که Page های Database اصلی شما تغییر نکرده باشند ، اگر کوچکترین تغییری در Page های Database اصلی ایجاد شود ابتدا تمامی اطلاعات Page اصلی در Snapshot کپی خواهد شد و سپس داده های جدید در Database اصلی کپی می شوند.

این باعث می شود که Snapshot شما همیشه داده های اصلی را درون خود داشته باشد. توجه کنید که تا زمانیکه Snapshot ها فعال هستند شما نمی توانید Database اصلی را Drop کنید. برای اینکه بتوانید Database خود را Drop کنید ابتدا باید Snapshot های خود را حذف کنید و سپس Database را Drop یا حذف کنید. همانطور که قبلا هم اشاره کردیم Snapshot ها فضای زیادی را نمی گیرند زیرا فقط داده های که تغییر می کنند را درون خود نگه می دارند و اگر داده ای تغییر نکرده باشد آن را به Source Database متصل می کنند. در آموزش بعدی به شما روش ایجاد کردن یک SQL Snapshot ، حذف کردن داده ها از Database اصلی و در نهایت بازیابی اطلاعات از SQL Snapshot را آموزش خواهیم داد. ITPRO باشید.

نویسنده : محمد نصیری

منبع : جزیره بانک های اطلاعات وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#روش_استفاده_از_snapshot_در_sql #ُگرفتن_snapshot_از_sql #کاربرد_snapshot_در_sql #snapshot_گیری_از_sql #snapshot_گرفتن_از_sql_سرور #snapshot_چیست #استفاده_از_snapshot_در_sql #backup_گیری_از_sql #مفهوم_snapshot_در_sql
عنوان
1 آموزش Snapshot گرفتن از SQL سرور قسمت 1 : آشنایی با Snapshot رایگان
2 آموزش Snapshot گرفتن از SQL سرور قسمت 2 : استفاده از Snapshot رایگان
زمان و قیمت کل 0″ 0
3 نظر
حسن ضرابی

با سلام و خسته نباشید خدمت شما

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

ممنون می شوم من را راهنمایی کنید

با تشکر از شما

محمد نصیری

سوالتون رو لطفا از قسمت سوال بپرسید مطرح کنید با تشکر

soheil One

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

 تبریک میگم

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....