PDA

View Full Version : سوالی در مورد Synchronizing در Sql 2005



Sub Zero
پنج شنبه 16 اسفند 1386, 19:22 عصر
با سلام .
لطفا به این سناریو توجه کنید .

یک برنامه طبقه بندی کالا و استاندارد دارای یک دیتابیس با 4 جدول و بیش یکصد هزار رکورد است . این برنامه در 4 نقطه مختلف نصب شده ولی تنها یکی از نقاط اجازه ایجاد – ویرایش و حذف رکورد را دارد . نقاط دیگر به دلیل اینکه از سرور مجزایی استفاده می کنند می بایست در اول هر ماه تغییرات ایجاد شده در دیتابیس نقطه اصلی را به پایگاه داده خود اعمال کنند. از طرفی به دلیل بالا بودن تعداد رکوردها وحجم بالای اطلاعات انتقال کل پایگاه داده به نقاط دیگر امکان پذیر نمی باشد .

توضیح : کانال ارتباطی بین نقاط اینترنت Wireless با سرعت 128

سوال من اینه که آیا در Sql2005 راهی برای Synchronize کردن (نه فقط مشاهده اختلافات) پایگاه های داده در دونقطه مختلف وجود داره . (البته در این که راهی وجود داره شک ندارم منتها با روش کار آشنایی ندارم )

به عبارت دیگه به چه صورت میشه فقط داده های تازه ایجاد شده یا ویرایش شده رو شناسایی کرده و فقط این رکوردها رو به نقاط دیگه فرستاد . به گونه ای که رکوردهای ایجاد شده به جدول مقصد اضافه شده و رکوردهای ویرایش شده در جدول مقصد Update شوند .

از اساتید محترم این تالار خواهشمندم اگه اطلاعاتی در این ضمینه دارند بنده رو راهنمایی کنند.

AminSobati
پنج شنبه 16 اسفند 1386, 23:16 عصر
Replication پاسخ نیاز شماست!

