برای راهاندازی این سرویس نیاز به سه سرور داریم تا بتوانیم این سرویس را پیادهسازی کنیم، در شکل ۴۴ سه سرور را برای این کار مشاهده میکنید، سرور SQLServer که سرور اصلی میباشد و نقش Publisher & Distributor را بازی میکند، در سرور DB-2 و DB-3 نقش Subscriber را دارند، برای اینکه سرورها را ایجاد کنید پیشنهاد من سرور مجازی است تا هم نحوهی ایجاد و کار با آن آسان باشد و هم نحوهی پشتیبانگیری آن سریع و بدون مشکل انجام شود.
شکل ۴۴ سناریو Replication
در ادامه و در سناریو شکل ۴۴ میخواهیم که سرور SQLServer هرگونه تغییری که در جدول مرتبط با لیست کاربران برتر ایجاد میشود را با جداول موجود روی سرورهای DB2 و DB3، Replicate کند؛ بنابراین باید تنظیمات لازم برای توزیع و انتشار (Distribution و Publication) را روی سرور SQLServer و تنظیمات مربوط به اشتراک (Subscription) را روی سرورهای DB2 و DB3 انجام دهیم.
اول از هر چیز باید در نظر داشته باشیم که موقع نصب SQL سرور، قابلیت Replication را نیز فعال کنیم، برای همین بهمانند شکل ۴۵ باید تیک گزینهی SQL Server Replication را انتخاب و آن را نصب کنید، در هر سه سرور باید این کار را انجام دهید.
شکل ۴۵
بعد از فعالکردن سرویس SQL Server Replication باید بهمانند شکل ۴۷ وارد SQL Server Configuration Manager شوید و سرویس SQL Server Browser را فعال کنید، این کار را باید در همهی سرورها انجام دهید، البته برای اینکه این سرویس را فعال کنید باید بر روی آن کلیک راست کنید و گزینهی Properties را انتخاب کنید.
شکل ۴۷
در شکل ۴۸ باید وارد تب Service شوید و گزینهی Start Mode را در حالت Automatic قرار دهید و ok کنید.
شکل ۴۸
در ادامه بهمانند شکل ۴۹ باید سرویس را Start کنید.
شکل ۴۹
برای اینکه همزمان به هر سه سرور دسترسی داشته باشید باید SQL Server Management Studio را اجرا کنید و بهمانند شکل ۵۰ دو سرور DB2 و DB3 را با کلیک بر روی Connect اضافه کنید.
شکل ۵۰
در شکل ۵۱ باید سرور DB2 را وارد کنید و بر روی Connect کلیک کنید، توجه داشته باشید دقیقاً همین کار را برای سرور DB3 انجام دهید.
شکل ۵۱
همانطور که در شکل ۵۲ مشاهده میکنید هر سه سرور به لیست اضافه شده است و حالا میتوانیم عملیات Replication را آغاز کنیم.
شکل ۵۲
پیکربندی بخش توزیع یا Distribution
در ابتدای کار به سراغ Distribution بر روی سرور SQLServer میرویم. برای این منظور روی گزینهی Replication در کنسول مدیریتی راست کلیک کرده و عبارت Configure Distribution را انتخاب کنید.
شکل ۵۳
بهمانند شکل ۵۴ سرور توزیعکننده یا Distributor را انتخاب میکنیم که میتوان خود سرور فعلی را انتخاب کرده و یا سرور دیگری را بهعنوان توزیعکننده در نظر بگیریم. فقط باید در نظر داشته باشیم که پیکربندی Distribution روی سرور دیگر که آن را بهعنوان توزیعکننده انتخاب میکنیم، از قبل انجام شده باشد. در اینجا ما سرور فعلی را انتخاب و بر روی Next کلیک کنید.
شکل ۵۴
در شکل ۵۵ گزینهی اول را برای سرویس Agent انتخاب کنید تا سرویس بهصورت اتوماتیکالی اجرا شود.
شکل ۵۵
شکل ۵۶ مربوط به تعیین مسیر فولدری است که Snapshotهای گرفته شده از تغییرات در آن کپی میشوند. برای اینکه Distribution agent و Merge agentهای اجرا شده روی Subscriberها بتوانند به Snapshotهای publicationها دسترسی داشته باشند، در این قسمت باید مسیر فولدر در نظر گرفته شده برای ذخیرهی Snapshotها را معرفی کنیم. در واقع باید آدرس شبکهی پوشهی نگهدارندهی snapshotها را مشخص کنیم. مسیر لوکال و پیشفرضی که در این قسمت قرار دارد، pull Subscriptionهای ایجاد شده سمت مشترکین را پشتیبانی نمیکند چراکه این مسیر یک مسیر تحت شبکه نمیباشد و برای ایجاد pull Subscription باید یک مسیر شبکهای را در اینجا معرفی کنیم که به پوشهی Snapshotها اشاره کند.
شکل ۵۶
در شکل ۵۸، نام پایگاه دادهای Distribution و نیز محل ذخیرهسازی آن را مشخص میکنیم. این پایگاهداده برای دادهایی با پسوند (.MDF) و برای Log فایلها با پسوند (.ldf) پیکربندی میشود. پایگاه دادهای مربوط به Distribution تغییرات ایجاد شده در دادهها را در transactional publication ذخیره میکند تا زمانی که مشترکین یا همان Subscriberها بتوانند آپدیت شوند. همچنین این دیتابیس اطلاعات را برحسب تاریخ برای Snapshot publication و merge publication ذخیره میکند. مسیری که در اینجا در نظر میگیریم حتماً باید یک آدرس لوکال باشد و با یک drive letter و علامت دو نقطه شروع شود (بهعنوانمثال C:) و در اینجا استفاده از Drive letterهای map شده و مسیرهای تحت شبکه غیرمجاز میباشد.
شکل ۵۸
سرور و یا سرورهایی که قرار است بهعنوان ناشر و یا همان publisher فعالیت کنند را در شکل ۵۹ مشخص میکنیم. این سرور و یا سرورها از Distributor برای انجام توزیع انتشارات و یا publicationهای خود استفاده میکند. بهصورت پیشفرض سرور فعلی بهعنوان publisher در نظر گرفته میشود که بسته به ساختار پایگاههای داده و سناریوی مورد نظر با کلیک بر روی گزینه Add میتوانیم سرورهای دیگری نیز برای این بخش در نظر بگیریم.
شکل ۵۹
در این قسمت چگونگی خاتمه یافتن تنظیمات انجام شده را مشخص میکنیم. بهصورت پیشفرض گزینهی Configure distribution انتخاب شده است.
شکل ۶۰
در نهایت در صورت عدم بروز مشکل، با نمایش عبارت success در قسمت وضعیت، انجام موفقیتآمیز تنظیمات را در شکل ۶۱ مشاهده خواهیم کرد.
شکل ۶۱
پیکربندی نشریه یا Publication
انجام تنظیمات این بخش نیز روی سرور اول (SQLServer) صورت خواهد گرفت چراکه طبق سناریو این سرور هر دو نقش ناشر و توزیعکننده را ایفا میکند؛ بنابراین بهمانند شکل ۶۲ روی گزینه Local Publication در کنسول مدیریتی راست کلیک کرده و گزینهی New Publication را انتخاب میکنیم.
شکل ۶۲
در شکل ۶۳، لیستی از پایگاههای دادهی دربردارندهی دادهها و یا اشیایی که قصد انتشار آنها را داریم نمایش داده میشود. در اینجا لیست همهی دیتابیسهای موجود را مشاهده میکنید، بر روی Next کلیک کنید.
شکل ۶۳
در شکل ۶۴ انواع نشریه و یا همان publicationها نمایش داده میشود و درواقع بخشی است که در آن نوع replication مشخص میشود، در این قسمت گزینهی Transactional publication را انتخاب کرده و روی Next کلیک میکنیم.
شکل ۶۴
در شکل ۶۵ نیز باید جداول و دادههای مورد نظر که قرار است Replication شود را از لیست انتخاب کنید.
شکل ۶۵
در شکل ۶۵ با کلیک روی گزینهی Article properties میتوانیم جزئیات توضیحات مرتبط با جدولی را که انتخاب کردیم و یا توضیحات مربوط بهتمامی اشیاء موجود در Article را مشاهده کرده و در صورت نیاز تغییراتی را در آن ایجاد کنیم. در این جا ما همان تنظیمات پیشفرض را دستنخورده باقی میگذاریم.
در شکل ۶۶ باید از عملیات فیلترینگ استفاده کنیم، از جمله دلایل استفاده از فیلتر میتوان به، بهحداقلرساندن دادههای ارسالی روی شبکه و کاهش مقدار فضای ذخیرهسازی برای یک مشترک را یادآور شد. در این بخش از تنظیمات با ایجاد فیلترینگ میتوانیم به حذف ردیفهایی که به آنها نیاز نداریم از جدول منتشر شده بپردازیم. یک مثال ساده برای درک فیلترکردن این است که مثلاً نام و نام خانوادگی کاربران برتر تغییر نخواهد کرد بنابراین نیاز به انتشار مجدد آنها نداریم. در این تصویر با کلیک روی گزینه Add صفحهی مربوط به ایجاد فیلترینگ نمایش داده میشود. در این سناریو ما هیچگونه فیلتری را در نظر نگرفته و با کلیک روی Next به مرحلهی بعدی میرویم.
شکل ۶۶
در شکل ۶۷ تعیین میکنیم که چه زمانی Snapshot agent اجرا شود. مشترکین به واسطهی snapshotهای داده و طرحهای یک نشریه مقداردهی میشوند و این Snapshot agent است که snapshot را ایجاد میکند. در این تصویر دو گزینه وجود دارد اولین گزینه بیانگر ایجاد یک Snapshot بهصورت فوری و در دسترس نگهداشتن آن برای مقداردهی اولیه به مشترکین است و گزینهی دوم شرایط زمانبندی را برای فعالیت Snapshot agent فراهم میآورد. گزینهی اول را مارکدار میکنیم.
شکل ۶۷
شکل ۶۸ مربوط با مشخصکردن حساب کاربری برای هر Agent میباشد که اجرا و تنظیمات ارتباطات آن تحت این Account انجام خواهد شد. برای انجام این تغییرات روی گزینهی Security Settings کلیک میکنیم. در شکل ۶۹، گزینهی Run under the SQL Server Agent account را مارکدار میکنیم. اگر سرویس SQL Server Agent سطح دسترسی و مجوزهای لازم را برای دسترسی به پوشهای که برای نگهداری Snapshotها انتخاب کردهایم نداشته باشد، باید روشی دیگر از احراز هویت حساب کاربری را برای فراهمآوردن این دسترسی در نظر بگیریم. در نهایت تنظیمات صورتگرفته همانند کادر کوچک مشخص شده در صفحهنمایش داده خواهند شد.
شکل ۶۸
شکل ۶۹
در شکل ۷۰ چگونگی پایان یافتن تنظیمات انجام شده را مشخص میکنیم. بهصورت پیشفرض گزینهی Create the publication مارکدار شده است.
شکل ۷۰
در شکل ۷۱، خلاصهای از تنظیماتی که انجام دادیم، نمایش داده میشود. نام مورد نظر برای نشریه یا publicationای را که ایجاد کردهایم در این بخش مشخص وارد و در نهایت بر روی گزینهی Finish کلیک میکنیم.
شکل ۷۱
پس از پیکربندی موفقیتآمیز Publication، میتوانیم همانند تصویر Publication ایجاد شده را در بخش Replication کنسول مدیریتی مشاهده کنیم.
شکل ۷۲
همانطور که قبلاً گفتیم در اینجا هر سه سرور موجود در سناریو را از طریق کنسول Management Studio مدیریت میکنیم. در سرور دوم یعنی DB2، بهمانند شکل ۷۳، بر روی Local Subscription زیرمجموعهی Replication این سرور در کنسول مدیریتی راست کلیک کرده و گزینهی New Subscription را انتخاب میکنیم.
شکل ۷۳
همانطور که در شکل ۷۴، نشانداده شده است باید سرور publisher و یا نشریهای را که میخواهیم Subscriptionها را برای آن ایجاد کرده، تعیین کنیم. پس در پنجره publisher از قسمت نوار کشویی گزینهی Find SQL Server Publisher را بازکرده و پس از انتخاب سرور مورد نظر (در اینجا SQLServer) نام publication ایجاد شده در لیست نمایان خواهد شد.
شکل ۷۴
در شکل ۷۵، باید محلی که Distribution Agentها روی آن اجرا میشوند را مشخص کنیم. برای این منظور دو گزینه پیشروی ماست: اجرای همهی Agentها روی Distributor یا Push subscription و اجرای هر Agent روی subscriber خود یا Pull subscription . در اوایل این فصل در مورد replication به توضیح pull\Push Subscriptionها پرداختیم برحسب شرایط میتوان یکی از این دو نوع را برای Agentها در نظر گرفت. در قسمت قبل ما یک مسیر لوکال را برای دسترسی به پوشهی Snapshotها تعیین کردیم و میدانیم آدرس لوکال Pull Subscription را پشتیبانی نمیکند، بنابراین در اینجا گزینهی اول یعنی Push Subscription را انتخاب میکنیم.
شکل ۷۵
در این قسمت باید subscriberها یا مشترکین و دیتابیس آنها را مشخص کنیم. بهصورت پیشفرض ویزارد سروری را که تنظیمات در حال حاضر روی آن صورت میگیرد بهعنوان یکی از مشترکین انتخاب میکند. با کلیک روی گزینهی Add SQL Server Subscriber میتوانیم سرورهای دیگری را بهعنوان مشخص کنیم. در سناریو ما دو Subscriber وجود دارد: سرورهای DB2 و DB3. پس از انتخاب این سرورها حال نوبت به تعیین دیتابیسی که قرار است عمل Replicate با آنها صورت گیرد، میباشد. بدین منظور بهمانند شکل ۷۶ با کلیک روی نوار کشویی مقابل سرورهای انتخابی، دیتابیس مورد نظر را برمیگزینیم. اگر دیتابیسی را روی سرور برای Replication در نظر نگرفته باشیم، باتوجهبه شکل ۷۶ و کلیک روی گزینهی New Data base نیز میتوان دیتابیس مورد نظر را در لحظه ایجاد کرد.
شکل ۷۶
در شکل ۷۷ باید دیتابیس مربوطه که در قسمت قبلی انتخاب کردیم را ایجاد کنید و بر روی OK کلیک کنید.
شکل ۷۷
همانطور که در شکل ۷۸ مشاهده میکنید دیتابیس مورد نظر ایجاد شده است، و در ادامه باید سرور سوم یعنی FB3 را هم به لیست اضافه کنید و برای آن هم دیتابیس DB22 را ایجاد کنید، برای این کار بر روی Add Subscriber کلیک کنید و گزینهی Add SQL Server Subscriber را انتخاب کنید.
شکل ۷۸
همانطور که در شکل ۷۸ مشاهده میکنید سرور DB3 هم به لیست اضافه شده و دیتابیس مورد نظر را هم برای آن ایجاد کردیم.
شکل ۷۸
در شکل ۷۸ باید آپشنهای مرتبط با ارتباطات و پردازشها را برای Distribution Agent مشخص کنیم، بر روی گزینهی مورد نظر کلیک کنید.
شکل ۷۸
.برای تعیین حساب کاربری که Distribution Agent تحت آن اجرا شده و عمل همگامسازی با مشترکین را انجام خواهد داد بهمانند شکل گزینهی Run the SQL Server Agent Service Account را انتخاب کرده و برای برقراری ارتباط با Distributor و Subscriber نیز گزینهی By impersonation the process account را برمیگزینیم. این تنظیمات باید برای هر دو سرور انتخاب شده بهعنوان Subscriber، بهصورت مجزا انجام شود.
شکل ۷۹
پس از انجام تنظیمات بالا نتیجهی آن همانند شکل ۸۰ خواهد بود، بر روی Next کلیک کنید.
شکل ۸۰
در شکل ۸۱، باید برنامهی زمانبندی همگامسازی را برای هر Agent مشخص کنیم. منوی کشویی در اینجا سه گزینه در اختیار ما قرار میدهد که بواسطهی آنها Distribution agent به ترتیب میتواند در حالت اجرا بهصورت مداوم، اجرا بر برحسب تقاضا و یا اجرا بر اساس برنامهی زمانبندی تعیین شده، قرار گیرد. پس از اطمینان از قرارگرفتن agent در وضعیت Run continuously روی Next کلیک میکنیم.
شکل ۸۱
نحوهی مقداردهی اولیه هر اشتراک بهواسطهی یک Snapshot از دادهها و طرحهای Publication یا نشریه در این قسمت مشخص میشود. دو روش برای مقداردهی اولیهی Subscriptionها وجود دارد: بهصورت فوری و در اولین همگامسازی یا Synchronization. از منوی کشویی موجود گزینهی Immediately یا بلافاصله را برای هر دو سرور موجود انتخاب کرده و روی Next کلیک میکنیم.
شکل ۸۲
در شکل ۸۳ میتوانیم تعیین کنیم که تنها Subscription ایجاد شده و یا فایل اسکریپت پیکربندی Subscription نیز ایجاد شود. در این بخش گزینهی اول را انتخاب میکنیم.
شکل ۸۴
با کلیک روی گزینهی Finish در شکل ۸۴، فرایند ایجاد subscriptionها آغاز خواهد شد و در نهایت با نمایش عبارت success در قسمت Status، انجام موفقیتآمیز تنظیمات را مشاهده خواهیم کرد.
خوب بعد از ایجاد Replication حالا هر تغییری در سرور اصلی (SQLServer) ایجاد شود در سرورهای دیگر (DB2,DB3) هم انجام خواهد شد که این موضوع را میتوانیم بررسی کنیم، طبق شکل ۸۵ در سرور اصلی یعنی SQLServer بر روی جدول مورد نظر خود کلیک راست کنید و گزینهی Edit Top را انتخاب کنید.
شکل ۸۵
یک سطر جدید بهمانند شکل ۸۶ به جدول مورد نظر اضافه میکنیم، بعدازاین کار این تغییرات بهسرعت و ظرف مدت چند ثانیه به سرورهای دیگر هم ارسال میشود.
شکل ۸۶
برای اینکه تغییرات را مشاهده کنیم بهمانند شکل ۸۷ وارد سرور DB2 شوید و بر روی جدول مورد نظر کلیک راست و گزینهی Edit Top را انتخاب کنید.
شکل ۸۷
همانطور که مشاهده میکنید در شکل ۸۸ تغییرات بهدرستی انجام شده است.
شکل ۸۸
برای اینکه سرویس Replication را مانیتور کنیم، باید بهمانند شکل ۸۹ بر روی Publications مورد نظر که با هم ایجاد کردیم کلیک راست کنید و گزینهی Lunch Replication Monitor انتخاب کنید.
شکل ۸۹
همانطور که در شکل ۹۰ مشاهده میکنید هر دو سرور DB2 و DB3 در حال کار با بهترین Permorfance هستند، اگر اطلاعات بیشتری از هر سرور بخواهید میتوانید بر روی آنها دو بار کلیک کنید.
شکل ۹۰