اسفند
۲۲

Replication در SQL Server 2000

Author سيد علي جلوه گران    Category SQL Server     Tags , ,

صورت مساله:

یک بانک Sql Server 2000 داریم. در دوشعبه: ۱ و ۲٫ در این مساله شعبه ۱ را بعنوان مرکزی در نظر میگیریم. جایی که سرورش همیشه روشن است. در شعبه ۲ فقط در ساعات کار سرور روشن می شود. باید اطلاعات در لحظه به روز شود. یعنی رکوردهایی که در هر یک از دو شعبه حذف، اضافه و یا تغییر می کنند در شعبه دیگر هم اعمال شود. ارتباط شبکه بین دو شعبه از طریق VPN بر قرار شده است.

آموزش:

در Replication سه عنصر اساسی داریم:

Publisher: سروری که تغییرات در بانک اطلاعاتی را تشخیص داده و آن را برای انتشار آماده می‌سازد

Distributer: سروری که اطلاعات لازم جهت عمل Replication را نگهداری می کند. معمولا همان سروری که نقش Publisher را دارد این نقش را هم می‌گیرد.

Subscriber: سروری که تغییرات را از Distributer دریافت و در خود اعمال می کند.

راه حل:

با توجه به اینکه تغییرات باید در هر دو سرور اعمال شود نوع Replication را Merge انتخاب می کنیم. ابتدا باید سرور مربوط به Publisherو Distributer را تنظیم کنیم.

روی سرور شعبه ۱ در ویندوز(یا AD) کاربری به نام (دلخواه بعنوان مثال) Repl با دسترسی aministrator ایجاد می کنیم. البته شاید نیازی به admin بودن نباشد  ولی چون قرار است سرویسهایی را اجرا کند من admin را برگزیدم. همین کار را هم در سرور شعبه ۲ انجام می دهیم.

تنظیمات سرور شعبه ۱:

پیشنهاد می کنم سرویس SQLSERVERAGENT را با نام کاربریک Repl که قبلا ساخته ایم فعال کیند:

  • – در منوی استارت، گزینه Run را انتخاب کنید.
  • – عبارت services.msc را تایپ و OK کنید.
  • – برنامه Services اجرا خواهد شد. در فهرست، سرویس SQLSERVERAGENT را انتخاب و دابل کلیک کنید.
  • – در برگه Log on گزینه This account را فعال و نام کاربری مذکور را بهمراه رمزش وارد کنید.
  • – Ok کنید.

 

در Enterprise Manger روی گزینه Replication کلیک راست کرده و گزینه Configure Publishin… را کلیک می کنیم.

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

در قسمت بعد گزینه Yes, confugure the sql server Agent to start … را انتخاب کنید. یعنی Agent با استارت شدن ویندوز فعال شود.

Snapshot Folder فضایی است که فایلهای تبادل اطلاعات در آن ذخیره می شود. این آدرس باید بصورت UNC(شبکه‌ای( باشد. چرا که سرور ۲ نیاز به همین آدرس برای دسترسی به اطلاعات Replication خواهد داشت. توجه داشته باشید در این آدرس باید اجازه دسترسی کاربر Repl(که قبلا ساخته ایم) را داشته باشد.

در بخش Customize the confugurateion گزینه No را انتخاب کنید.

روی Publication کلیک راست کرده و گزینه New Publication… را انتخاب کنید.

دیتابیسی که باید عمل Replication روی آن انجام شود انتخاب کنید.

نوع Publication را Merger انتخاب کنید.

جداولی که تمایل دارید عمل Replication روی آنها انجام پذیرد را تیک بزنید. میتوانید همه جداول، استورد پروسیجر ها و فانکشن هارا انتخاب کنید.

پنجره بعد :

و پایان.Finish

تنظیمات مربوط به شعبه ۲:

یک نسخه از بانک باید در سرور این شعبه باشد.  در زیر شاخه Replication گزینه Subscriptions کلیک راست کرده و گزینه New Pull Subscription… را کلیک کنید.

در پنجره Look for Publications، from regeistered servers را انتخاب کنید.

در پنجره Choose Publicatoin چنانچه سرور شعبه ۱ را قبلا اضافه کرده اید انتخاب کنید. در غیر اینصورت Register server را انتخاب کرده و سرور شعبه ۱ را اضافه کنید. زیر شاخه نام سرور عنوان Publication مربوط به شعبه ۱ را انتخاب کنید.

Impersonate the SQL Server Agent را انتخاب کنید.

بانک اطلاعاتی مقصد همان بانکی باید Replication شود را انتخاب کنید.

در پنجره Initialize Subsctiption گزینه Yes را انتخاب کنید.

در پنجره Snapshot Delivery گزینه اول from Default snapshot folder را انتخاب کنید.

در پنجره Set merge Agent Schedule، Continuously را انتنخاب کنید.

در پنجره Set Subscription Priority، گزینه اول Use the publisher as a proxy… را انتخاب کنید.

ahda.ir

دیدگاه شما؟

*