Saya mengevaluasi PostgreSQL 9.1 dan memiliki beberapa pertanyaan yang terkait dengan rincian failover dan replikasi.
Saya punya beberapa skenario pengujian. Yang pertama dengan server Master dan beberapa Slave. Jika Guru crash, saya ingin salah satu Budak menjadi Master. Setelah Master kembali ke keadaan normal, itu harus disinkronkan dengan server lain di cluster (terapkan semua perubahan yang dilakukan saat itu turun) dan klaim kembali peran Master atau menjadi seorang budak.
Masalah yang saya lihat dengan PostgreSQL dan skenario saat ini adalah sebagai berikut.
1) Saya tidak melihat alat bawaan untuk mendeteksi pemadaman server utama. Saya membaca bahwa pgpool dapat mengatasinya dan membuat file pemicu, saya juga membaca bahwa orang-orang menggunakan detak jantung Linux atau alat serupa untuk ini. Oke, saya bisa mendeteksi failover dan menetapkan Master in cluster baru. Akankah Budak lainnya mengerti bahwa ada Guru baru dan mereka harus mem-backup-nya sekarang?
2) Saya tidak mengerti prosedur failback. Konfigurasi host Master dan Slave berbeda. Jadi, akankah saya memiliki dua Master setelah kegagalan Master yang gagal? Bagaimana server kembali sinkron? Saya hanya melihat solusi manual seperti "transfer data folder ke server dan restart". Jadi apa solusinya atau praktik terbaik atau setidaknya kepala sekolah utama di sini?
3) Bagaimana saya harus menangani pemadaman server di sisi klien? Ketika saya membuat koneksi saya secara eksplisit menentukan IP server. Haruskah saya mengembangkan semacam ConnectionManager yang akan mengetahui struktur Master-Slave saya, mengirim permintaan hanya kepada Master dan jika ada kehilangan koneksi akan beralih ke server cadangan dan sebagainya? Saya membaca bahwa pgpool dapat menjadi titik masuk untuk aplikasi dan mengelola koneksi dengan cara yang benar. Apakah pgpool satu-satunya solusi di sini? Apakah ini menangani failover dan failback dengan baik?
4) Apakah ada solusi (komersial juga) sehingga saya dapat menghindari menyalin data secara manual, mengkonfigurasi ulang instance PostgreSQL dan hal-hal lain yang harus dilakukan dengan tangan? Jadi jenis konfigurasi cluster ketika semua orang dalam sinkronisasi, jelas siapa Master dan semuanya beralih secara otomatis tanpa perhatian operator?
Menurut utas dan artikel ini
Streaming replikasi dan failover pada PostgreSQL
Mengotomatiskan failover di PostgreSQL 9.1
http://denishjpatel.blogspot.com/2010/11/possibility-of-graceful-switchover.html
tidak ada solusi otomatis sepenuhnya untuk menyelesaikan pertanyaan ini. Apakah saya benar?
Terima kasih!