Cách tốt nhất để thiết lập bản sao chính để nhân rộng


7

CÂU HỎI GỐC: Tôi có nhiều máy chủ cần đóng vai trò là chủ, như thể một máy chủ tiếp theo không hoạt động và tiếp quản. Tôi chỉ tự hỏi cách tốt nhất để nhân rộng là gì. Tất cả các máy chủ ở trong các trung tâm dữ liệu khác nhau.

Câu hỏi

  • Có thể chấp nhận thiết lập mọi máy chủ như một bậc thầy với 'siêu nhân' không?
  • Tôi sẽ có những xung đột nào?
  • Có cách nào tốt hơn để làm điều này?

CÂU HỎI CẬP NHẬT: Chúng tôi có các máy chủ trên toàn thế giới ở các trung tâm dữ liệu khác nhau và mỗi máy chủ cần truy cập vào một db thường là trên localhost.

Mỗi máy chủ cần có khả năng cập nhật cơ sở dữ liệu và mỗi máy chủ giống như một tấm gương của mọi máy chủ khác. Tất cả đều được đồng bộ hóa thông qua một máy chủ (siêu thị) mà tất cả có thể giao tiếp với.

Tất cả các máy chủ chỉ giao tiếp với siêu thị, họ không biết về bất kỳ máy chủ nào khác. Siêu chủ nó tự là một tấm gương của các máy chủ khác, chỉ với dịch vụ đồng bộ hóa tất cả chúng.

Một số lần siêu thị ngoại tuyến vì nhiều lý do; khi điều này xảy ra, các máy chủ khác sẽ tiếp tục như bình thường, bao gồm đọc và ghi dữ liệu. Khi siêu thị quay trở lại, nó bắt đầu quá trình đồng bộ hóa và phân loại và giải quyết xung đột giữa các máy chủ khác, khi hoàn tất, tất cả các máy chủ đều có bản sao dữ liệu và được 'đồng bộ hóa'.

Vì vậy, sau khi suy nghĩ thêm một chút về câu hỏi, câu hỏi của tôi là;

  • Có cách nào để có một db trên mỗi máy chủ giống nhau trên bảng không mà không có một điểm duy nhất để tôi có thể cập nhật db như trong Cấu trúc liên kết sao?
  • Có một lựa chọn tốt hơn để sao chép mysql trên bảng cho tình huống của tôi không?

Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.

Câu trả lời:


8

Có bốn (4) tùy chọn bạn cần kết hợp

Tùy chọn 1: MySQL trong cấu trúc liên kết hình sao

Vì vậy, để không phát minh lại bánh xe, xin vui lòng đọc các bài viết trước đây của tôi về chủ đề này

Tùy chọn 2: Sử dụng DRBD

Tùy chọn 3: Sử dụng nhân rộng bán đồng bộ

Bất kỳ độ trễ mạng nào cũng có thể ảnh hưởng đến việc thu thập nhật ký nhị phân và việc vận chuyển các mục qua mạng có thể bị nghẽn cổ chai. Sử dụng Sao chép bán đồng bộ của MySQL 5.5 có thể cho phép bạn điều chỉnh các đặc điểm Nhịp tim của MySQL để giảm thiểu việc sao chép mất vị trí của nó do bất kỳ độ trễ mạng đáng kể nào.

Cách 4: Nhân rộng thông tư

Nếu bạn có nhiều thạc sĩ, nhân rộng vòng tròn là phải. Có rất nhiều sản phẩm ngoài kia để cung cấp sao chép vòng tròn, chẳng hạn như mysql-mmm (được đề cập trong bình luận), rất tuyệt vời trong giới hạn của một trung tâm dữ liệu. Đây chỉ là một phần của câu đố của bạn trong đó bốn (4) thứ phải được cung cấp bên ngoài bản sao tròn:

  1. Độ trễ mạng
  2. Khoảng cách Geogrpahic
  3. Dự phòng cấp độ đĩa trên mỗi DataCenter (được xử lý bởi DRBD)
  4. Tự động chuyển đổi xương sống DBVIP của DRBD (thông qua ucarp)

CAUPAT

Đây có thể không phải là câu trả lời đầy đủ của bạn nhưng những tùy chọn này có thể cung cấp những ý tưởng bạn có thể thử trong các tình huống khác nhau. Ví dụ: khi trong cấu trúc liên kết sao, bạn có thể làm như sau:

CẢNH 1

  • Có máy chủ DB tại một trung tâm dữ liệu là SuperMaster đang giữ dữ liệu InnoDB
  • Có Master Master trong cùng một trung tâm dữ liệu (chỉ nhật ký nhị phân)
  • Có tất cả các nô lệ sao chép từ Master Master phân phối

PHONG CÁCH # 2

  • Có máy chủ DB tại một trung tâm dữ liệu là SuperMaster không chứa dữ liệu, điều đó có nghĩa là siêu thị là Master Master (chỉ nhật ký nhị phân)
  • Có tất cả các nô lệ sao chép từ Master Master phân phối

SCENARIO # 3

  • Thiết lập một Master Master trong mỗi Trung tâm dữ liệu sao chép thông tư
  • Trong mỗi Trung tâm dữ liệu, có Instance MySQL (Local SuperMaster) với InnoDB là Công cụ lưu trữ duy nhất
  • Từ mỗi SuperMaster địa phương, treo hai hoặc nhiều nô lệ đọc. Mỗi nô lệ đọc nên sử dụng MyISAM làm Công cụ lưu trữ chính. Mỗi bảng MyISAM nên có ROW_FORMAT = CỐ ĐỊNH để tăng tốc độ đọc 20-30%

Theo khả năng, tùy thuộc vào trí tưởng tượng và ngân sách bộ phận của bạn.

Liên kết cho MySQL và DRBD

DRBD cho dự phòng cấp đĩa và ucarp cho chuyển đổi dự phòng tự động DBVIP


Âm thanh như thể có một chút suy nghĩ về. Tôi quan tâm đến tùy chọn 1 (liên kết đầu tiên) (trong phần 'cập nhật') có bất kỳ hướng dẫn nào trên web về vấn đề này không, vì vậy tôi có thể biết ý tưởng về cách thực hiện sâu không?
Elgoog

còn một câu hỏi nữa tôi có thể phản chiếu Master Master trong trường hợp thất bại không? Với tất cả các nô lệ khác vẫn còn hoạt động và các bản cập nhật sẽ được gửi đến 'gương' DM
Elgoog

Đó là những gì DRBD dành cho: Để phản chiếu thư mục mysql DB cho SuperMaster. Bạn cũng có thể thiết lập một cặp DRBD khác chỉ để nhân bản Phân phối chính.
RolandoMySQLDBA

Sau khi suy nghĩ về điều này trong bữa trưa, tôi đã cập nhật câu hỏi của mình để phản ánh tốt hơn tình hình. Thời tiết hay không câu trả lời của bạn vẫn được áp dụng, tôi cảm ơn bạn đã giúp đỡ và muốn biết suy nghĩ của bạn về tình huống này.
Elgoog

Elgoog, bạn có quan tâm đến MySQL MMM không? Nó sử dụng các tập lệnh để tạo một địa chỉ IP duy nhất làm điểm truy cập để ghi vào bất kỳ máy chủ MySQL có sẵn nào trong nhóm máy chủ của bạn. Đây là một liên kết, nếu bạn muốn tôi gửi câu trả lời với cách tôi thiết lập nó tại nơi làm việc hãy cho tôi biết. mysql-mmm.org
Craig Efrein
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.