سلام به شماهمراهای خوب و نازنین، امیدوارم که حالتون خوب بوده باشه و اموزشهای ما برایتان مفید واقع شده باشد.

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

همتاسازی (replication)، راه حلی مناسب برای مشکل انتقال داده ها بین سرورهای همیشه متصل است. با استفاده از ویزارد همتاسازی می توانید مکان شناسی (topology) همتاسازی را براحتی پیکربندی و مدیریت کنید. این مقاله به شما چگونگی پیکربندی توپولوژی سرورهای همیشه متصل را نشان می دهد.
آنچه یاد خواهید گرفت

این مقاله چگونگی منتشر کردن داده ها از یک بانک اطلاعاتی به بانک اطلاعاتی دیگر را با استفاده از همتاسازی مبادله ای نشان می دهد. بخش اول چگونگی استفاده از SQL Server Management Studio را برای ایجاد یک publication نشان می دهد. بخش های بعدی چگونگی ایجاد و اعتبار سنجی یک subscription و چگونگی اندازه گیری latency را نشان می دهند.
پیش نیازها

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

برای استفاده از این مقاله، سیستم شما باید اجزای زیر را داشته باشد:
در سرور publisher

هر نسخه ای از SQL Server 2005، به غیر از SQL Server 2005 Express Edition یا SQL Server Compact Edition. ایت نسخه ها نمی توانند publisherهای همتاسازی باشند.

بانک اطلاعاتی نمونه AdventureWorks. برای بالا بردن امنیت، این بانک های اطلاعاتی بطور پیش فرض نصب نمی شوند.
در سرور subscriber

هر نسخه ای از SQL Server 2005، به غیر از SQL Server 2005 Compact Edition. این نسخه نمی تواند در همتاسازی یک subscriber باشد.

نکته: همتاسازی بطور پیش فرض در SQL Server Express نصب نمی شود. publisher و subscriber می توانند یک نمونه از SQL Server 2005 را share کنند.

نکته: در SQL Server Management Studio، باید با استفاده از یک login که عضوی از role ثابت سرور sysadmin است، به publisher و subscriber متصل شوید.
بخش اول: publish کردن داده ها با استفاده از Transactional Replication

در این بخش، با استفاده ازSQL Server Management Studio ، یک publication مبادله ای ایجاد خواهیم کرد تا یک subset فیلتر شده از جدول Product در بانک اطلاعاتی نمونه AdventureWorks، منتشر (publish) کنیم. همچنین لوگین SQL Server، را که توسط Distribution Agent استفاده می شود، به لیست دسترسی (access list) اضافه خواهیم کرد.
چگونگی ایجاد یک publication و تعریف articleها

در SQL Server Management Studio، به publisher متصل شوید و سپس node سرور را بسط دهید.
پوشه Replication را گسترش دهید، روی پوشه Local Publications کلیک راست و سپس روی New Publication کلیک کنید. ویزارد Publication Configuration شروع می شود.
روی صفحه Publication Database، گزینه AdventureWorks2008R2 را انتخاب و سپس روی Next کلیک کنید.
روی صفحه Publication Type، گزینه Transactional publication را انتخاب و سپس روی Next کلیک کنید.
روی صفحه Articles، ند Tables را بسط دهید، چک باکس Product را انتخاب کنید، و سپس Product را بسط دهید و علامت تیک ListPrice و StandardCost را بردارید. روی Next. کلیک کنید.
روی صفحه Filter Table Rows، روی Add کلیک کنید.
در پنجره Add Filter، روی ستون SafetyStockLevel کلیک کنید، روی فلش راست کلیک کنید تا آن ستون به عبارت WHERE کوئری فیلتر اضافه شود، و عبارت WHERE را بشرح زیر اصلاح کنید:

WHERE [SafetyStockLevel] < 500

۱٫ روی OK و سپس روی Next کلیک کنید.

چک باکس Create a snapshot immediately and keep the snapshot available to initialize subscriptions را انتخاب و سپس روی Next کلیک کنید.
روی صفحه Agent Security، تیک Use the security settings from the Snapshot Agent را بردارید.
روی Security Settings برای Snapshot Agent کلیک کنید، عبارت \repl_snapshot را در باکس Process account وارد کنید، پسوردی برای این اکانت تعیین کنید، و سپس روی OK کلیک کنید.
مرحله قبل را تکرا کنید تا repl_logreader as the process account for the Log Reader Agent را تنطیم کنید، سپس روی Finish کلیک کنید.
روی صفحه Complete the Wizard، عبارت AdvWorksProductTrans را در باکس Publication name وارد کنید و سپس روی Finish کلیک کنید.
بعد از اینکه publication ایجاد شد، روی Close کلیک کنید تا ویزارد تمام شود.

اضافه کردن Distribution Agent login به PAL

در SQL Server Management Studio، به publisher متصل شوید و سپس node سرور را بسط دهید و سپس پوشه Replication را بسط دهید.
در پوشه Local Publications، روی AdvWorksProductTrans کلیک راست وسپس روی Properties کلیک کنید. پنجره Publication Properties نمایش داده می شود.
صفحه Publication Access List را انتخاب و روی Add کلیک کنید.
در پنجره Add Publication Access، گزینه \repl_distribution را انتخاب و OK کنید.

