PDA

View Full Version : گفتگو: Log shipping یا Replication ؟



farshad22
شنبه 09 مرداد 1389, 20:11 عصر
سلام.من دنبال بهترین solution برای نگهداری از سرورهام میگردم.راستش بین log shipping و replication موندم کدوم را انتخاب کنم.من یک سرور اصلی دارم که حجم دیتا روش زیاده و هر لحظه هم در حال تغییر است. حالا من میخام یه سرور بذارم کنارش که این دیتابیس روی اون هم آنلاین(یا حداقل با فاصله زمانی کم) قرار بگیره, تا هم یه backup از داده ها داشته باشم و هم در صورت هر نوع مشکل در سرور اصلی سوئیچ کنم روی سرور دوم. با توجه به اینکه حجم داده ها بالا هست و به فاصله های کم تغییر میکنه به نظر شما کدوم روش بهتره؟:متفکر:

sia_2007
شنبه 09 مرداد 1389, 21:17 عصر
Replication در بر گیرنده بخش دوم حرفهای شما نیست

meysam_pro
شنبه 09 مرداد 1389, 21:21 عصر
فاصله دیتابیس هاتون چقدره؟ پهنای باند ارتباطی تون چطور؟
به طور کلی اونجور که میشه از حرف هاتون نتیجه گیری کرد ، Failover بهترین راهه واستون، خودشم از نوع Active-Active.

farshad22
شنبه 09 مرداد 1389, 23:01 عصر
فاصله دیتابیس هاتون چقدره؟ پهنای باند ارتباطی تون چطور؟
به طور کلی اونجور که میشه از حرف هاتون نتیجه گیری کرد ، Failover بهترین راهه واستون، خودشم از نوع Active-Active.

فاصله ای ندارند.کنار هم.با پهنای باند خوب.

farshad22
شنبه 09 مرداد 1389, 23:02 عصر
Replication در بر گیرنده بخش دوم حرفهای شما نیست
ببخشید,منظورتون از بخش دوم کدومه؟

AminSobati
یک شنبه 10 مرداد 1389, 08:01 صبح
سلام دوست عزیزم،
اگر در سرور دوم ویرایش اطلاعات اتفاق نمیافته، Log Shipping گزینه بهتری نسبت به Replication هست. چون علاوه بر اینکه عملا Backup خواهید داشت، Overhead کمتر و مدیریت راحت تر در Log Shipping بدست میارید

sia_2007
یک شنبه 10 مرداد 1389, 10:02 صبح
تا هم یه backup از داده ها داشته باشم و هم در صورت هر نوع مشکل در سرور اصلی سوئیچ کنم روی سرور دوم
---
در کل Log Ship

farshad22
یک شنبه 10 مرداد 1389, 20:34 عصر
سلام دوست عزیزم،
اگر در سرور دوم ویرایش اطلاعات اتفاق نمیافته، Log Shipping گزینه بهتری نسبت به Replication هست. چون علاوه بر اینکه عملا Backup خواهید داشت، Overhead کمتر و مدیریت راحت تر در Log Shipping بدست میارید
در سرور دوم ویرایش نمیشه.
همانطور که میدانید روال log shipping به صورت است:
1-backup
copy-2
restore-3
حالا 3 سوال دارم :
1-زمانی که حجم داده ها بالا ست و دائما موتور sql درگیر با پردازش آنهاست , backup گرفتن با فاصله های زمانی کم سرعت را پایین نمیاره؟ البته میدونم این full backup نیست.

2-میشه کاری کرد که در صورت ایجاد هر نوع مشکل در primary ,خودکار بره روی سرور دوم؟ یا فقط دستی باید سوئیچینگ را انجام داد.

3-تا جایی که من دیدم حین log shipping دیتابیس سرور دوم به صورت ... Restoring است و نمیتوان مستقیما به آبجکتهای درون آن(مثل جداول) دسترسی داشت , تا وقتی که restore به صورت with Recovery انجام بشه.این مطلب درسته؟

AminSobati
دوشنبه 11 مرداد 1389, 00:16 صبح
1) خیر
2) خیر
3) میتونین سرور دوم رو به صورت Stand By در بیارین تا بصورت Read Only دیتابیس قابل استفاده باشه

ahmad_eagle2002
دوشنبه 11 مرداد 1389, 11:15 صبح
با اجازه از استاد بزرگوار خودم آقای ثباتی
اگر میخواهید خود SQL در صورت crashکردن primary را جابجا کند ، mirror راه خوبی است در ضمن در این روش می توانید دیتای سرور دوم خودتون رو تا به ازای هر transaction معادل با دیتای سرور اول بدونید .یعنی در لحظه crash هیچ دیتایی رو از دست ندهید و automatic جای سرور ها هم عوض بشود

farshad22
سه شنبه 12 مرداد 1389, 09:23 صبح
2تا سوال در مورد mirror:

1-کار witness دقیقا چیه؟ و آیا میشه mirroring را بدون آن راه اندازی کرد؟
2-این کار (mirroring) چقدر سرور اصلی را درگیر پردازش میکنه؟(برای من سرعت سرور مهمه)

ahmad_eagle2002
سه شنبه 12 مرداد 1389, 13:09 عصر
در مورد سوال اولت يه سري به http://www.sql-server-performance.com/faq/sql_server_administration_database_mirroring_p1.as px (http://www.sql-server-performance.com/faq/sql_server_administration_database_mirroring_p1.as px)
بزن و كلا witness سرور اصلي و mirror را كنترل مي كند تا در صورت crash سرور اصلي (principal)عمل fail over رخ دهد
و در مورد سوال دوم :
خودت مي توني تنظيم كني كه سرور اصلي با همان سرعت به كار خودش ادامه بده و tran ها رو به mirror بفرسته
يا منتظر بشه كه mirror هم commit بكنه و بعد ادامه كار بده
در هر صورت خودت ميتوني تنظيم كني فقط بايد ببيني كه ميخواهي mirror همزمان با سرور اصلي جلو بياد(حتي يك tran هم عقب تر نباشد) يا كمي عقب تر بودن mirror با توجه به بالا بودن سرعت سرور اصلي مهم نيست

farshad22
سه شنبه 19 مرداد 1389, 23:22 عصر
ميشه يه شرح كوتاه از چگونگي failover بديد.سرور اصلي يه IP براي خودش داره و سرور mirror هم يك IP ديگه.كلاينت ها با IP سرور كه براشون تعريف شده به سرور وصل ميشن.حالا چطوري بعد از fail تشخيص ميدن بايد به چه IP (سرور دوم) كانكت بشن؟! :متفکر:

AminSobati
چهارشنبه 20 مرداد 1389, 00:00 صبح
برای Automatic Failover نیاز هست تا از ADO.NET Ver 2 یا بالاتر استفاده کنید. در Connection String، غیر از نام سرور اصلی، نام Failover Partner رو هم میدین. وقتی Connection به سرور اصلی نتونه برقرار بشه، میره سراغ Failover Partner