Parsi Coders

نسخه‌ی کامل: همسان سازی دو بانک
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
من میخوام دیتابیس خودم که روی سیستم دارم را با دیتا بیس که روی سرور دارم همسان کنم
در واقع اطلاعات هردو مثل هم بشن
مثل اینه!
راه حل چیه؟
ممنون میشم راهنمایی کنید!
سلام
با این چند روش میتونی برای جا به جا سازی دیتابیس استفاده کنی


- انتقال اطلاعات به روش ادغام (Merge)
- تصویر برداری از اطلاعات (Snapshot)

- انتقال بر اساس فرآیند (Transactional)




معرفی:
Replication راه حلی برای انتقال اطلاعات از یک بانک اطلاعاتی SQL sever به یک بانک اطلاعاتی دیگر از همان نوع و البته مستقر در یک محل و کامپیو تر دیگر است . این فرآیند توسط ایجاد یک کپی از اطلاعات موجود در مبدا و انتقال به مقصد صورت می گیرد . در این ارتباط اطلاعاتی اصطلاحا به کامپیو تر وبانک اطلاعاتی مبدا ، ناشر (publisher) و به کامپیو تر وبانک اطلاعاتی مقصد ، مشترک یا متعهد (subscriber) می گویند البته این نوع رابطه ، با وجود تنها یک ناشر اما یک یا چند مشترک امکان پذیر است . بدین معنی که اطلاعات یک بانک اطلاعاتی در مبدا قابل انتقال به چند مقصد مختلف است . از نسخه 7 به بعد SQL severامکان تغییر اطلاعات در مقصد و انتقال آن به مبدا نیز وجود دارد . با این وصف ، این رابطه داده ای بین ناشر و مشترک ممکن است گاهی اوقات بر عکس شود و جای مبدا و مقصد در یک مقطع زمانی عوض شود . بدین ترتیب یک کامپیوتر مشترک یا مقصد می تواند گاهی اوقات نقش ناشر یا مبدا در همان رابطه بازی کند . این قابلیت جدیدMulti site update می گویند .
در SQL sever، سه نوع انتقال اطلاعات از طریق Replication وجود دارد. هر کدام از این سه راه ، سناریو ی خاصی برای انتقال اطلاعات از مبدا به مقصد و یا برعکس را مدیریت می کنند که در ادامه به بررسی آن ها می پردازیم .

۱- انتقال اطلاعات به روش ادغام (Merge)
اینوع انتقال اطلاعات که از قابلیت Multi site هم پشتیبانی می کند ، زمانی مورد استفاده قرار می گیرد که استقلال داخلی هر بانک اطلاعاتی طرف یک رابطه ، به رسمیت شناخته می شود . بدین معنی که در یک رابطه انتقال اطلاعات ، هر کامپیو تر ضمن حف ظ ساختار بانک اطلاعاتی خود ، هم می تواند نقش ناشر را داشته باشد و نقش مشترک را ایفا نماید . در این حالت هر تغییری در جداول مشترک هر طرف دیگر اعمال می شود . نکته مهمی که در اینجا مطرح است این است که چطور طرفین این ارتباط متقابل باید با هم هماهنگ باشند و اولویت یکدیگر را به رسمیت بشناسند . به عنوان مثال فرض کنید در یک زمان واحد ، هر دو طرف بخواهند اطلاعاتی را در مورد یک جدول بانک اطلاعاتی به یکدیگر ارسال کنند . (یعنی بروز حالت تداخل ) این مشکل با استفاده از روش خاصی که هر نوع Replication مخصوص خودش دارد قابل حل است . به طور کلی در حالت ادغام ، یک پایگاه داده حایل میان ناشر و مشترک به عنوان توزیع گر ( Distributor) ساخته می شود . این پایگاه داده به نام Distributor در لیست پایگاه های داده ای ناشر قرار می گیرد و وظیفه ایجاد همزمانی (synchronization ) بین ناشر و مشترکین را ایفا می کند .
پایگاه داده توزیع گر هم می تواند در سمت ناشر و هم در یک کامپیوتر میانی دیگر (غیر از کامپیو تر های سمت مشترک ) قرار داشته باشد . این پایگاه داده ضمن ایجاد همزمانی در ردو بدل اطلاعات بین ناشر و مشترک ، این امکان را نیز فراهم می سازد تا مدیر سیستم بتواند اولویت و در واقع ارجحیت جهت انتقال اطلاعات در زمینه بروز تداخل را مشخص کند . این اولویت priority در زمان تعریف طرف های ناشر و مشترک یک Replication از نوع ادغام توسط مدیر سیستم تنظیم می شود .

