2013-03-22 40 views
9

Nếu tôi có một bảng (cho phép gọi nó là orders) trên một máy chủ của tôi, được đặt tên, ví dụ: local. Và tôi có cùng một bảng này với một máy chủ khác của tôi, được đặt tên, ví dụ: remote.Làm thế nào để đồng bộ hai bảng MySQL?

Vấn đề của tôi là, cách tốt nhất để đồng bộ hóa hai bảng này là gì?

Tôi muốn một giải pháp thay thế sổ đăng ký nếu địa phương khác với đăng ký từ xa. Và chèn đăng ký nếu nó không tồn tại trên bảng cục bộ.

tôi đã cố gắng sử dụng đổ một lệnh bãi tương tự như thế này, nhưng không làm việc như mong đợi:

/usr/bin/mysqldump --defaults-file=~/my/conf.cnf --skip-opt --skip-add-locks --default-character-set=latin1 --disable-keys --no-create-db --no-create-info --dump-date --compress --quick --replace --where='date > DATE_SUB(NOW(), INTERVAL 1 DAY)' mydb orders >> /backup/myDump 

Làm thế nào tôi có thể làm điều này? Làm thế nào tôi có thể làm một kịch bản để làm điều này?

+0

MySQL có bản sao chủ/nô lệ được tích hợp sẵn, nó có quá tải cho ứng dụng của bạn không? http://dev.mysql.com/doc/refman/5.0/en/replication.html –

+1

Bạn có cần đồng bộ hóa hai chiều không? Nếu vậy, bạn cần một số cách để ghi chú xóa, vì một đồng bộ hai chiều chỉ chèn sẽ tái tạo không chính xác các hàng đã xóa. – cdhowie

+0

@cdhowie, chỉ có hai hướng. – GarouDan

Trả lời

9

pt-table-sync có thể làm điều này: http://www.percona.com/doc/percona-toolkit/2.1/pt-table-sync.html

Xem thêm other SO questions and answers nhắc pt-table-sync.

+0

Bạn có biết tôi có thể cài đặt công cụ này trên máy Mac không? – GarouDan

+0

Có, tôi thường xuyên sử dụng Bộ công cụ Percona trên máy Mac. Bạn chỉ cần Perl và có lẽ một vài mô-đun Perl. –

+0

Tôi đang tìm kiếm, nhưng bạn có biết làm thế nào tôi có thể giải quyết cảnh báo này? 'Cảnh báo: điều kiện tiên quyết DBD :: mysql 3 không tìm thấy .' Tôi đã chạy' perl Makefile.PL'. – GarouDan

0

Tôi đang giải quyết vấn đề tương tự đồng bộ hóa hai bảng liên tục.

Trong số tất cả các kịch bản (trong đó hầu hết là cũ) Tôi đã tìm thấy ứng dụng này tích cực phát triển (trông đầy hứa hẹn)

https://github.com/mrjgreen/db-sync

tôi sẽ thử nó và có lẽ sau này tôi sẽ viết một ví dụ .

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