Thường xuyên cần phải đồng bộ hóa dữ liệu từ bảng chính trong một cơ sở dữ liệu để sao chép bảng trong cơ sở dữ liệu khác, thường trên các máy chủ khác. Ví dụ, hãy xem xét trường hợp hệ thống phụ trợ quản lý dữ liệu khoảng không quảng cáo và dữ liệu khoảng không quảng cáo cuối cùng phải được đẩy vào một hoặc nhiều cơ sở dữ liệu là một phần của ứng dụng trang web.Đồng bộ hóa cơ sở dữ liệu một chiều
Dữ liệu nguồn trong hệ thống phụ trợ được chuẩn hóa rất nhiều, với hàng chục bảng và ràng buộc khóa ngoài. Nó là một hệ thống RDBMS OLTP được thiết kế tốt. Nhiều bảng trong câu hỏi chứa hàng triệu hàng. Sự cần thiết là đẩy dữ liệu này ra các cơ sở dữ liệu khác thường xuyên. Thường xuyên như khả thi; độ trễ có thể được dung thứ. Trên tất cả, thời gian hoạt động tối đa của cả hai cơ sở dữ liệu phụ trợ và từ xa là bắt buộc.
Tôi đang sử dụng SQL Server và quen thuộc với theo dõi thay đổi, chuyển đổi hàng loạt, trình kích hoạt, v.v. Tôi biết rằng Microsoft đẩy nhân rộng, SyncFx, và SSIS rất nhiều cho các kịch bản này. Tuy nhiên, có một sự khác biệt khá lớn giữa các bảng trắng của nhà cung cấp và tổng quan đề xuất các công nghệ và triển khai thực hiện, triển khai và bảo trì giải pháp. Trong thế giới SQL Server, sao chép thường được xem như là giải pháp chìa khóa trao tay, nhưng tôi đang cố gắng khám phá các giải pháp thay thế. (Có một số lo ngại rằng nhân rộng là khó quản lý, làm cho nó khó khăn để thay đổi giản đồ, và trong trường hợp một khởi tạo lại là bao giờ yêu cầu sẽ có thời gian chết lớn cho các hệ thống quan trọng.)
Có rất nhiều gotchas . Do các mối quan hệ khóa ngoại phức tạp giữa số lượng lớn các bảng, xác định thứ tự thực hiện các thao tác chụp hoặc áp dụng các bản cập nhật không phải là tầm thường. Do các chỉ mục duy nhất, hai hàng có thể được lồng vào nhau theo cách cập nhật hàng giờ tại một thời điểm sẽ không hoạt động (cần phải thực hiện cập nhật trung gian cho mỗi hàng trước khi cập nhật lần cuối). Đây không nhất thiết phải hiển thị-stoppers, như chỉ số duy nhất thường có thể được thay đổi để chỉ số thường xuyên và các phím nước ngoài có thể được vô hiệu hóa (mặc dù vô hiệu hóa các phím nước ngoài là cực kỳ không mong muốn). Thông thường, bạn sẽ nghe, "chỉ" sử dụng theo dõi thay đổi SQL 2008 và SSIS hoặc SyncFx. Những loại câu trả lời thực sự không làm công lý cho những khó khăn thực tế. (Và tất nhiên, khách hàng thực sự có một thời gian khó khăn bao trùm đầu của họ về cách sao chép dữ liệu có thể rất khó khăn, làm cho một tình huống khó khăn tồi tệ hơn!)
Vấn đề này cuối cùng rất chung chung: thực hiện đồng bộ hóa một chiều của nhiều người các bảng cơ sở dữ liệu liên quan nhiều với nhiều hàng. Hầu như tất cả mọi người tham gia vào cơ sở dữ liệu phải đối phó với loại vấn đề này. Whitepapers là phổ biến, chuyên môn thực tế khó tìm. Chúng tôi biết điều này có thể là một vấn đề khó khăn, nhưng công việc phải được thực hiện. Chúng ta hãy nghe về những gì đã làm việc cho bạn (và những gì để tránh). Hãy kể kinh nghiệm của bạn với các sản phẩm hoặc sản phẩm của Microsoft từ các nhà cung cấp khác. Nhưng nếu cá nhân bạn không thử nghiệm giải pháp với số lượng lớn các bảng và hàng có liên quan đến nhiều thứ, vui lòng không trả lời. Hãy giữ điều này thực tế - không phải lý thuyết.
Cảm ơn, nhưng Tôi đang xem điều này từ quan điểm của một nhà phát triển cơ sở dữ liệu, không phải là quản trị viên máy chủ. Điều này quan trọng từ quan điểm thiết kế phần mềm trả trước, không chỉ là vấn đề hoạt động. –
Cảm ơn thông tin chi tiết của bạn. Để tham khảo, lưu ý rằng số lượng trang web mục tiêu mà tôi đặc biệt quan tâm là rất nhỏ (1-3 cơ sở dữ liệu) so với các dự án bạn đã thực hiện. Mục đích là chạy logic phần mềm giống nhau trên mỗi nút, do đó lược đồ cơ sở dữ liệu của các bảng được đề cập sẽ giống nhau. Tôi hiểu những gì bạn nói về "giao tiếp ứng dụng", đó là điều phải khi các hệ thống khác nhau tham gia, nhưng một giải pháp đa năng hơn đòi hỏi ít mã bằng cách tận dụng các lược đồ giống như những gì tôi đang tìm kiếm. –
Bạn đang mô tả sao chép. Nếu nó phù hợp với nhu cầu của bạn, với tất cả các gothic của nó, không đổ mồ hôi để phát minh lại nó. Có nghĩa là nhiều năm kinh nghiệm và phản hồi đã được tích lũy trong bản sao 'out-of-the-box'. Các gotchas bạn thấy là những gì * còn lại * sau khi nhiều vấn đề đã được cố định, và bạn sẽ chỉ phải vượt qua tất cả những người thân. –