سینک کردن قرینه 2 SQL Server
نرم افزار تحت ویندوز ما با بانک اطلاعاتی SQL Server کار می کنه و در یکی از موارد که مشتریان ما برنامه براش نصب شد دفتر مرکزی از کارخانه جدا هستش و چند کلاینت در دفتر مرکزی فعال هستن و چند کلاینت هم در کارخانه. تا این لحظه کاربران کارخانه با IP Valid به سرور موجود در دفتر مرکزی وصل شدن و مشکلی نداشتن هرچند که مقداری سرعت پایین تر از شبکه Lan بود منتها کار می کردن تا اینکه تعداد کلاینت ها افزایش پیدا کرد و سرعت افت پیدا کرده. بنده چاره ای که به ذهنم رسید استفاده از همین بحث Replication بوده و در کارخانه هم سروری مجزا قرار بدیم که کاربران اون سمت به سرور خودشون متصل باشن که سرعت بالا بره منتها در بین سرور دفتر مرکزی و کارخانه باید اطلاعات مرتب سینک باشند و 2 تا سرور به نوعی هم فرستنده اطلاعات باشند و هم گیرنده. شما برای این کار چه روشی رو پیشنهاد می کنید؟ برنامه ما تحت ویندوز هستش ، سوال دیگه اینه که تکلیف مقادیر فیلدهایی که با یک جدول دیگر Join شده اند چه می شود؟ آیا هوشمندانه SQL مقادیر را طبق جدول کلید اصلاح می کند؟ راهتشکر
3 پاسخ
ممنونم فقط منظورتون از p2p همون حالت Merge هستش دیگه درسته؟
سوال دومم از این جهته که هر دو سمت اطلاعات وارد می کنند و اگر در آن واحد یک کد Identyty برای فیلدی مانند Id که Unique هستش برای 2 رکورد مختلف در 2 دیتابیس داده بشه چه اتفاقی میفته و این تضاد چطور حل میشه؟ اصلا آیا امکان بروز چنین مشکلی هستش؟
منظورم Peer 2 Peer است و با Merge کلا فرق داره.
شما سه روش دارید:
1- به صورت دستی بازه شماره های Identity در هر پایگاه داده را به صورت مجزا تعیین کنید با دستور DBCC CHECKIDENT
2- شما می توانید از Composite Key استفاده کنید
3- شما می توانید از یک Computed Column Persisted استفاده کنید.
شما میتوانید از p2p استفاده کنید. در این حالت هر دو سرور فرستنده و گیرنده هستند. ولی این پیاده سازی دشوار است
لطفا سوال دوم رو واضح تر بگید.