# پایگاه‌های داده > SQL Server > مدیریت دیتابیس (Database Administration) > Replication >  انواع replication

## rohollahmahmoodiany

سلام
1:در اکثر تاپیکهایی که در مورد replication بحث شده اقای ثباتی گفته اند که snapshot برای یک سناریوی خاص کاربرد دارد اگر ممکن است مصداق این کاربرد را بگویید.
2:تفاوت بین transactional و merge  در چیست؟منظور من بیشتر از نظر کاربرد است .

----------


## AminSobati

1) http://www.devarticles.com/c/a/SQL-S...000--Part-1/4/

2) زمانیکه یک جدول در Merge Publication قرار داره (یا به اون Subscribe میکنه)، صاحب سه Trigger برای ثبت انواع ویرایش میشه (Insert, Update, Delete). وقتی یکی از این اعمال روی جدول اتفاق بیافته، توسط Trigger در یک جدول دیگه این تغییرات ثبت میشه. اما در Transactional این لوگ فایل دیتابیس هستش که تغییرات رو ثبت میکنه و Transactionهایی که مربوط به جدول مورد نظر هستند، علامت میخورند که موقع Sync کردن، به Subscriber منتقل بشن. این مهمترین تفاوت ما بین عملکرد اونهاست. جزئیات و تشریح بسیار بسیار زیادی در BOL وجود داره!

----------


## rohollahmahmoodiany

با توجه به لینکی که اقای ثباتی داده اند :که امیدوارم به کمک دوستان این نوشته ها را ترجمه کنیم تا بتوانیم یک مقایسه خوب بین انواع replication داشته باشیم
موارد استفاده از snap shot :
1:Data/Db objects are static or do not change frequently 
2:Replicate Look Up tables that do not change frequently 
3:The amount of data to be replicated is small 
4:Users often work in disconnected mode, and are not always interested in the latest data
موارد استفاده از Transactional :
1:Replicating Database with rollup information, Database with regional, central sales or inventory database that is updated and replicated to different sites. 
2:Subscribers always need the latest data for processing.
و موارد استفاده از merge:
1:Site autonomy is very critical. 
2:Multiple subscribers need to update the data either at the same time or at different times and propagate the changes to the publisher

----------


## h_baqery

سلام 
snapshot دو طرفه تو 2005 اضافه شده؟ لطفا کاربردشم بگین.

----------


## AminSobati

> سلام 
> snapshot دو طرفه تو 2005 اضافه شده؟ لطفا کاربردشم بگین.


2000 هم داشت.
کاربرد: هر کاربردی که سایر حالتهای دو طرفه دارند! قابلیت ارجاع تغییرات از Subscriber به Publisher

----------


## h_baqery

ببخشید اقای ثباتی یعنی یک snapshot از pub میره به sub و sub تغییر می ده و دوباره یک snapshot از sub می ره به pub و بلعکس و هر دفعه یک snapshot کامل می سازه و هر دفعه جداول رو حذف می کنه یا مثل tran تغییرات رو می فهمه؟

----------


## AminSobati

تغییرات از Sub به Pub میره. اما Pub همیشه Snapshot میفرسته به Sub و تغییرات رو مانیتور نمیکنه. تغییرات فقط در سمت Sub مانیتور میشن.

----------


## rcharghani

سلام، اگه ممکنه واسه من مطلب فارسی راجع به service autonomy و service isolation در active directory پیدا کنین،واسه پروژم لازم دارم. مرسی

----------


## AminSobati

> سلام، اگه ممکنه واسه من مطلب فارسی راجع به service autonomy و service isolation در active directory پیدا کنین،واسه پروژم لازم دارم. مرسی


دوست عزیزم برای اینکه به پاسخ مناسبی برسید، باید پست خودتون رو در تالار مرتبط مطرح کنید

----------


## hjolany

مفاهیم اساسی Replication
مفاهيم Replication
در اين بخش مفاهيم اساسي Replication را خواهيد آموخت. ما نگاهي به روش publish-and-subscribe ، سه نوع Replication ، نحوه انجام Replication خواهيم انداخت.