۲- تصویر برداری از اطلاعات (Snapshot)
در این روش ابتدا یک تصویر کامل از آنچه که باید از سمت ناشر به سمت مشترک برود تهیه می شود . این تصویر هم شامل خود ساختار آنچه که منتقل می شود ( مثلا ساختار یک جدول ) و هم شامل اطلاعات داخل آن است . در ابتدای کار، تصویرمذکور عینا به مشترک فرستاده می شود . روند و توالی ارسال این تغییرات هم همانند حالت قبل (ادغام ) طی یک فاصله زمانی مشخص مثلا ساعتی یک بار که توسط مدیر سیستم قابل تنظیم است ، انجام می گیرد .
یکی از مزایای این روش نسبت به حالت ادغام ، این است که زمان کمتری از وقت مدیر سیستم را جهت پیکر بندی و تنظیم عمل انتشار صرف می کند و به دلیل اینکه در ابتدای عمل انتشار، خود ساختار نیز عینا به مشترک منتقل می شود ، از قابلیت اطمینان بیشتری برخوردار است . به طور کلی کاربرد این نوع انتقال اطلاعات ، زمانی است که مدیر سیستم قصد ایجاد یک ارتباط ساده و یکطرفه ولی مطمئن دارد

۳- انتقال بر اساس فرآیند (Transactional)
این روش یکی از بهترین و قابل کنترل ترین روش های انتقال است. در این روش هر تغییری که در جداول ناشر صورت می گیرد ، به صورت یک دستور SQL درآمده که تحت یک فرآیند واحد هم در سمت کلیه مشترکین اجرا می شود . در این صورت اگر به طور مثال یکی از مشترکین به دلیلی با اشکال مواجه شده و تغییر مورد نظر در آن انجام نشود ، این تغییر نه در خود ناشر و نه در هیچ کدام از مشترکین دیگر نیز انجام نخواهد شد ، بدین معنی که یا یک تغییر در اطلاعات برای تمام کامپیوتر ها اعم از ناشر و کلیه مشترکین انجام می شود و یا این که برای هیچ کدام انجام نخواهد شد در این حالت هم یک پایگاه داده به واسطه به نام Distribution نقش دریافت وارسال فرآیند را به طرف مشترک ایفا می کند . در واقع روش فرآیند ، در مقایسه با دو روش قبل از حالت به هنگام(online) بودن بیشتری برخورداراست . یعنی این که هر فرآیند و هر دستور در همان لحظه که می خواهد در ناشر اجرا شود ، به واسط فرستاده شده و سپس در یک زمان واحد در کلیه مشترکین نیز انجام می شود و در واقع زمان تغییر اطلاعات در ناشر و در مشترکین تقریبا یکسان است . همچنین در این روش تداخلی هم پیش نمی آید . چون هر تغییری ابتدا باید به واسط فرستاده شود و از آن جا به جاهای دیگر ارسال شود و واسط هم آن ها را در یک صف اولویت قرار داده و به ترتیب انجام می دهد . نتیجه این نوع انتقال اطلاعات ، داشتن چند پایگاه داده کاملا یکسان و به هنگام در مکان های مختلف است که همگی از یک ناشر ، اطلاعات مورد نظر را دریافت می کنند .

