PDA

View Full Version : مشکل در راه اندازی replication



حمیدرضاصادقیان
شنبه 05 آذر 1384, 20:52 عصر
سلام خدمت اساتید.
من چطور میتونم بین دوتا سرور که در مناطق مختلف قرار دارند replication برقرار کنم؟
باید از چه طریقی این دو سرور همدیگرو ببینند.
من سرویس ras رو روی یکی از سرورها راه اندازی کردم و با اون به سرور دیگر وصل شدم.
ولی حالا در sql نمیتونم instance اون یکی سرور رو رجیستر کنم.پیغام خطا بهم میده.
باید دقیقا چیکار کنم.
یکی از سیستم عامل ها ویندوز 2000 سرور و دیگری 2003 سرور

حمیدرضاصادقیان
سه شنبه 08 آذر 1384, 19:41 عصر
دوستان عزیز اساتید بازهم سلام.
من یک بار replication رو راه انداز یکردم و غیر فعالش کردم حالا حجم فایل backup از 50 مگ به 120 مگ رسیده در صورتی که log file رو هم shrink کردم ولی هیچ تاثیری رو حجم نگذاشت.مشککل چیه؟

بعد برای دیدن دوکامپیوتر از راه دور که میخوواهیم replication رو راه اندازی کنیم باید چه تنظیماتی انجام بدیم بوسیله مودم میخوام بهم وصل بشن.

ali_divsalar
سه شنبه 02 خرداد 1385, 08:10 صبح
دوستان عزیز اساتید بازهم سلام.
من یک بار replication رو راه انداز یکردم و غیر فعالش کردم حالا حجم فایل backup از 50 مگ به 120 مگ رسیده در صورتی که log file رو هم shrink کردم ولی هیچ تاثیری رو حجم نگذاشت.مشککل چیه؟

بعد برای دیدن دوکامپیوتر از راه دور که میخوواهیم replication رو راه اندازی کنیم باید چه تنظیماتی انجام بدیم بوسیله مودم میخوام بهم وصل بشن.

جناب آقای صادقیان
ظاهرا جوابتونو خودتون گرفتید. اگه اینطوریه مارو هم راهنمایی کنید ممنون می شم.
ضمنا در هر ساختمان اگه رکودهای جدیدی ثبت بشوند و در سایر جداول در همان سرور مورد استفاده قرار بگیرند. و بخواهیم بعد از relication اطلاعات ساختمانها Update شوند.چکار کنیم
کار مستقیم application هر ساختمان با یک database مرکزی بصورت Online چطوره؟
(باخط تفن ، خط Lease ویا تحت وب).
اینرا هم بگم که من تا حالا نو زمینه تجربه ای ندارم

h_baqery
سه شنبه 02 خرداد 1385, 09:14 صبح
در مورد online بودن فرقی نمی کنه از چه روشی استفاده کنید وقتی دو طرف به هم وصل باشن sqlserver هر یک دقیقه یک بار چک می کنه اگر تغییراتی باشه می بره.
در مورد shrink چون replication از روی فایل log برخی تغییرات رو تشخیص می ده باید بعد از synchronize عمل shrink رو انجام بدین و یا تیک auto shrink رو بزنین تا خودش بعد از هر بار اتصال با تمام subscriber ها بانک رو shrink کنه.

AminSobati
سه شنبه 02 خرداد 1385, 09:37 صبح
اگر دیتابیس شما از Recovery Model روی حالت Full استفاده میکنه، باید حتما Backup بگیرید تا بتونین Log File رو Shrink کنید. در ضمن نوع Replication که استفاده میکنید مهمه. مثلا Merge یا Transactional. راه اندازی Replication با Dial up به خوبی امکان پذیره. یکی از دو سرور باید Accept incoming call داشته باشه و تماس رو جواب بده. بعد از Connect شدن، هر دو IP میگیرند. در Client Network Utility یک Alias با نام و IP طرف مقابل بسازید (روی هر دو سرور). این نام Alias رو در Enterprise Manager باید استفاده (Register) کنید. از حالا به بعد همه چیز طبق روال عادی انجام میشه. نکته مهم اینه که در هر بار تماس، IP ها عوض میشه و شما باید Aliasها رو در Client Network Utility به روز کنید. برای جلوگیری از این اتفاق، میتونین روی تنظیمات Incoming call محدود IP رو خودتون تعیین کنید تا همیشه IP ثابت تعلق بگیره.

