Mặc dù bạn nên khóa cơ sở dữ liệu và đóng băng hệ thống tệp khi bạn khởi tạo ảnh chụp nhanh là một ý tưởng hay, nhưng lệnh gọi API thực tế để bắt đầu ảnh chụp nhanh chỉ mất một phần nhỏ giây, do đó, cơ sở dữ liệu và hệ thống tệp của bạn không bị khóa / đóng băng lâu.
Điều đó nói rằng, có một số cân nhắc khác mà bạn không đề cập đến:
-
Khi bạn cố gắng tạo khóa trên cơ sở dữ liệu, có thể cần đợi các câu lệnh khác hoàn tất trước khi khóa được cấp. Trong thời gian này, khóa đang chờ xử lý của bạn có thể báo cáo thêm để đợi cho đến khi bạn lấy và mở khóa. Điều này có thể gây ra sự gián đoạn trong luồng báo cáo trên cơ sở dữ liệu sản xuất của bạn.
-
Sau khi bạn bắt đầu tạo ảnh chụp nhanh, ứng dụng / cơ sở dữ liệu của bạn có thể sử dụng miễn phí hệ thống tệp trên ổ đĩa, nhưng nếu bạn phải ghi nhiều, bạn có thể gặp phải tình trạng chờ đợi cao, đôi khi đủ để tạo ra sự chậm lại đáng kể cho ứng dụng của bạn. Lý do cho điều này là quá trình chụp nhanh nền cần sao chép một khối sang S3 trước khi nó cho phép ghi vào khối đó trên ổ đĩa đang hoạt động.
Tôi giải quyết vấn đề đầu tiên bằng cách yêu cầu khóa và hết thời gian nếu nó không được cấp nhanh chóng. Sau đó, tôi đợi một chút và tiếp tục thử lại cho đến khi tôi nhận được khóa. Thời gian chờ thích hợp và độ trễ thử lại có thể khác nhau đối với các lần tải cơ sở dữ liệu khác nhau.
Tôi giải quyết vấn đề thứ hai bằng cách thực hiện các ảnh chụp nhanh thường xuyên, nhất quán trên nô lệ thay vì chủ, giống như bạn đã đề xuất. Tôi vẫn khuyên bạn nên thực hiện các ảnh chụp nhanh không thường xuyên đối với bản chính chỉ để cải thiện độ bền nội tại của nó (một thuộc tính EBS sâu) nhưng những ảnh chụp nhanh đó không cần phải thực hiện với khóa hoặc đóng băng vì bạn sẽ không sử dụng chúng để sao lưu.
Tôi cũng khuyên bạn nên sử dụng hệ thống tệp hỗ trợ xả và đóng băng (XFS). Nếu không, bạn đang chụp nhanh các bảng bị khóa trong MySQL mà thậm chí có thể chưa có tất cả các khối của chúng trên ổ đĩa EBS hoặc các phần khác của hệ thống tệp có thể bị sửa đổi và không nhất quán trong ảnh chụp nhanh.
Nếu bạn quan tâm, tôi đã xuất bản phần mềm mã nguồn mở thực hiện các phương pháp hay nhất mà tôi đã thu thập liên quan đến việc tạo ảnh chụp nhanh EBS nhất quán với MySQL và XFS (cả hai đều tùy chọn).
Để trả lời câu hỏi cuối cùng của bạn, việc khóa các bảng trong tổng thể sẽ không phá vỡ quá trình sao chép. Trong phần mềm chụp nhanh của mình, tôi cũng xóa các bảng bằng khóa đọc để đảm bảo rằng mọi thứ trên đĩa đều được chụp nhanh và tôi thêm từ khóa "LOCAL" để quá trình xả không bị sao chép sang bất kỳ nô lệ tiềm năng nào.