اینجا هم توضیحاتی بصورت تصویری و واضح برای اینکار داده
http://www.codeproject.com/KB/database/s...ation.aspx
موفق باشید
سلام
با این چند روش میتونی برای جا به جا سازی دیتابیس استفاده کنی


- انتقال اطلاعات به روش ادغام (Merge)
- تصویر برداری از اطلاعات (Snapshot)

- انتقال بر اساس فرآیند (Transactional)




معرفی:
Replication راه حلی برای انتقال اطلاعات از یک بانک اطلاعاتی SQL sever به یک بانک اطلاعاتی دیگر از همان نوع و البته مستقر در یک محل و کامپیو تر دیگر است . این فرآیند توسط ایجاد یک کپی از اطلاعات موجود در مبدا و انتقال به مقصد صورت می گیرد . در این ارتباط اطلاعاتی اصطلاحا به کامپیو تر وبانک اطلاعاتی مبدا ، ناشر (publisher) و به کامپیو تر وبانک اطلاعاتی مقصد ، مشترک یا متعهد (subscriber) می گویند البته این نوع رابطه ، با وجود تنها یک ناشر اما یک یا چند مشترک امکان پذیر است . بدین معنی که اطلاعات یک بانک اطلاعاتی در مبدا قابل انتقال به چند مقصد مختلف است . از نسخه 7 به بعد SQL severامکان تغییر اطلاعات در مقصد و انتقال آن به مبدا نیز وجود دارد . با این وصف ، این رابطه داده ای بین ناشر و مشترک ممکن است گاهی اوقات بر عکس شود و جای مبدا و مقصد در یک مقطع زمانی عوض شود . بدین ترتیب یک کامپیوتر مشترک یا مقصد می تواند گاهی اوقات نقش ناشر یا مبدا در همان رابطه بازی کند . این قابلیت جدیدMulti site update می گویند .
در SQL sever، سه نوع انتقال اطلاعات از طریق Replication وجود دارد. هر کدام از این سه راه ، سناریو ی خاصی برای انتقال اطلاعات از مبدا به مقصد و یا برعکس را مدیریت می کنند که در ادامه به بررسی آن ها می پردازیم .

۱- انتقال اطلاعات به روش ادغام (Merge)
اینوع انتقال اطلاعات که از قابلیت Multi site هم پشتیبانی می کند ، زمانی مورد استفاده قرار می گیرد که استقلال داخلی هر بانک اطلاعاتی طرف یک رابطه ، به رسمیت شناخته می شود . بدین معنی که در یک رابطه انتقال اطلاعات ، هر کامپیو تر ضمن حف ظ ساختار بانک اطلاعاتی خود ، هم می تواند نقش ناشر را داشته باشد و نقش مشترک را ایفا نماید . در این حالت هر تغییری در جداول مشترک هر طرف دیگر اعمال می شود . نکته مهمی که در اینجا مطرح است این است که چطور طرفین این ارتباط متقابل باید با هم هماهنگ باشند و اولویت یکدیگر را به رسمیت بشناسند . به عنوان مثال فرض کنید در یک زمان واحد ، هر دو طرف بخواهند اطلاعاتی را در مورد یک جدول بانک اطلاعاتی به یکدیگر ارسال کنند . (یعنی بروز حالت تداخل ) این مشکل با استفاده از روش خاصی که هر نوع Replication مخصوص خودش دارد قابل حل است . به طور کلی در حالت ادغام ، یک پایگاه داده حایل میان ناشر و مشترک به عنوان توزیع گر ( Distributor) ساخته می شود . این پایگاه داده به نام Distributor در لیست پایگاه های داده ای ناشر قرار می گیرد و وظیفه ایجاد همزمانی (synchronization ) بین ناشر و مشترکین را ایفا می کند .
پایگاه داده توزیع گر هم می تواند در سمت ناشر و هم در یک کامپیوتر میانی دیگر (غیر از کامپیو تر های سمت مشترک ) قرار داشته باشد . این پایگاه داده ضمن ایجاد همزمانی در ردو بدل اطلاعات بین ناشر و مشترک ، این امکان را نیز فراهم می سازد تا مدیر سیستم بتواند اولویت و در واقع ارجحیت جهت انتقال اطلاعات در زمینه بروز تداخل را مشخص کند . این اولویت priority در زمان تعریف طرف های ناشر و مشترک یک Replication از نوع ادغام توسط مدیر سیستم تنظیم می شود .

