هماهنگ کردن اطلاعات دو بانک اطلاعاتی-مقاله

آموزشی
مهر ۱۰, ۱۳۹۰
بازدید : 2342 بازدید

به روز رسانی همزمان و یکسان نمودن اطلاعات بانک های اطلاعاتی ، بالاخص در نرم افزارهای تحت شبکه یکی از مهمترین مباحث و در عین حال اجتناب نا پذیر می باشد. Replication راه حلی برای انتقال اطلاعات از یک بانک اطلاعاتی SQL sever به یک بانک اطلاعاتی دیگر از همان نوع و البته مستقر در یک محل و کامپیوتر دیگر است . این فرآیند توسط ایجاد یک کپی از اطلاعات موجود در مبدا و انتقال به مقصد صورت می گیرد . در این ارتباط اطلاعاتی اصطلاحا به کامپیو تر و بانک اطلاعاتی مبدا ، ناشر (publisher) و به کامپیوتر وبانک اطلاعاتی مقصد ، مشترک یا متعهد (subscriber) می گویند البته این نوع رابطه ، با وجود تنها یک ناشر اما یک یا چند مشترک امکان پذیر است . بدین معنی که اطلاعات یک بانک اطلاعاتی در مبدا قابل انتقال به چند مقصد مختلف است . از نسخه ۷ به بعد SQL severامکان تغییر اطلاعات در مقصد و انتقال آن به مبدا نیز وجود دارد . با این وصف ، این رابطه داده ای بین ناشر و مشترک ممکن است گاهی اوقات بر عکس شود و جای مبدا و مقصد در یک مقطع زمانی عوض شود . بدین ترتیب یک کامپیوتر مشترک یا مقصد می تواند گاهی اوقات نقش ناشر یا مبدا در همان رابطه بازی کند . این قابلیت جدیدMulti site update می گویند .
در SQL sever، سه نوع انتقال اطلاعات از طریق Replication وجود دارد. هر کدام از این سه راه ، سناریو ی خاصی برای انتقال اطلاعات از مبدا به مقصد و یا برعکس را مدیریت می کنند که در ادامه به بررسی آن ها می پردازیم .

هماهنگ کردن اطلاعات دو بانک اطلاعاتی

۱- انتقال اطلاعات به روش ادغام (Merge)
اینوع انتقال اطلاعات که از قابلیت Multi site هم پشتیبانی می کند ، زمانی مورد استفاده قرار می گیرد که استقلال داخلی هر بانک اطلاعاتی طرف یک رابطه ، به رسمیت شناخته می شود . بدین معنی که در یک رابطه انتقال اطلاعات ، هر کامپیو تر ضمن حف ظ ساختار بانک اطلاعاتی خود ، هم می تواند نقش ناشر را داشته باشد و نقش مشترک را ایفا نماید . در این حالت هر تغییری در جداول مشترک هر طرف دیگر اعمال می شود . نکته مهمی که در اینجا مطرح است این است که چطور طرفین این ارتباط متقابل باید با هم هماهنگ باشند و اولویت یکدیگر را به رسمیت بشناسند . به عنوان مثال فرض کنید در یک زمان واحد ، هر دو طرف بخواهند اطلاعاتی را در مورد یک جدول بانک اطلاعاتی به یکدیگر ارسال کنند . (یعنی بروز حالت تداخل ) این مشکل با استفاده از روش خاصی که هر نوع Replication مخصوص خودش دارد قابل حل است . به طور کلی در حالت ادغام ، یک پایگاه داده حایل میان ناشر و مشترک به عنوان توزیع گر ( Distributor) ساخته می شود . این پایگاه داده به نام Distributor در لیست پایگاه های داده ای ناشر قرار می گیرد و وظیفه ایجاد همزمانی (synchronization ) بین ناشر و مشترکین را ایفا می کند .
پایگاه داده توزیع گر هم می تواند در سمت ناشر و هم در یک کامپیوتر میانی دیگر (غیر از کامپیو تر های سمت مشترک ) قرار داشته باشد . این پایگاه داده ضمن ایجاد همزمانی در ردو بدل اطلاعات بین ناشر و مشترک ، این امکان را نیز فراهم می سازد تا مدیر سیستم بتواند اولویت و در واقع ارجحیت جهت انتقال اطلاعات در زمینه بروز تداخل را مشخص کند . این اولویت priority در زمان تعریف طرف های ناشر و مشترک یک Replication از نوع ادغام توسط مدیر سیستم تنظیم می شود .

