Sáng nay tôi đã tham gia nâng cấp cơ sở dữ liệu PostgreSQL trên AWS RDS. Chúng tôi muốn chuyển từ phiên bản 9.3.3 sang phiên bản 9.4.4. Chúng tôi đã "thử nghiệm" bản nâng cấp trên cơ sở dữ liệu dàn, nhưng cơ sở dữ liệu dàn đều nhỏ hơn nhiều và không sử dụng Multi-AZ. Hóa ra bài kiểm tra này khá bất cập.
Cơ sở dữ liệu sản xuất của chúng tôi sử dụng Multi-AZ. Chúng tôi đã thực hiện nâng cấp phiên bản nhỏ trong quá khứ và trong những trường hợp đó, RDS sẽ nâng cấp chế độ chờ trước rồi sau đó quảng cáo lên bản chính. Do đó, thời gian chết duy nhất phát sinh là ~ 60 giây trong thời gian chuyển đổi dự phòng.
Chúng tôi cho rằng điều tương tự sẽ xảy ra đối với việc nâng cấp phiên bản chính, nhưng ồ chúng tôi đã sai như thế nào.
Một số chi tiết về thiết lập của chúng tôi:
- db.m3.lund
- IOPS được cấp phép (SSD)
- Dung lượng lưu trữ 300 GB, trong đó 139 GB được sử dụng
- Chúng tôi đã có các bản nâng cấp hệ điều hành RDS nổi bật, chúng tôi muốn bó với bản nâng cấp này để giảm thiểu thời gian chết
Dưới đây là các sự kiện RDS được ghi lại trong khi chúng tôi thực hiện nâng cấp:
CPU cơ sở dữ liệu đã được tối đa hóa trong khoảng từ 08:44 đến 10:27. Rất nhiều thời gian này dường như bị chiếm giữ bởi RDS chụp ảnh chụp trước nâng cấp và sau nâng cấp.
Các tài liệu AWS không cảnh báo về những hậu quả như vậy, mặc dù từ khi đọc chúng, rõ ràng một lỗ hổng rõ ràng trong cách tiếp cận của chúng tôi là chúng tôi đã không tạo một bản sao của cơ sở dữ liệu sản xuất trong thiết lập Multi-AZ và cố gắng nâng cấp nó thành chạy thử
Nói chung, nó rất bực bội vì RDS đã cung cấp cho chúng tôi rất ít thông tin về những gì nó đang làm và thời gian có thể mất bao lâu. (Một lần nữa, thực hiện chạy thử sẽ giúp ...)
Ngoài ra, chúng tôi muốn học hỏi từ sự cố này vì vậy đây là câu hỏi của chúng tôi:
- Đây có phải là điều bình thường khi thực hiện nâng cấp phiên bản chính trên RDS không?
- Nếu chúng tôi muốn thực hiện nâng cấp phiên bản lớn trong tương lai với thời gian chết tối thiểu, chúng tôi sẽ thực hiện như thế nào? Có một số cách thông minh để sử dụng nhân rộng để làm cho nó liền mạch hơn?
ANALYZE
để cập nhật các số liệu thống kê đã giải quyết nó. Nếu bất cứ ai có cái nhìn sâu sắc về điều này cũng sẽ là tuyệt vời.