۲- تصویر برداری از اطلاعات (Snapshot)
در این روش ابتدا یک تصویر کامل از آنچه که باید از سمت ناشر به سمت مشترک برود تهیه می شود . این تصویر هم شامل خود ساختار آنچه که منتقل می شود ( مثلا ساختار یک جدول ) و هم شامل اطلاعات داخل آن است . در ابتدای کار، تصویرمذکور عینا به مشترک فرستاده می شود . روند و توالی ارسال این تغییرات هم همانند حالت قبل (ادغام ) طی یک فاصله زمانی مشخص مثلا ساعتی یک بار که توسط مدیر سیستم قابل تنظیم است ، انجام می گیرد .
یکی از مزایای این روش نسبت به حالت ادغام ، این است که زمان کمتری از وقت مدیر سیستم را جهت پیکر بندی و تنظیم عمل انتشار صرف می کند و به دلیل اینکه در ابتدای عمل انتشار، خود ساختار نیز عینا به مشترک منتقل می شود ، از قابلیت اطمینان بیشتری برخوردار است . به طور کلی کاربرد این نوع انتقال اطلاعات ، زمانی است که مدیر سیستم قصد ایجاد یک ارتباط ساده و یکطرفه ولی مطمئن دارد

۳- انتقال بر اساس فرآیند (Transactional)
این روش یکی از بهترین و قابل کنترل ترین روش های انتقال است. در این روش هر تغییری که در جداول ناشر صورت می گیرد ، به صورت یک دستور SQL درآمده که تحت یک فرآیند واحد هم در سمت کلیه مشترکین اجرا می شود . در این صورت اگر به طور مثال یکی از مشترکین به دلیلی با اشکال مواجه شده و تغییر مورد نظر در آن انجام نشود ، این تغییر نه در خود ناشر و نه در هیچ کدام از مشترکین دیگر نیز انجام نخواهد شد ، بدین معنی که یا یک تغییر در اطلاعات برای تمام کامپیوتر ها اعم از ناشر و کلیه مشترکین انجام می شود و یا این که برای هیچ کدام انجام نخواهد شد در این حالت هم یک پایگاه داده به واسطه به نام Distribution نقش دریافت وارسال فرآیند را به طرف مشترک ایفا می کند . در واقع روش فرآیند ، در مقایسه با دو روش قبل از حالت به هنگام(online) بودن بیشتری برخورداراست . یعنی این که هر فرآیند و هر دستور در همان لحظه که می خواهد در ناشر اجرا شود ، به واسط فرستاده شده و سپس در یک زمان واحد در کلیه مشترکین نیز انجام می شود و در واقع زمان تغییر اطلاعات در ناشر و در مشترکین تقریبا یکسان است . همچنین در این روش تداخلی هم پیش نمی آید . چون هر تغییری ابتدا باید به واسط فرستاده شود و از آن جا به جاهای دیگر ارسال شود و واسط هم آن ها را در یک صف اولویت قرار داده و به ترتیب انجام می دهد . نتیجه این نوع انتقال اطلاعات ، داشتن چند پایگاه داده کاملا یکسان و به هنگام در مکان های مختلف است که همگی از یک ناشر ، اطلاعات مورد نظر را دریافت می کنند .

اینجا هم توضیحاتی بصورت تصویری و واضح برای اینکار داده
http://www.codeproject.com/KB/database/s...ation.aspx
موفق باشید
امین خان ممنون از جوابتون
امکانش هست یه نمونه واسم بذارید؟
نمونه که ندارم ولی راهنما کامل برات گذاشتم