اجزاء Replication
Microsoft SQL Server 2000 replication مبتني بر مفهوم publish-and-subscribe مي باشد که ابتدا درSQL Server 6 جهت پياده سازي مورد استفاده قرار گرفت .
Replication شامل سه مفهوم اصلی است : Publisher,Distributer,Subscriber .

يک Publisher سيستم پايگاه داده ايست که داده ها را براي Replication فراهم مي سازد. يک Distributer سيستم پايگاه داده ايست که شامل پايگاه داده توزيعی يا pseudodata هائي است که جهت محافظت و مديريت Replication  استفاده مي گردند. يک Subscriber سيستم پايگاه داده ايست که داده هاي Replicate شده را دريافت کرده و پايگاه داده Replicate شده را ذخيره مي نمايد. 

Publishers
Publisher شامل يک سيستم Microsoft Windows است که ميزبان يک پايگاه داده SQL Server مي باشد. اين پايگاه داده، داده ها را جهت Repliacate شدن برای ديگر سيستمها فراهم مي سازد. به علاوه پايگاه داده SQL Server اطلاع دارد که چه داده هائي تغيير کرده اند تا به صورت موثري Replicate شوند . Publisherهمچنين اطلاعاتي در رابطه با داده هائي که قرار است براي Replication تنظيم گردند دارد. بسته به نوع Replication اي که انتخاب شده است، Publisher برخي کارها را در Replication انجام می دهد. يک محيط Replicate شده می تواند شامل چند Subscriber باشد ولی هر مجموعه از داده ها که برای Replication تنظيم شده اند و يک Article ناميده مي شوند ، تنها می توانند يک publisher داشته باشند. داشتن تنها يک publisher برای مجموعه خاصی از داده ها به اين معنی نمي باشد که publisher تنها  عنصری است که می تواند داده ها را تغيير دهد ، بلکه Subscriber نيز می تواند داده ها را تغيير داده و حتی مجددا publish نمايد.

Distributors
سرورهائي که به عنوان Distributor می باشند Metadata ، History Data و ديگر اطلاعات را ذخيره می نمايند. در بيشتر مواقع، Distributor همچنين مسئول ارسال داده مربوط به Replication به Subscriber می باشد. نيازي نيست که Publisher و Distributor هر دو بر روی يک سرور باشند. در حقيقت شما از يک سرور اختصاصي به عنوان Distributor استفاده خواهيد نمود. به هر Publisher در زمان ايجاد يک Distributor تخصيص داده خواهد شد و هر Publisher تنها می تواند يک Distributor داشته باشد.

نکته : Metadata داده ايست راجع به داده ها که در Replication استفاده مي گردد تا از وضعيت عمليات Replication اطلاع داشته باشد . همچنين شامل داده ايست که توسط Distributor به ديگر اعضاء مجموعه Replication ارسال می گردد و نيز شامل اطلاعاتي در رابطه با ساختار و ويژگيهای داده ها، مانند نوع و يا طول ستونها مي باشد .

Subscribers 
Subscriber ها سرورهای پايگاه داده اي هستند که داده های Replicate شده را ذخيره کرده و به روز آوريها را دريافت مي کنند.
Subscriber ها می توانند به روز آوری کنند و به عنوان Publisher  برای ديگر سيستمها باشند. جهت انجام Replication بايد Subscriber را تنظيم کنيم تا داده ها را دريافت کند. 

برگرفته از سایت http://www.acclearn.com توسط خانم زهرا رجبی

----------


## hjolany

واع Replication

SQL Server سه نوع Replication را پيشنهاد مي دهد : snapshot ، transactional و merge . 


Snapshot Replication
Snapshot replication ساده ترين نوع Replication  است . در اين روش يک تصوير(کپی) از پايگاه داده به صورت مداوم گرفته شده و به Subscriber ها ارسال مي گردد. يکي از مزايای اين روش اين است که درگير overhead پيوسته بر روی Publisher ها و Subscriber ها نمي شود بدين معنا که نياز ندارد که Publisher ها مدام بر تغيير داده ها نظارت کنند و نيازی به انتقال مستمر داده ها به Subscriber ها نيست. عيب بزرگ اين روش اين است که پايگاه داده موجود بر روي Subscriber بر اساس آخرين Snapshot به روز است. در بسياری از موارد، Snapshot Replication کافی و مناسب است به عنوان مثال زمانيکه منبع داده اي گهگاه تغيير مي کند.اطلاعاتی مانند ليست تلفنها و ليست قيمتها به سادگي با Snapshot replication، مديريت می گردند. 

