2009-09-14 44 views
5

Tôi muốn tạo một dự án mà trong đó nó được yêu cầu để đồng bộ hóa cơ sở dữ liệu cục bộ với cơ sở dữ liệu từ xa. Các thay đổi được thực hiện trong cơ sở dữ liệu cục bộ phải được phản ánh đến cơ sở dữ liệu từ xa. Điều này phải được thực hiện đồng bộ. Tôi có ứng dụng mà CRUD hoạt động trên cơ sở dữ liệu địa phương được viết bằng java/jpa. Đồng bộ hóa sẽ được kích hoạt từ mã java. Tôi nghĩ về các trình kích hoạt trên mỗi bảng cơ sở dữ liệu sẽ duy trì các thay đổi trong cơ sở dữ liệu cục bộ. Nhưng tôi nghi ngờ nó an toàn hay không. Sau khi googling tôi phát hiện ra rằng cơ sở dữ liệu oracle lite là tốt nhất cho đồng bộ hóa hai cơ sở dữ liệu, nhưng tôi cần phải bắt đầu một cách nhanh chóng. Hệ điều hành tôi đang sử dụng là Windows Xp. Kích thước cơ sở dữ liệu là khoảng 2gb.Làm cách nào để đồng bộ hóa hai Cơ sở dữ liệu Oracle?

Tôi đã tạo chuỗi để đạt được điều tương tự trong java nhưng từ suggetion tôi đã khởi động lại cùng một luồng trong ngữ cảnh cơ sở dữ liệu.

+0

Mục tiêu của việc đồng bộ hóa cơ sở dữ liệu là gì? Cơ sở dữ liệu từ xa có nên chỉ đọc không? Nếu vậy DataGuard là một lựa chọn. –

Trả lời

5

Trước hết, tôi khuyên bạn nên cân nhắc lại thiết kế của mình. Cách đơn giản nhất để repicate dữ liệu của bạn là thông qua quan điểm as suggested in this SO. Bạn có thể tạo một liên kết DATABASE giữa hai DB của bạn và tạo các khung nhìn tại trang từ xa để truy vấn cơ sở dữ liệu cục bộ. Đây sẽ là cách đơn giản nhất để đồng bộ hóa thời gian thực (ít mã hơn, ít bảo trì hơn).

Nếu bạn thực sự muốn sao chép dữ liệu của mình một cách đồng bộ, bạn nên đọc số Replication Guide. Bạn có thể đi với quan điểm vật chất hóa. Bạn sẽ cần phải xác định materialized view logs trên bàn của bạn tại trang web chính của bạn. Tại trang web từ xa, bạn sẽ tạo ON COMMIT REFRESH materialized views.

+0

Câu hỏi, chúng ta cần phải có doanh nghiệp cho điều này? – Worthy7

1

Tôi đã mulling vấn đề này trong một vài ngày khi chúng ta cần phải làm phát triển song song với QA chạy thử nghiệm của họ. Chúng tôi có hai trường hợp Oracle riêng biệt, nhưng việc giữ chúng trong đồng bộ thủ công sẽ là một nỗi đau lớn. Tôi không phải là một DBA, vì vậy chỉ cần nhìn vào những thứ nhân rộng làm tôi chạy đi trong sợ hãi.

Thay vào đó, tôi đã kích hoạt Navicat cho Oracle và (ab) sử dụng tính năng Chuyển dữ liệu - giúp giữ hai lược đồ trong cơ sở dữ liệu riêng biệt được đồng bộ hóa khá dễ dàng. Một công cụ khá hữu ích! (Tôi không làm việc cho họ, giống như công cụ của họ.)

1

Những gì bạn đang đề cập đến được gọi là nhân rộng. Đồng bộ hóa là một cái gì đó khác nhau.

Nếu bạn có nhiều thiết bị có yêu cầu tập hợp dữ liệu, ví dụ: người bán hàng khu vực chỉ yêu cầu dữ liệu phản ánh khu vực họ phục vụ, thì Oracle Database Lite Mobile Server là những gì bạn đang tìm kiếm. Về cơ bản, bạn có một cơ sở dữ liệu Oracle trung tâm và bạn muốn một số dữ liệu được đẩy cho khách hàng. Khách hàng đó sẽ thực hiện cập nhật/chèn/xóa thiết bị và sau đó chúng sẽ đồng bộ hóa. Thông tin mới trên máy chủ sẽ được đẩy tới thiết bị của họ trong khi thay đổi của họ sẽ được tải lên máy chủ. Bạn sẽ yêu cầu độ phân giải xung đột (server/client thắng ... Oracle Mobile Server cũng cho phép giải quyết xung đột được xây dựng tùy chỉnh). Oracle Mobile Server cũng được sử dụng để cung cấp phần mềm ứng dụng và quản lý thiết bị của bạn từ xa. Công cụ này được thiết kế để bạn chỉ cần một DBA trung tâm. Các máy từ xa không yêu cầu bất kỳ loại hoạt động DBA nào.

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