Percona xtrabackup có phải là lựa chọn phù hợp cho bản sao lưu MySQL 500GB của tôi không?


7

Tôi có một db MySQL với 500GB, bao gồm chủ yếu là các bảng Innodb và một bảng MyISAM lớn (200 GB). Chiến lược sao lưu hiện tại của tôi là sao chép các tệp db vào ổ cứng ngoài. Điều này gây ra thời gian chết ~ 4 giờ. Nhu cầu của tôi:

  1. Giá thấp.
  2. Thời gian phục hồi có thể lâu dài. Không cần nhân rộng thời gian thực.
  3. Có thể xử lý mất dữ liệu trong phạm vi 1week-2week.
  4. Sẽ thích một thời gian ngắn nhất có thể để sao lưu, nhưng có thể sống với bất cứ thứ gì lên đến 2 giờ.

Hiện đang xem xét cố gắng chuyển sang Percona xtrabackup. Đây có phải là giải pháp phù hợp cho trường hợp sử dụng của tôi? Tôi đặc biệt lo ngại rằng nó khóa bảng MyISAM và đường cong học tập.

Câu trả lời:


8

Từ âm thanh này, bạn có thể sử dụng một cơ sở hạ tầng DB khác.

Dựa trên nhu cầu đã nói ở trên của bạn, tôi có một đề nghị nhưng sẽ đòi hỏi một chút thỏa hiệp.

SUGGESTION # 1 : Sử dụng bản sao MySQL trên cùng một máy chủ nhưng đĩa khác nhau

Nhu cầu thứ hai của bạn ( No need of real-time replication) sẽ phải lùi lại một chút trong đề xuất này. Vì bạn có một ổ cứng ngoài đủ lớn cho XtraBackup, tại sao không sử dụng làm datadir cho phiên bản thứ hai của MySQL trên cùng một hộp?

Tôi đã viết kịch bản dịch vụ của riêng mình để cung cấp phiên bản mysql chuyên dụng cho các cổng 3307 - 3399. Đây là những bài viết trước đây của tôi về điều này:

SUGGESTION # 2 : Sử dụng bản sao MySQL trên máy chủ khác

Khi xem xét nhu cầu đầu tiên của bạn ( Low Cost), nếu bạn có quyền truy cập vào máy chủ hàng hóa có đủ không gian đĩa, hãy thiết lập Bản sao MySQL cho máy chủ bên ngoài đó. Bằng cách đó bạn có thể chạy các bản sao lưu trên Slave như sau

  • STOP SLAVE;
  • XtraBackup
  • START SLAVE;

Bạn có thể làm điều này với tác động bằng không (không tải máy chủ, không có I / O đĩa) trên Master

SUGGESTION # 3 : mysqldumps song song

Bạn có thể thiết lập mysqldumps song song của cơ sở dữ liệu hoặc bảng. Điều này có thể dẫn đến một cửa sổ thời gian ngắn hơn để sao lưu. XtraBackup về cơ bản thực hiện sao lưu giao dịch có điểm kiểm tra với các hoạt động nhạy cảm theo thời gian để thời điểm sao lưu dự phòng là khi sao lưu kết thúc. Với mysqldumps song song trên một nô lệ không sao chép sẽ cung cấp cho bạn các bản sao lưu có thời điểm là điểm bắt đầu của bản sao lưu. Làm mysqldump trên một nô lệ bị dừng sẽ là bất khả tri của công cụ lưu trữ. Nói cách khác, việc các bảng là InnoDB hay MyISAM không thành vấn đề.

Nếu bạn áp dụng điều này cho SUGGESTION # 1, điều này sẽ phát sinh tải máy chủ và I / O của đĩa vì cả Master và Slave đều nằm trên cùng một máy.

Nếu bạn áp dụng điều này cho SUGGESTION # 2, sẽ không có hình phạt nào đối với Master. Bạn có thể chạy các bản sao lưu theo ý muốn trên Slave. Bạn cũng sẽ không phải lo lắng về việc khóa các bảng MyISAM.

Xin vui lòng xem bài viết trước đây của tôi về làm mysqldumps song song


+1 cho tất cả những điều này, nhưng sở thích cá nhân của tôi là lấy bản sao lưu từ một nô lệ nếu có thể. Và hơn thế nữa từ một nô lệ trên một máy chủ khác (để hạn chế nỗi đau lỗi phần cứng).
Derek Downey

@DTest tôi đồng ý. Sở thích của tôi luôn là Slave trên một máy chủ khác. Một số sử dụng Slave trên cùng một máy chủ nhưng khác nhau là Port và datadir DiskVolume như một biện pháp cắt giảm chi phí. Một số khách hàng của chủ nhân của tôi sống với nó. Tôi sống với hậu quả.
SIGH

Tôi không phải lúc nào cũng ' khôn ngoan ' như bây giờ *! từ chối trách nhiệm : vẫn không khôn ngoan.
Derek Downey

Nếu tôi sẽ làm gợi ý số 1, thì nó sẽ nặng đến mức nào trên máy chủ chính của tôi? Trước đây tôi đã từng thử đề xuất số 2, nhưng máy chủ hàng hóa (dựa trên đám mây) có I / O rất kém và không quản lý được khối lượng công việc.
Noam

Đề xuất số 1 sẽ thêm một số tải máy chủ và I / O đĩa vì bạn đang chạy hai phiên bản MySQL trên cùng một hộp. Sử dụng datadir cho phiên bản 3306 trên một đĩa và một đĩa khác cho datadir của phiên bản 3307 sẽ làm giảm I / O của đĩa nhưng hai phiên bản sẽ cạnh tranh cho cùng một bộ nhớ. Có lẽ (đối với gợi ý số 2), bạn nên sử dụng Slave có phần cứng giống hệt với Master. Nếu bạn phải sử dụng máy chủ hàng hóa cho đề xuất số 2, hãy hạn chế tất cả đọc và ghi cho ứng dụng của bạn với Master. Sử dụng Slave nghiêm ngặt để sao lưu. Ngay STOP SLAVE;khi Seconds_Behind_Master bằng 0.
RolandoMySQLDBA
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.