Đồng bộ hóa hai cơ sở dữ liệu MySQL ở hai vị trí khác nhau


19

Tôi có hai cơ sở dữ liệu MySQL giống hệt nhau trong một máy chủ nội bộ và cơ sở dữ liệu khác trong máy chủ lưu trữ web. Tôi muốn cập nhật cơ sở dữ liệu trên máy chủ web mỗi ngày với cơ sở dữ liệu trên máy chủ nội bộ. Có cách nào để tự động hóa quá trình này không, làm thế nào tôi có thể làm điều này bằng tay? Nếu tôi làm thủ công, nó có yêu cầu tôi lấy một kết xuất SQL của Cơ sở dữ liệu trên máy chủ nội bộ và sau đó nhập nó vào cơ sở dữ liệu trên máy chủ web không? Ai đó có thể tư vấn xin vui lòng.


Bạn có thể tham khảo câu trả lời hiện có được đăng ở đây trong StackOverflow stackoverflow.com/questions/52583/iêu
Mahesh Patil

khoảng # 2 nếu tôi chuyển toàn bộ từ nội bộ và nhập vào sản xuất, nó sẽ ghi đè lên cơ sở dữ liệu trực tuyến, ý tôi là tôi có người mua trực tuyến trên cơ sở dữ liệu được lưu trữ trên web và tôi muốn di chuyển cơ sở dữ liệu nội bộ mua vào trực tiếp, bạn có thể làm rõ BTW không xảy ra tình trạng tự động giữa hai người nếu cả hai cùng đặt trước một id thì sẽ rất khó khăn!?
chia sẻ

Câu trả lời:


20

Bạn có một vài lựa chọn:

  1. Thiết lập sao chép MySQL giữa các máy chủ. Máy chủ nội bộ của bạn có thể đóng vai trò là Master và máy chủ lưu trữ web là nô lệ. Mọi cập nhật được thực hiện trên Master sẽ được sao chép vào nô lệ ngay lập tức (giả sử có kết nối hoạt động). Đây rất có thể sẽ là lựa chọn dễ dàng và hiệu quả nhất để lựa chọn. Để sử dụng nhân rộng, cơ sở dữ liệu nội bộ của bạn sẽ cần có thể truy cập qua mạng từ máy chủ web.

    Bạn có thể đọc thêm về nhân rộng ở đây .

  2. Mỗi ngày, bạn có thể thực hiện một mysqldump trên máy chủ nội bộ, tải tệp kết xuất lên máy chủ web và nhập dữ liệu. Vì đây là một bãi chứa đầy đủ, nếu bạn có một cơ sở dữ liệu rất lớn, điều này có thể không khả thi. Nếu bạn thích, quy trình này có khả năng được viết kịch bản để tránh phải thực hiện thủ công.

  3. Bạn có thể thiết lập đăng nhập nhị phân trên máy chủ nội bộ. Sau đó, bạn có thể gửi nhật ký nhị phân đến máy chủ web và áp dụng chúng vào cơ sở dữ liệu, phát hiệu quả tất cả các giao dịch xảy ra vào ngày hôm đó cho máy chủ web. Trên thực tế, đây là những gì xảy ra với sao chép, vì vậy bạn hầu như luôn luôn đi với bản sao được thiết lập thay vì tùy chọn này.

Nếu không có kết nối giữa hai cơ sở dữ liệu, việc sử dụng mysqldumps mỗi ngày sẽ là con đường dễ nhất để thực hiện.


khoảng # 2 nếu tôi chuyển toàn bộ từ nội bộ và nhập vào sản xuất, nó sẽ ghi đè lên cơ sở dữ liệu trực tuyến, ý tôi là tôi có người mua trực tuyến trên cơ sở dữ liệu được lưu trữ trên web và tôi muốn di chuyển cơ sở dữ liệu nội bộ mua vào trực tiếp, bạn có thể làm rõ BTW không xảy ra tình trạng tự động giữa hai người nếu cả hai cùng đặt trước một id thì sẽ rất khó khăn!?
chia sẻ

4

Bạn cũng có thể sử dụng các tùy chọn như đối xứng có thể giúp đồng bộ hóa hai cơ sở dữ liệu. Với điều này, bạn sẽ có thể chọn các bảng cần được đồng bộ hóa theo cách bạn có thể tiết kiệm băng thông internet. Điều này cũng sẽ phù hợp trong kịch bản khi thiếu kết nối giữa hai địa điểm.


2

Cách thiết lập sao chép cơ sở dữ liệu với MariaDB: https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/


1
Chào mừng đến với DBA.SE. Chúng tôi đánh giá cao sự đóng góp / tham gia của bạn. Tuy nhiên, cộng đồng không mong đợi một chất lượng nhất định trong các câu trả lời được đăng. Vui lòng xem xét việc đọc bài viết sau: Làm thế nào để tôi viết một câu trả lời tốt? (Trung tâm trợ giúp) Trong phần Trả lời câu hỏi có một câu ngắn có nội dung: Liên kết đến các tài nguyên bên ngoài được khuyến khích, nhưng vui lòng thêm ngữ cảnh xung quanh liên kết để người dùng đồng nghiệp của bạn sẽ có ý tưởng về nó là gì và tại sao nó lại ở đó
John aka hot2use

0

Bạn có thể sử dụng Navicat . Đây chủ yếu là trình quản lý db nhưng nó có chức năng truyền dữ liệu và đồng bộ hóa dữ liệu cũng như bộ lập lịch để bạn có thể tự động hóa. Nó không miễn phí nhưng có 30 thử nghiệm đầy đủ chức năng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.