Streaming replikasi dan failover pada PostgreSQL


14

Saya melakukan bukti konsep replikasi PostgreSQL. Setelah diskusi di forum kami memutuskan untuk pergi dengan replikasi streaming karena kinerjanya baik dibandingkan dengan solusi lain. PostgreSQL tidak menyediakan failover otomatis untuk replikasi streaming. Kita dapat mengalihkan slave ke master menggunakan file trigger tetapi itu tidak dapat dikelola. Jadi saya ingin solusi dengan failover otomatis dan ketersediaan tinggi.

Solusi berbeda tersedia:

  1. Repmgr
  2. Detak Jantung Linux
  3. Pgpool-II (hanya untuk failover otomatis)
  4. Alat lain jika Anda menggunakan.

Pertanyaan saya adalah solusi mana yang harus digunakan?

Jawaban:


8

Di toko kami, kami memilih repmgr dan pgbouncer daripada pgpool. repmgr memiliki beberapa perkakas yang bagus untuk mengatur dan memelihara sekelompok server basis data yang direplikasi. Dalam kasus kami 1 master dan 2 budak (satu failover dan satu tes kinerja live read yang dapat menjadi failover dari master baru). pgpool memiliki masalah dengan perubahan dalam konfigurasi, dalam kebanyakan kasus Anda harus me-restart layanan dan karenanya Anda memiliki beberapa downtime. Ini adalah masalah ketika Anda membutuhkan ketersediaan 24x7x365.

repmgrd (deamon) membantu memilih master baru setelah failover, Anda benar-benar tidak ingin situasi otak yang terpecah. Kami memiliki satu alamat ip virtual untuk database master, database yang master pada saat itu. Ketika server lain menjadi master, ini adalah satu-satunya server yang menggunakan alamat ini. Setiap server basis data juga memiliki alamat IP sendiri untuk permintaan hanya baca.

repmgr dikelola oleh orang yang sama yang membuat replikasi streaming di tempat pertama, sehingga mereka tahu apa yang mereka bicarakan. Versi 2.0 akan segera dirilis.

Bersiaplah untuk situasi terburuk, lakukan beberapa pengujian serius dengan menarik beberapa colokan listrik dan jaringan! Ketika ada yang tidak beres, banyak hal lain sudah salah dan akan menggigit Anda di belakang ketika Anda tidak mampu membelinya.

Replikasi adalah satu hal, kegagalan kerja setelah beberapa masalah serius, adalah hal lain.


1

Kami menggunakan dua solusi berbeda dalam kombinasi pada saat bersamaan ...

Pgpool-II untuk replikasi sinkron dan Slony2 untuk replikasi asinkron (terpicu).

Performanya luar biasa


Terima kasih atas tanggapannya ... Sebenarnya saya mencoba Pgpool-II dengan replikasi streaming. Ini memberikan failover otomatis. Tetapi jika saya akan memulai lagi simpul primer, Bisakah pgpool-II akan mulai sebagai master lagi atau simpul siaga?
Saurabh

Sejauh yang saya tahu pasti tidak. Anda harus melakukan pemulihan node primer secara manual. Pengaturan kami sedikit berbeda. ini adalah multi master evironment dan semua node memiliki hak yang sama. Jika satu node tidak sinkron, load balancers menolak mengarahkan klien ke node ini.
user5701
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.