Bu sabah AWS RDS'de bir PostgreSQL veri tabanının güncellenmesine katıldım. 9.3.3 sürümünden 9.4.4 sürümüne geçmek istedik. Yükseltmeyi bir hazırlama veritabanında "test ettik", ancak hazırlama veritabanı hem çok daha küçüktür ve Multi-AZ kullanmaz. Bu testin oldukça yetersiz olduğu ortaya çıktı.
Üretim veritabanımızda Multi-AZ kullanılmaktadır. Geçmişte küçük sürüm yükseltmeleri yaptık ve bu durumlarda RDS önce bekleme modunu yükseltir ve daha sonra master'a yükseltir. Böylece, yük devretme sırasında meydana gelen tek kesinti süresi ~ 60s'dir.
Aynı şeyin büyük sürüm yükseltmesi için olacağını varsaydık, ama oh ne kadar yanıldık.
Kurulumumuzla ilgili bazı ayrıntılar:
- db.m3.large
- Sağlanan IOPS (SSD)
- 139 GB'ı kullanılan 300 GB depolama alanı
- Olağanüstü RDS işletim sistemi yükseltmeleri vardı, kesinti süresini en aza indirmek için bu yükseltme ile toplu iş yapmak istedik
Yükseltmeyi gerçekleştirirken kaydedilen RDS olayları şunlardır:
Veritabanı CPU yaklaşık 08:44 ve 10:27 arasında maksimize edildi. Bu zamanın çoğunda RDS tarafından bir yükseltme öncesi ve yükseltme sonrası anlık görüntü çekildi.
AWS dokümanlar bunları okumasını ancak anlaşılacağı yaklaşımımızda bariz bir kusurdur biz bir kopyasını yaratmadı ki bu tür yankıları uyarma üretim Çoklu AZ kurulumunda veritabanı ve gibi yükseltmeye çalışın deneme koşusu
Genel olarak çok sinir bozucuydu, çünkü RDS bize ne yaptığı ve ne kadar süreceği hakkında çok az bilgi verdi. (Yine, deneme çalışması yapmak yardımcı olurdu ...)
Bunun dışında, bu olaydan öğrenmek istiyoruz, işte sorularımız:
- RDS'de büyük bir sürüm yükseltmesi yaparken bu tür bir şey normal mi?
- Gelecekte asgari kesinti süresiyle büyük bir sürüm yükseltmesi yapmak isteseydik, nasıl başaracağız? Daha sorunsuz hale getirmek için çoğaltmayı kullanmanın akıllıca bir yolu var mı?
ANALYZE
İstatistikleri güncellemek için bir kılavuz çözüldü. Herkes bu konuda herhangi bir fikir varsa bu da çok iyi olurdu.