Transactional Replication
Transactional Replication  مي تواند جهت اعمال بر پايگاه داده مورد استفاده قرار گيرد. در اين روش تغييرات اعمال شده بر روی Article ها سريعا از Transaction Log گرفته شده و به Distributor ها ارسال مي گردند. اين روش تنها زماني مورد استفاده قرار مي گيرد که بخواهيم تمام سيستمهاي Replicate شده را به روز نگه داريم. اين روش نسبت به روش قبل  Overhead بيشتری بر روي سيستم ايجاد مي کند زيرا به تنهايي هر تراکنشی را که باعث تغيير داده ها در سيستم مي شود در سيستمهای Replicate شده اعمال می کند. Transactional Replication  نسبت به دو روش ديگر Replication، داده ها را به روز تر نگه می دارد. 

Merge Replication
اين روش مشابه روش Transactional می باشد که تغييرات اعمال شده بر روی Article ها را منتقل می کند. هرچند به جای ارسال انفرادی تراکنشهايی که تغييرات را  اعمال می کنند به صورت مداوم گروهی از تغييرات را انتقال می دهد. از اين جهت که داده ها را به صورت گروهی ارسال می کند مشابه روش Snapshot نيز می باشد.

برگرفته از سایت http://www.acclearn.com توسط خانم زهرا رجبی

----------


## hjolany

واع Replication

SQL Server سه نوع Replication را پيشنهاد مي دهد : snapshot ، transactional و merge . 


Snapshot Replication
Snapshot replication ساده ترين نوع Replication  است . در اين روش يک تصوير(کپی) از پايگاه داده به صورت مداوم گرفته شده و به Subscriber ها ارسال مي گردد. يکي از مزايای اين روش اين است که درگير overhead پيوسته بر روی Publisher ها و Subscriber ها نمي شود بدين معنا که نياز ندارد که Publisher ها مدام بر تغيير داده ها نظارت کنند و نيازی به انتقال مستمر داده ها به Subscriber ها نيست. عيب بزرگ اين روش اين است که پايگاه داده موجود بر روي Subscriber بر اساس آخرين Snapshot به روز است. در بسياری از موارد، Snapshot Replication کافی و مناسب است به عنوان مثال زمانيکه منبع داده اي گهگاه تغيير مي کند.اطلاعاتی مانند ليست تلفنها و ليست قيمتها به سادگي با Snapshot replication، مديريت می گردند. 

Transactional Replication
Transactional Replication  مي تواند جهت اعمال بر پايگاه داده مورد استفاده قرار گيرد. در اين روش تغييرات اعمال شده بر روی Article ها سريعا از Transaction Log گرفته شده و به Distributor ها ارسال مي گردند. اين روش تنها زماني مورد استفاده قرار مي گيرد که بخواهيم تمام سيستمهاي Replicate شده را به روز نگه داريم. اين روش نسبت به روش قبل  Overhead بيشتری بر روي سيستم ايجاد مي کند زيرا به تنهايي هر تراکنشی را که باعث تغيير داده ها در سيستم مي شود در سيستمهای Replicate شده اعمال می کند. Transactional Replication  نسبت به دو روش ديگر Replication، داده ها را به روز تر نگه می دارد. 

Merge Replication
اين روش مشابه روش Transactional می باشد که تغييرات اعمال شده بر روی Article ها را منتقل می کند. هرچند به جای ارسال انفرادی تراکنشهايی که تغييرات را  اعمال می کنند به صورت مداوم گروهی از تغييرات را انتقال می دهد. از اين جهت که داده ها را به صورت گروهی ارسال می کند مشابه روش Snapshot نيز می باشد.

برگرفته از سایت http://www.acclearn.com توسط خانم زهرا رجبی

----------