Sub Zero
جمعه 17 اسفند 1386, 11:21 صبح
Replication پاسخ نیاز شماست!
جناب ثباتی پاسخهای شما همیشه کوتاه ومفیده .
اما به لحاظ شرایط کاری تا به حال تجربه استفاده از Replication و حتی SQL 2005 رو به صورت عملی نداشتم . از وقتی هم که نوشته های آقای راد رو در مورد SQL Server Integration Service (http://barnamenevis.org/forum/showthread.php?t=64650) خوندم بیشتر شیفته امکانات SQL2005 شدم .
بنا به تجربه ای که شما در این زمینه دارید اگه ممکنه لینک یا مرجعی رو برای راهنمایی بیشتر معرفی کنید
(ترجیها SQL2005).

AminSobati
جمعه 17 اسفند 1386, 12:41 عصر
دوست عزیزم نکته اول این که نام خانوادگی من "ثباتی" هست نه "ثبوتی"! نکته دوم، کتاب خوبی در زمینه Replication وجود داره که اگر در اینترنت جستجو کنید از بعضی سایتها قابل دریافته:
Pro SQL Server 2005 Replication
از انتشارات Apress

Sub Zero
شنبه 18 اسفند 1386, 11:50 صبح
نمی دونستم ارائه لینک داده های به اشتراک گذاشته شده دیگران Warez محسوب میشه (http://barnamenevis.org/forum/showpost.php?p=479889&postcount=4).
به هر حال برای اینکه این تاپیک هم مثل خیلی از تاپیکهای دیگه بی نتیجه نمونه آموزش Replication در Sql 2005 رو برای استفاده دیگر دوستان میزارم .
----------------------------------------------------------------------
Replication بیشتر اوقات نقش مهمی در استراتژی مدیریت بانک اطلاعاتی شما دارد. ممکن است سازمانی از آن بجهت انطباق اطلاعات در قسمتهای مختلف، پردازه های offline، افزونگی داده ها و یا سایر کارهای مدیریتی بهره ببرد. این مقاله به شما نشان می دهد که چگونه با استفاده از Management Studio بتوانید بین دو سیستم Microsoft SQL Server 2005، ‌تنظیمات replication را انجام دهید.

در ابتدا شما باید در SQL Server Management Studio به DataBase Engineی که می خواهید داده های آن را replicate کنید، متصل شوید. سپس بر روی فولدر Replication راست کلیک کنید و گزینه Configure Distribution را انتخاب کنید:

http://i.techrepublic.com.com/gallery/161788-500-421.jpg

سرور Distribution
در مرحله بعد،‌ انتخاب می کنید که به چه روشی سرور distribution را گزینش می کنید. در بیشتر محیطهای replication کوچک، همان سروری که داده ها نگهداری می شوند بعنوان distributor انتخاب می گردند. اما اگر شما مقادیر داده زیادی را بین سرورهای بسیار بزرگ و پراستفاده replicate می کنید، ممکن است بخواهید که یک سرور اختصاصی و جداگانه را جهت سیستم distributor انتخاب کنید. این سرور اختصاصی می تواند بعنوان سیستم distributor برای چندین SQL Server باشد:

http://i.techrepublic.com.com/gallery/161789-493-442.jpg

SQL Server Agent
شما نیاز دارید که سرویس SQL Server Agent بطور خودکار اجرا شود. چراکه SQL Agent می بایست آماده مدیریت subscription ها باشد. جهت تنظیم کردن این موارد در این ویزارد، اکانتی که سرویس SQL Server را اجرا می کند،‌ باید دارای مجوز admin بر روی کامپیوتر باشد. اگر کسی با مجوزهای admin کامپیوتر موجود نباشد، بایستی اکانت SQL Server Agent بصورت اتومات تنظیم شود:

http://i.techrepublic.com.com/gallery/161790-493-442.jpg

فولدر Snapshot
سپس شما باید فولدر snapshot را تنظیم نمایید. این فولدر حاوی یک تصویر (مجموعه ای از فایل ها که شامل داده هایی است که جهت replication در ابتدا انتخاب کرده اید.) است. این فولدر نیاز به فضای کافی جهت نگهداری تمامی داده ها replicateی شما دارد. اگر از متد push برای ارسال subscription ها به subscriber استفاده می کنید، یک مسیر بر روی سیستم خود را بدهید و اگر subscriber از متد pull داده ها استفاده می کند، باید فولدر snapshot خود را بر روی شبکه قابل دسترس از طرف هر دو سیستم قرار دهید:

http://i.techrepublic.com.com/gallery/161791-493-442.jpg

Distribution
تنظیمات بانک اطلاعاتی distribution بسته به مقدار داده ای که شما replicate خواهید کرد و همچنین تناوب زمانی replication متفاوت است. بانک اطلاعاتی (که پیش فرض distribution نام دارد.)،‌ می تواند سایز بزرگی داشته باشد(اگر شما بندرت replicate می کنید.) و به شدت فعال هستید(و فعالیت زیادی بر روی داده های replicate شده دارید). در مورد مکان این بانک اطلاعاتی مطمئن باشید که فضای کافی در اختیار دارید و اثر منفی بر روی سرور شما نخواهد گذاشت:

http://i.techrepublic.com.com/gallery/161792-493-442.jpg

Local Publication
حال که وضعیت distribution تنظیم شد، می توانید داده هایی را که می خواهید publish کنید را انتخاب نمائید.جهت انجام این کار،‌کلیک راست بر روی Local Publications نموده ، و New Publication را انتخاب کنید:

http://i.techrepublic.com.com/gallery/161793-500-421.jpg

بانک اطلاعاتی Publication
در این مرحله می توانید نام بانک اطلاعاتی که داده ها از آن replicate می شوند را انتخاب کنید. لیست تمام بانک های اطلاعاتی کاربر در پنجره ای نمایش داده می شود و شما تنها باید از لیست موجود نام بانک اطلاعاتی خود را انتخاب کنید و کلید next را بزنید:

http://i.techrepublic.com.com/gallery/161794-493-442.jpg

انتخاب جدول ها
در این مرحله جداول حاوی داده های مورد نظر شما برای replicate انتخاب می گردند. تنها می توان داده های جدولهایی که را کلید اصلی دارند، replicate کرد. اگر داده مد نظر شما فاقد این ویژگی باشد، قبل از این مرحله یک کلید اصلی برایش ایجاد کنید.شما می توانید همه یک (یا چند جدول ) را جهت replicate انتخاب کنید:

http://i.techrepublic.com.com/gallery/161795-500-420.jpg

ستونهای مورد نیاز در Replicate
و یا می توانید تنها ستونهای خاصی از یک جدول را جهت replicate انتخاب کنید. در مواقعی که شما می خواهید مجموعه ای از داده ها را برای برنامه های تحت وب و یا هر مورد دیگری publish کنید این گزینه بهترین است. اعمال این مورد حجم snapshot را پایین آورده و فضای مورد نیاز بر روی subscriber را هم کاهش می دهد
<<< توجه داشته باشید در این قسمت فقط جداولی را میتوانید انتخاب کنید که دارای Primary Key باشند . :>>>

http://i.techrepublic.com.com/gallery/161796-500-420.jpg

فیلتر کردن داده ها
در ضمن می توانید داده های خودتان را فیلتر کنید.گرچه این مورد کمی پیشرفته است و تا وقتی که شما نیاز به دستکاری داده ها بجهت راحتی بیشتر در publish ندارید، پیشنهاد نمی شود:

http://i.techrepublic.com.com/gallery/161797-500-420.jpg

هم اکنون یا زمانبندی
سپس می توانید تعیین کنید که snapshot بلافاصله و یا در زمانبندی خاصی گرفته شود. snapshot هنگامی که داده ها را از جدولها کپی می کند، آنها را قفل می کند. (بجهت حفظ یکپارچگی داده هایی که replicate می شوند.) agent به سرعت می تواند اجرا شود اما در صورتیکه شما حجم بالایی از داده داشته باشید، می تواند کمی زمانبر باشد، بنابراین سعی کنید آن را زمانبندی کنید:

http://i.techrepublic.com.com/gallery/161798-500-420.jpg

Agent Security
در اینجا می توانید برای agent خود تعیین مجوز کنید. اگر سرویس SQL Server Agent شما مجوزی برای دسترسی به شاخه ای که snapshot می بایست در آن قرار گیرد ندارید، اکانتی متفاوت برای این امکان دسترسی، ایجاد کنید:

http://i.techrepublic.com.com/gallery/161799-500-420.jpg

نامگذاری publication
بعد از انتخاب از تقریبا منوهای زیاد(که در اکثر آنها گزینه پیش فرض کافی بود)،‌ می توانید publication خود را نامگذاری کنید. می توان این publication را برای subscriberهای زیادی ارسال کرد ، در نتیجه نام publication را متناسب با داده هایی که در بردارد، نه جایی که به آن ارسال می شود، برگزینید:

http://i.techrepublic.com.com/gallery/161800-500-420.jpg

تنظیم subscriberها
اکنون شما آماده هستید تا subscriberهایی را برای publication خود تنظیم کنید. Subscriberها سرورهایی هستند که داده های replicate شده شما را دریافت می کنند. برای انجام چنین کاری بر روی publicationی که ایجاد کردید، کلیلک راست کنید و New Subscriber را انتخاب کنید:

http://i.techrepublic.com.com/gallery/161781-500-421.jpg

انتخاب publication مربوط به replication
در ابتدا شما باید publicationی که می خواهید pulish کنید را انتخاب نمائید. اگر شما سیستم distributor جداگانه ای استفاده می کنید، ابتدا به SQL Serverی که محل publication است که از آن replicate می کنید، متصل شوید:

http://i.techrepublic.com.com/gallery/161782-493-442.jpg

انتخاب subscriberها
حالا شما قادرید subscriberهای خود را انتخاب کنید. برای این کار می توانید براحتی Add Subscriber را انتخاب کنید، که در اینصورت توسط پیغام SQL Server Management Studio به شما جهت ارتباط با سرور هشدار می دهد. بسادگی نام سرور و نوع شناسایی هویت کاربر را انتخاب کنید. در اینجا تنها با تکرار این مرحله، می توانید چندین سرور را بعنوان subscriber انتخاب کنید:

http://i.techrepublic.com.com/gallery/161783-493-442.jpg

نوع Authentication
می توانید نوع authentication برای distribution agent را نیز انتخاب کنید. اگر می خواهید از اکانت خاصی برای push کردن داده ها به سرور subscription استفاده کنید،‌ اینجا آن را انتخاب کنید. می توانید از بین SQL Server Agent account، یک Windows account و یا یک SQL account برحسب ساختار امنیتی خود استفاده کنید:

http://i.techrepublic.com.com/gallery/161784-493-442.jpg

تنظیم زمانبندی
در مرحله بعد می توانید زمانبندی را تنظیم کنید. می توانید agent را بگونه ای تنظیم کنید که بصورت مدوام کار کند که باعث replicate شدن تقریبا آنلاین و همزمان داده ها می شود.و یا می توانید آن را بگونه ای تنظیم کنید که در زمانهای مورد نظر شما replicate انجام شود. مورد دوم در زمانهایی که در یک WAN بسیار کند هستید و می خواهید از حداکثرپهنای باند در زمانهایی خاص استفاده کنید کاربرد دارد:

http://i.techrepublic.com.com/gallery/161785-493-442.jpg

خصوصیات Subscriber
اینک می توانید در زیر publication خود، subscriber مربوطه را نیز ببینید. در اینجا می توانید خصوصیات subscription خود را تغییر دهید، مجددا subscription را مقداردهی کنید، وضعیت تطابقی را مشاهده کنید و یا replication monitor را نمایش دهید:

http://i.techrepublic.com.com/gallery/161786-500-421.jpg

مشاهده replication monitor
با مشاهده replication monitor می توانید مطمئن شوید تراکنشهای شما با موفقیت انجام شده اند و چه زمانی برای تکمیل هر مرحله صرف شده است. اگر هر خطایی داشته باشید در اینجا می توانید از جزئیات مربوط به آن جهت راهنمایی برای رفع عیب، استفاده کنید:

http://i.techrepublic.com.com/gallery/161787-500-403.jpg

نویسنده مقاله : Josh Hoskins
لینک مقاله (http://content.techrepublic.com.com/2346-9592_11-161780.html?tag=nl.e138)

Sub Zero
سه شنبه 21 اسفند 1386, 21:54 عصر
این هم PDF مقاله به همراه اطلاعات کاملتری درمورد Replication