2013-05-08 62 views
6

Tôi nhận ra đây là một chủ đề được thảo luận nhiều nhưng tất cả những gợi ý mà tôi thấy có vẻ liên quan trực tiếp đến Máy chủ SQL mà trong trường hợp của chúng tôi không lý tưởng.Cách tốt nhất để đồng bộ hóa cơ sở dữ liệu SQL Server từ xa với cơ sở dữ liệu SQL Server Compact cục bộ?

Kịch bản của chúng tôi là cơ sở dữ liệu SQL Server từ xa với (100 bảng). Chúng tôi đang phát triển một ứng dụng máy tính để bàn nhẹ sẽ sử dụng cơ sở dữ liệu SQL Server Compact và đồng bộ hóa một nhóm (gồm 20 bảng) với máy chủ từ xa theo định kỳ.

Tôi muốn có kiểm soát như thế nào sao chép xảy ra bởi vì tốc độ là một vấn đề lớn đối với chúng tôi kể từ khi máy chủ từ xa là 1000 dặm.

Ngoài ra, tôi không cần phải đồng bộ hóa tất cả các bản ghi trong mỗi bảng - chỉ những bản ghi có liên quan đến từng người dùng.

Tôi khá thích cơ sở SQL Merge tuy nhiên nó yêu cầu khách hàng được kết nối với máy chủ SQL từ xa. Điều này hiện không khả thi và chúng tôi đã nghĩ đến việc giao tiếp với máy chủ từ xa thông qua dịch vụ web được truy cập thông qua ứng dụng của chúng tôi hoặc một số phương pháp khác.

Mọi đề xuất đều được chào đón.

CẬP NHẬT

Chỉ cần làm rõ, kết nối internet sẽ không liên tục, đó là lý do chính tại sao chúng ta cần phải đồng bộ hóa hai cơ sở dữ liệu.

Trả lời

1

Thực tế là bạn đang sử dụng một db nhỏ gọn cho khách hàng đặt một số hạn chế khá nặng về bạn cho các tùy chọn có sẵn trong trường hợp này.

Với những hạn chế và yêu cầu hiệu suất bạn mong muốn, bạn có thể xem xét triển khai điểm cuối http dựa trên dịch vụ để giữ cho các bảng mong muốn được đồng bộ hóa. Nếu kiến ​​trúc của bạn cho phép nó, làm như vậy không đồng bộ sẽ tăng hiệu suất đáng kể nhưng một lần nữa, nó thậm chí có thể không khả thi tùy thuộc vào kiến ​​trúc của bạn.

Điều khác cần xem xét là sử dụng ổ cắm web thay vì kết nối http chuẩn cho dịch vụ web như đã đề cập ở trên. Bằng cách đó bạn có thể giữ cho khách hàng đồng bộ hóa theo thời gian thực, vì các ổ cắm web là các kết nối thời gian thực song công thực sự. Việc nắm bắt chính với điều này là bạn sẽ phải đảm bảo tất cả các máy khách đều tuân theo chuẩn web-socket hoặc cung cấp một sự phản hồi để mô phỏng một kết nối websocket với một khung mô phỏng cho các máy khách không phải là ngang hàng.

Không chắc chắn điều này có giúp ích gì không.

0

Bạn không thể sử dụng khung MS Sync?

Được thiết kế khá nhiều cho kịch bản AFAIK của bạn.

google nhanh quay hướng dẫn này lên ...

http://social.technet.microsoft.com/wiki/contents/articles/2190.tutorial-synchronizing-sql-server-and-sql-server-compact-sync-framework.aspx

+0

Có thể sử dụng MS Synch Framework qua HTTP không? Tôi nghĩ rằng nó cần một liên kết trực tiếp đến cả hai cơ sở dữ liệu? – cusimar9

+0

Tôi tin như vậy theo câu trả lời ở đây: http://stackoverflow.com/questions/503832/sync-framework-can-you-sync-over-http – nakchak

Các vấn đề liên quan