ali_divsalar
سه شنبه 02 خرداد 1385, 12:51 عصر
چیزی که یادم رفت تو سوالم مطرح کنم Identify بودن یکی از فیلدها بود.به این صورت که رکوردهای جدید دارای فیلدی با خاصیت Identify هستند که در جداول دیگر هم قرار گرفته و بعداز replication چه بلایی سر این فیلد بیاریم
متشکرم

AminSobati
سه شنبه 02 خرداد 1385, 13:09 عصر
این Option وجود داره که موقع ساخت Publication شما Identity Range تعریف کنید. مثلا Publisher از 1 تا 1000 بدست میاره، و Subscriber از 1001 تا 2000. لذا وقتی این Identityها با هم تبادل میشن، مشکلی بوجود نمیاد. ضمنا در موقع Sync کردن، Replication به طور اتوماتیک Rangeها رو Update میکنه و Range جدید میده.

ali_divsalar
چهارشنبه 03 خرداد 1385, 10:16 صبح
این Option وجود داره که موقع ساخت Publication شما Identity Range تعریف کنید. مثلا Publisher از 1 تا 1000 بدست میاره، و Subscriber از 1001 تا 2000. لذا وقتی این Identityها با هم تبادل میشن، مشکلی بوجود نمیاد. ضمنا در موقع Sync کردن، Replication به طور اتوماتیک Rangeها رو Update میکنه و Range جدید میده.

یعنی بعد از تکمیل رنج اول برای ساختمان اول Rang ش در مثال شما 2001 تا 3000 می شه؟
وبا این تفاسیر زیاد بودن Rang امیت چندانی نداره؟

AminSobati
چهارشنبه 03 خرداد 1385, 15:11 عصر
Replication قبل از پایان یک Range، مجددا Range جدید میده. به صورت پیش فرض وقتی 80 درصد از Range رو مصرف کردین، Range جدید اعطا میشه. اما عدد 80 دست شماست.

ali_divsalar
چهارشنبه 17 خرداد 1385, 13:44 عصر
جناب آقای ثباتی
سلام .ببخشید من مجددا این بحث رو دارم ادامه می دم.
ما قصد برقراری Replication رو داشتیم از یکی از دوستان شنیدم صلاح نیست Replication راه بندازیم چون این سرویس کل سرور رو کند می کنه و توصیه کردند که از Backup از راه دور و متعاقب آن Insertion استفاده کنیم . که البته من فکر می کنم برای جداول با فیلدهای Identify دار مشکل ایجاد می شه و راه حل دیگه ایشون استفاده از یک سرور مرکزی و ارتباط از راه دور بود. با در نظر گرفتن قضیه سرعت در خطوط مخابراتی و بحث امنیتی قضیه برای سیستم هایی که عملیاتی مثل ثبت نام در چند ساختمان و در نهایت گزارشگیری دارند،شما چه پیشنهادی دارید
البته ببخشید احتمالا این بحث تکراریه. اگه راهنمایی کنید ممنون می شم

AminSobati
چهارشنبه 17 خرداد 1385, 22:40 عصر
دوست عزیزم،
اگر چه Replication به هر حال باعث میشه چند تا SP بیشتر از حالت عادی Call بشه، اما تاثیرش ابدا در اون حد نیست که شما ازش اجتناب کنید!
موضوع Backup اصلا نمیتونه جایگزین Replication باشه مگر اینکه در اصل شما به همون Backup/Restore نیاز داشتین و اشتباها سراغ Replication رفتین! اصلا به هم ارتباطی ندارند...
سروری که اطلاعات به اون Replicate میشه، به نیت داشتن Backup ایجاد نمیشه، بلکه اهداف دیگه ای رو تامین میکنه.
در مورد سرعت خطوط، فکر نمیکنم از Dialup کندتر داشته باشیم. تا به حال برای شرکتهای زیادی شخصا Replication رو به این شکل برقرار کردم و تا به الان هیچ مشکلی وجود نداشته.
در مورد Identity هم شما میتونین Range دستی بهشون بدین، یا اینکه یک فیلد مثلا SiteID به جداول اضافه کنین تا ترکیب SiteID و فیلد Identity با هم یونیک بشن. به یک مکان SiteID=1 بدین که همیشه با این مقدار رکوردهایش رو ثبت کنه. به مکان دیگه SiteID=2. حالا اگر Identityهای مشترک هم داشته باشند(این دو مکان)، در نهایت با ترکیب SiteID یونیک خواهند بود. ولی این روشیه که باید از اوایل طراحی دیتابیس بهش توجه کرده باشیم تا در Queryها و سایر روالها این نکته رو رعایت کنیم.

