Những câu trả lời cho rằng sao chép tiêu chuẩn không phải là một lựa chọn cho bạn, vì lý do gì:
Các các tùy chọn sau đây là các phương thức hiện có để đồng bộ hóa dữ liệu thủ công được biết đến, và sẽ tốt khi kết hợp khi được bao bọc thành ngôn ngữ kịch bản như bash
v.v ... đối với cronjob khi cần với một số logic để chỉ định các bảng cụ thể nếu cần. để chạy chúng trong ánh sáng của tải trọng, vv trên một hộp sản xuất.
Lựa chọn 1: pt-table-sync
Công cụ pt-table-sync
từ bộ công cụ Percona MySQL cho phép master-master, đồng bộ master-slave theo yêu cầu trong một chương trình sao chép hiện có. Hoặc bạn có thể sử dụng nó để đồng bộ hai máy chủ không có bất kỳ mối quan hệ nào.
Docs here from Percona
Làm theo ví dụ, để đồng bộ hóa một chiều.
pt-table-sync --execute h = sourcehost1, u = msandbox, p = msandbox h = desthost d = yourdb t = yourtables
Ngoài các tính năng sau tồn tại:
- Chế độ chạy khô (--dry-run) - Chương trình sẽ kết nối, lập kế hoạch đồng bộ hóa, phân tích các xung đột và cho bạn biết cách giải quyết đồng bộ hóa. Đây là chìa khóa để đảm bảo bạn sử dụng công cụ mạnh mẽ này đúng cách.
- Phân tích xung đột - xem cách dữ liệu so sánh - đưa dữ liệu này trở lại tập lệnh của bạn để nắm bắt các vấn đề tiềm ẩn hoặc không thực hiện đồng bộ hóa để tiết kiệm thời gian nếu không có sự khác biệt.
Theo tôi hiểu, mối quan hệ chủ-nô lệ không nhất thiết phải tồn tại - nhưng đồng bộ sẽ hiệu quả hơn nếu nó tồn tại vì thuật toán tổng kiểm tra hiệu quả hơn có thể được sử dụng để so sánh dữ liệu.
Phương án 2: Nóng/Truyền Sao lưu với XtraDb Ngoài ra, bạn có thể sử dụng một cái gì đó giống như Percona XtraBackup miễn phí trong đó chủ streaming
chế độ để giữ một tập tin sao lưu đồng bộ, và khôi phục lại hộp dev của bạn khi cần thiết.
XtraBackup tạo bản sao lưu MySQL nóng cho tất cả các phiên bản của Máy chủ Percona, MySQL, MariaDB và Drizzle. Nó thực hiện streaming, nén, và sao lưu MySQL gia tăng.
Lựa chọn C: LVM Snapshots snapshot LVM có lẽ không phải là lựa chọn tốt nhất cho một hộp sản xuất nếu bạn cần để đưa họ vào bất kỳ loại tần số do các khóa ngắn gọn/vấn đề IO, nhưng dù sao đây bạn go: MySQL Backups Using LVM Snapshots
Tất cả các công cụ này di chuyển dữ liệu theo một chiều, hoặc hai chiều - như một sự hiểu biết thấu đáo về cách sử dụng chúng là rất quan trọng để tránh mất dữ liệu.
có thể trùng lặp của [Cách nào là cách tốt nhất để đồng bộ hóa hai chiều dữ liệu động trong thời gian thực bằng cách sử dụng mysql] (http://stackoverflow.com/questions/325791/which-is-the-best-way-to -bi-directionally-synchronize-dynamic-data-in-thời gian thực) –
xem http://stackoverflow.com/questions/7707859/mysql-database-sync-between-two-databases và http://stackoverflow.com/question/4804972/strategy-on-synchronizing-database-từ-nhiều-vị trí-đến-một-trung-cơ sở dữ liệu –
Nếu bạn hỏi câu hỏi này thay vì trên Server Fault, bạn có thể nhận được một số câu trả lời tốt hơn. – BLaZuRE