PDA

View Full Version : Replication در sql server 2005



seifaddini
پنج شنبه 08 شهریور 1386, 14:53 عصر
با سلام
اولین سئوال من این است که چه نسخه هایی از sql server 2005 توانایی انجام replication را دارند و روی چه نسخه ای از سیستم عامل قابلیت replication وجود دارد.
من enterprise edition را روی windows xp 2002 sp2 نصب کردم ولی به نظر می رسد که امکان replication وجود ندارد. (موقعی که روی replication کلیک راست میکنم گزینه Configure Distribution وجود ندارد)

از داخل MSDN لینک زیر را پیدا کردم:
http://technet.microsoft.com/en-us/library/ms345283.aspx
ولی موقع نصب گزینه replication در database services وجود نداشت تا انرا فعال کنم.
لطفا راهنمایی فرمایید

AminSobati
پنج شنبه 08 شهریور 1386, 17:11 عصر
دوست عزیزم،
در این لینک، انتهای صفحه جزئیات رو قید کرده که کدوم Editionها از چه قابلیتهای Replication پشتیبانی میکنند:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/instsql9/html/81f3e917-884a-4cc8-aca2-0a5fea89f355.htm
ضمنا اشاره کردین که Enterprise Edition رو روی XP نصب کردین که چنین چیزی ممکن نیست. EE روی ویندوزهای سرور مثل 2003 نصب میشه.

seifaddini
یک شنبه 11 شهریور 1386, 18:54 عصر
با تشکر از استاد ثباتی به خاطر جواب سئوال قبلی که واقعا راهگشا بود.
سئوال بعدی من راجع به snapshot replication هست.
صورت مسئله:
من یک جدول داخل database دارم که حجم اطلاعات اون خیلی زیاد هست و در هر دقیقه 20 رکورد به اون اضافه میشه. میخوام این جدول رو عینا روی یک database روی اینترنت داشته باشم و هر یک دقیقه یک بار تغییراتی که روی جدول local انجام میشه روی جدول database روی اینترنت هم اعمال بشه. در ضمن Local database من هم داخل یک شرکت هست که با یک firewall به اینترنت وصل هستند.
راه حل:
با خواندن مقاله http://barnamenevis.org/forum/showthread.php?t=73586 راجع به snapshot به این نتیجه رسیدم که این بهترین روش است چون ابتدا یک بار جدول را با حجم زیاد به اینترنت انتقال میدهم و از آن به بعد فقط تغییرات ارسال میشود. (طبق تعریف snapshot در این مقاله).
اما امروز مطلب منتناقضی راجع به snapshot در help خود sql server 2005 پیدا کردم.
در آدرس :
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/rpldata9/html/c1655e8d-d14c-455a-a7f9-9d2f43e88ab4.htm
این جمله آورده شده است:
Data changes are not tracked for snapshot replication; each time a snapshot is applied, it completely overwrites the existing data. Transactional replication tracks changes through the SQL Server transaction log, and merge replication tracks changes through triggers and metadata tables.
برداشت من این است که در روش snapshot هر دفعه کل اطلاعات به subscriber فرستاده میشود که در این صورت چون حجم جدول من زیاد است و باید هر یک دقیقه update شود، این روش مفید نیست.

سئوالات:
1- لطفا به من بگویید کدام مطلب راجع به روش snapshot درست است؟
2- آیا با وجود firewall میتوان replication از نوع merge یا snapshot پیاده سازی کرد؟
3- من host هایم را از diverse net options میگیرم ولی در نسخه sql server 2005 انها replication را به دلیل مسائل امنیتی و bug های احتمالی disable مرده اند. لطفا اگر hosting مناسبی که database آنها قابلیت replication داشته باشد را می شناسید به من معرفی کنید.
با تشکر.

AminSobati
دوشنبه 12 شهریور 1386, 12:25 عصر
بله درسته، Snapshot Replication برای کار شما مفید نیست چون در هر بار Sync کردن اطلاعات، کل Data رو مجددا ارسال میکنه. من تصور میکنم Transactional برای شما مفیده.
Firewall مشکلی محسوب نمیشه فقط کافیه Port مورد نیاز که پیش فرض 1433 هست باز باشه.
من هاستی که خاص این کار باشه سراغ ندارم. شما میتونین با هاست های مختلف قبل از گرفتن سرویس، مشورت کنین.

seifaddini
سه شنبه 13 شهریور 1386, 15:25 عصر
با سلام و تشکر
در مورد Transactional اینطور متوجه شدم که تغییرات روی همه database ها باید انجام شود و اگر به هر دلیلی(قطعی اینترنت یا شبکه و غیرو...) روی یکی از database ها تغییرات انجام نشود، آن تغییرات روی server اصلی هم انجام نمیشود. اگر برداشت من درست باشد، این روش نیز برای کار من مناسب نیست. چون تغییرات روی Local server بسیار حیاتی است و نباید کوچکترین وابستگی به database روی اینترنت داشته باشد. database روی اینترنت هر یک دقیقه یک بار باید update شود ولی اگر تا 5 دقیقه هم update نشود اتفاق مهمی نمیافتد.
آیا برداشت من از روش transactional درست است و آیا روش Merge میتواند مشکل را حل کند؟

سئوال دیگرم این است که اگر من یک نسخه sql server 2005 standard or workgroup داشته باشم و امکانات replication روی آن نصب شده باشد و از طریق این نسخه به sql server 2005 دیگری register کرده باشم آیا برای استفاده از امکانات replication باید هر دو نسخه امکان replication رافعال کرده باشند یا فعال بودن replication در نسخه اول کفایت میکند؟
با تشکر،

hm1984ir
چهارشنبه 14 شهریور 1386, 12:16 عصر
در مورد سوال اول من هم همین دیدگاه رو نسبت به transactional دارم و فکر می کنم روش Merge می تونه مشکلت رو حل کنه چون می تونی زمان replicate رو در یک مرتبه زمانی خاص مشخص کنی

seifaddini
چهارشنبه 14 شهریور 1386, 16:03 عصر
با تشکر از دوست عزیزمون خواهشمندم اگر کسی راجع به سئوال دوم پست قبلی اطلاعاتی داره، راهنماییم کنه. با تشکر.

hm1984ir
چهارشنبه 14 شهریور 1386, 19:05 عصر
اولا منظورت از فعال کردن Replication رو نفهمیدم اگر منظورت ساختن DataBase distribution . باید بگم که فقط روی سرور Publication بسازی کافیه.
دوما اگر از روش Push استفاده می کنی Subscription هم روی همان سروری که Publication رو ساختی می سازی اما اگر از روش Pull استفاده می کنی باید Subscription رو روی آن یکی سرور بسازی و نوع آن سرور هم Client انتخاب کنی.
امید وارم کمکی کرده باشم.

seifaddini
شنبه 17 شهریور 1386, 12:51 عصر
با تشکر. منظورم از فعال کردن replication، نصب replication روی sql server 2005 هست. چون بصورت default نصب نمیشه.
فکر کنم جواب شما این هست که اگر از روش push استفاده کنم، همه چیز روی publisher قابل تنظیم هست و نیازی به نصب replication در سمت subscriber نیست. درسته؟
خوب با تشکر از استاد ثباتی و حمید آقا، در ادامه کار اگر با مشکلی برخورد کردم تو همین تاپیک مطرح میکنم.