Omid Rekabsaz
پنج شنبه 18 خرداد 1385, 15:45 عصر
من شخصا در شرکتهای زیادی Replication را ایجاد کرده ام... و بیشتر Connection ها از نوع Dial up بوده اند ... مشکل کمبود سرعت با partition کردن اطلاعات اطلاعات قابل حل است...
در نهایت می توان به سادگی گفت کم هزینه ترین راه (از نظر برنامه نویسی) و مطمئن ترین راه برای جمع آوری یا انتشار داده بصورت هماهنگ Replication است...
و راه هایی مثل ارسال و دریافت و ... بسیار پر هزینه و پر اشتباه هستند

ali_divsalar
شنبه 20 خرداد 1385, 07:20 صبح
ممنونم از توضیحات تون. ظاهرا به داشتن یک سرور در ساختمان مرکزی و ارتباط مستقیم application ها با این سرور اشاره نکردید. توضیحات شما کاملا مفید بود.جهت آشنایی من می تونید بفرمایید نظرتون راجع به این مسئله یعنی sql server واحد در یک ساختمان چیه ؟ آیا کند بودن سرعت بصورت Dial Up به مناسب نبودن این روش اشاره داره ؟

Omid Rekabsaz
شنبه 20 خرداد 1385, 11:07 صبح
اگر Connection شما Dial up باشد و Application شما Windows Application باشد به هیچ وجه به جواب مورد نظر نمی رسید...

AminSobati
شنبه 20 خرداد 1385, 11:20 صبح
ممنونم از توضیحات تون. ظاهرا به داشتن یک سرور در ساختمان مرکزی و ارتباط مستقیم application ها با این سرور اشاره نکردید. توضیحات شما کاملا مفید بود.جهت آشنایی من می تونید بفرمایید نظرتون راجع به این مسئله یعنی sql server واحد در یک ساختمان چیه ؟ آیا کند بودن سرعت بصورت Dial Up به مناسب نبودن این روش اشاره داره ؟
ممکنه سوال رو کمی واضح تر بیان کنید؟

ali_divsalar
شنبه 20 خرداد 1385, 12:05 عصر
اینکه یک database روی sql server ی در ساختمان مرکزی باشه و connection نرم افزار ما از یک ساختمان دیگه و از طریق طریق خط تلفن (ویا Lease)بطور مستقیم با سرور ساختمان مرکزی برقرار بشه .بعبارتی بصورت آنلاین Application هامون از ساختمانهای دیگه data entry کنند و یا گزارش بگیرند.

AminSobati
شنبه 20 خرداد 1385, 12:33 عصر
این روش خیلی خوبیه و Replication نیاز ندارید. اما برنامه تون قدری کند میشه. مثلا چیزی مشابه Web App! در ضمن خط تلفن هم مدام باید اشغال باشه

AminSobati
شنبه 20 خرداد 1385, 12:33 عصر
این روش خیلی خوبیه و Replication نیاز ندارید. اما برنامه تون قدری کند میشه. مثلا چیزی مشابه Web App! در ضمن خط تلفن هم مدام باید اشغال باشه

h_baqery
یک شنبه 21 خرداد 1385, 13:30 عصر
نکته خیلی مهم اینه که هزینه شما در replication بسیار پایین است و به حدی زیبا و تمیز اینکار انجام می شود که قابل مقایسه با روشهای پر هزینه دیگر نیست و شما فقط و فقط یک بار همه تنظیمات را انجام می دهید و سرور شما خودش در زمانهای خاصی که شما می خواهید عمل ادغام اطلاعات رو انجام می دهد و ازنظر راحتی اصلا قابل مقایسه با روشهای دیگه نیست ، حتی با روش online البته اگر فرسی جهت به روز بودن دقیقه ای دارید شاید هزینه ارتباطتون فرقی نکنه ولی اگر حتی تاخیر یک ساعته قابل قبول باشد باز هم به صرفه تر است .