Pagi ini saya terlibat dalam meningkatkan basis data PostgreSQL di AWS RDS. Kami ingin beralih dari versi 9.3.3 ke versi 9.4.4. Kami telah "menguji" pemutakhiran pada basis data pementasan, tetapi basis data pementasan keduanya jauh lebih kecil, dan tidak menggunakan Multi-AZ. Ternyata tes ini cukup tidak memadai.
Basis data produksi kami menggunakan Multi-AZ. Kami telah melakukan pemutakhiran versi minor di masa lalu, dan dalam kasus itu RDS akan memutakhirkan siaga terlebih dahulu dan kemudian mempromosikannya ke master. Jadi satu-satunya downtime yang terjadi adalah ~ 60s selama failover.
Kami berasumsi hal yang sama akan terjadi pada peningkatan versi utama, tetapi oh betapa salahnya kami.
Beberapa detail tentang pengaturan kami:
- db.m3.large
- IOPS (SSD) yang disediakan
- Penyimpanan 300 GB, di mana 139 GB digunakan
- Kami memiliki peningkatan OS RDS yang luar biasa, kami ingin menggunakan upgrade ini untuk meminimalkan waktu henti
Berikut adalah peristiwa RDS yang dicatat saat kami melakukan peningkatan:
Basis data CPU dimaksimalkan antara sekitar 08:44 dan 10:27. Banyak waktu ini tampaknya ditempati oleh RDS mengambil snapshot pra-upgrade dan pasca-upgrade.
Dokumen AWS tidak memperingatkan dampak semacam itu, meskipun dari membacanya jelas bahwa kelemahan yang jelas dalam pendekatan kami adalah bahwa kami tidak membuat salinan basis data produksi dalam pengaturan Multi-AZ dan mencoba untuk memutakhirkannya sebagai percobaan
Secara umum itu sangat membuat frustrasi karena RDS memberi kami sedikit informasi tentang apa yang dilakukannya dan berapa lama waktu yang diperlukan. (Sekali lagi, melakukan uji coba akan membantu ...)
Selain itu, kami ingin belajar dari kejadian ini jadi inilah pertanyaan kami:
- Apakah hal semacam ini normal ketika melakukan peningkatan versi utama pada RDS?
- Jika kami ingin melakukan peningkatan versi utama di masa depan dengan downtime minimal, bagaimana kami melakukannya? Apakah ada semacam cara pintar untuk menggunakan replikasi agar lebih mulus?
ANALYZE
untuk memperbarui statistik menyelesaikannya. Jika ada yang punya wawasan tentang ini, itu akan menjadi besar juga.