۲- تصویر برداری از اطلاعات (Snapshot)
در این روش ابتدا یک تصویر کامل از آنچه که باید از سمت ناشر به سمت مشترک برود تهیه می شود . این تصویر هم شامل خود ساختار آنچه که منتقل می شود ( مثلا ساختار یک جدول ) و هم شامل اطلاعات داخل آن است . در ابتدای کار، تصویرمذکور عینا به مشترک فرستاده می شود . روند و توالی ارسال این تغییرات هم همانند حالت قبل (ادغام ) طی یک فاصله زمانی مشخص مثلا ساعتی یک بار که توسط مدیر سیستم قابل تنظیم است ، انجام می گیرد .
یکی از مزایای این روش نسبت به حالت ادغام ، این است که زمان کمتری از وقت مدیر سیستم را جهت پیکر بندی و تنظیم عمل انتشار صرف می کند و به دلیل اینکه در ابتدای عمل انتشار، خود ساختار نیز عینا به مشترک منتقل می شود ، از قابلیت اطمینان بیشتری برخوردار است . به طور کلی کاربرد این نوع انتقال اطلاعات ، زمانی است که مدیر سیستم قصد ایجاد یک ارتباط ساده و یکطرفه ولی مطمئن دارد

۳- انتقال بر اساس فرآیند (Transactional)
این روش یکی از بهترین و قابل کنترل ترین روش های انتقال است. در این روش هر تغییری که در جداول ناشر صورت می گیرد ، به صورت یک دستور SQL درآمده که تحت یک فرآیند واحد هم در سمت کلیه مشترکین اجرا می شود . در این صورت اگر به طور مثال یکی از مشترکین به دلیلی با اشکال مواجه شده و تغییر مورد نظر در آن انجام نشود ، این تغییر نه در خود ناشر و نه در هیچ کدام از مشترکین دیگر نیز انجام نخواهد شد ، بدین معنی که یا یک تغییر در اطلاعات برای تمام کامپیوتر ها اعم از ناشر و کلیه مشترکین انجام می شود و یا این که برای هیچ کدام انجام نخواهد شد در این حالت هم یک پایگاه داده به واسطه به نام Distribution نقش دریافت وارسال فرآیند را به طرف مشترک ایفا می کند . در واقع روش فرآیند ، در مقایسه با دو روش قبل از حالت به هنگام(online) بودن بیشتری برخورداراست . یعنی این که هر فرآیند و هر دستور در همان لحظه که می خواهد در ناشر اجرا شود ، به واسط فرستاده شده و سپس در یک زمان واحد در کلیه مشترکین نیز انجام می شود و در واقع زمان تغییر اطلاعات در ناشر و در مشترکین تقریبا یکسان است . همچنین در این روش تداخلی هم پیش نمی آید . چون هر تغییری ابتدا باید به واسط فرستاده شود و از آن جا به جاهای دیگر ارسال شود و واسط هم آن ها را در یک صف اولویت قرار داده و به ترتیب انجام می دهد . نتیجه این نوع انتقال اطلاعات ، داشتن چند پایگاه داده کاملا یکسان و به هنگام در مکان های مختلف است که همگی از یک ناشر ، اطلاعات مورد نظر را دریافت می کنند .

Like
امتیاز :
بدون رای!
مدیر سامانه
مدیر سامانه Mr.Code هستم . به صورت تخصصی در زمینه برنامه نویسی سازمانی و طراحی وبسایت و پرتال و طراحی اپلیکیشن اندروید فعالیت دارم .
همراه ما باشید در اینستاگرام رضا سورس صفحه اینستاگرام
دیدگاهتان را بنویسید

چهار × چهار =

عضویت در خبرنامه رضا سورس

تمامی اطلاعات محفوظ است!