تا اینجا، شما transactional publication را با موفقیت ایجاد کرده اید. در بخش بعدی، به این پابلیکیشن، subscribe خواهید شد.
بخش دوم: ایجاد Subscription در Transactional Publication

در این بخش، با استفاده از SQL Server Management Studio، یک subscription ایجاد خواهیم کرد.
چگونگی ایجاد subscription

در SQL Server Management Studio، به publisher متصل شوید و سپس node سرور را بسط دهید و سپس پوشه Rplication را بسط دهید.
در پوشه Local Publications، روی پابلیکیشن AdvWorksProductTrans کلیک راست کنید، و سپس روی New Subscriptions کلیک کنید. ویزارد New Subscription شروع می شود.
روی صفحه Publication page، گزینه AdvWorksProductTrans را انتخاب و سپس روی Next کلیک کنید.
روی صفحه Distribution Agent Location، گزینه Run all agents at the Distributor را انتخاب و سپس روی Next کلیک کنید.
روی صفحه Subscribers، اگر نام نمونه Subscriber نمایش داده نمی شود، روی Add Subscriber، و Add SQL Server Subscriber کلیک کنید، نام subscriber نمونه را در پنجره Connect to Server وارد کنید، و سپس روی Connect کلیک کنید.
روی صفحه Subscribers، نام subscriber نمونه را انتخاب کنید، و گزینه را از زیر Subscription Database انتخاب کنید.
در پنجره New Database، عبارت ProductReplica را در باکس Database name وارد و OK کنید. سپس روی Next کلیک کنید.
در پنجره Distribution Agent Security، روی دکمه ellipsis (…) کلیک کنید، عبارت \repl_distribution را در باکس Process account وارد کنید، پسورد این اکانت را وارد و OK کنید. سپس روی Next کلیک کنید.
روی Finish کلیک کنید تا مقدارهای پیش فرض روی صفحات باقیمانده را قبول کنید و ویزارد را تمام کنید.

تنظیم کردن پرمیشن های بانک اطلاعاتی در Subscriber

در SQL Server Management Studio، به subscriber متصل شوید، و به ترتیب Databases، ProductReplica، و Security را بست دهید، سپس روی Users کلیک راست و New Userرا انتخاب کنید.
در صفحه General، عبارت \repl_distribution را در باکس User name وارد کنید. روی دکمه ellipsis (…) و سپس Browse کلیک کنید، گزینه \repl_distribution را انتخاب و به ترتیب روی OK، Check Names، و OK کلیک کنید.
در Database role membership، گزینه db_owner را انتخاب کنید و سپس OK کنید تا کاربر ایجاد شود.

مشاهده وضعیت همزمان سازی subscription

در SQL Server Management Studio، به publisher متصل شوید و سپس node سرور را بسط دهید و سپس پوشه Replication را بسط دهید.
در پوشه Local Publications، پابلیکیشن AdvWorksProductTrans را بسط دهید، در بانک اطلاعاتی ProductReplica، روی subscription کلیک راست کنید، و سپس روی View Synchronization Status را کلیک کنید. وضعیت کنونی هوزمان سازی نمایش داده می شود.
اگر subscription زیر AdvWorksProductTrans نمایش داده نمی شود، دکمه F5 را فشار دهید تا لیست ریفرش شود.

در این بخش، یک subscription به transactional publication ایجاد کردید. از آنجاییکه Distribution Agent برای این subscription بطور مستمر run می شود، subscription هنگام ایجاد شدن، شروع (initialized) نمی شود.
بخش سوم: اعتبار سنجی subscription و اندازه گیری latency

در ابن بخش، از tracer tokens برای تایید همتا سازی تغییرات در subscriber، و تعیین latency استفاده خواهیم کرد.
insert کردن یک tracer token و مشاهده اطلاعات روی token

در SQL Server Management Studio، به publisher متصل شوید و سپس node سرور را بسط دهید و سپس پوشه Replication را بسط دهید، سپس روی Launch Replication Monitor کلیک کنید. Replication Monitor نمایش داده می شود.
یک گروه Publisher را در پنل چپ بسط دهید، نمونه Publisher را بسط دهید. و سپس روی پابلیکیشن AdvWorksProductTrans کلیک کنید.
روی تب Tracer Tokens کلیک کنید.
روی Insert Tracer کلیک کنید.
زمان باقیمانده برای tracer token را در ستون های زیر مشاهده کنید: Publisher to Distributor, Distributor to Subscriber، و Total Latency. مقدار Pending نشان می دهد که token به نقطه معین شده نرسیده است.

در این بخش، با موفقیت از tracer tokens برای تایید همتاسازی داده ها از Publisher به Subscriber استفاده کردید. همچنین می توانید داده ها را در جدول Product در پابلیشر، insert، update، و delete کنید، و جهت مشاهده این تغییرات بعد از اینکه همتاسازی شدند، جدول Product را در Subscriber، کوئری کنید.