SQL Academy · Pelajaran

Pengambilalihan dan Pemilihan Ketua (Patroni, Stolon)

Gunakan Patroni atau Stolon untuk pengambilalihan automatik, dan konfigurasikan kuorum bagi mengelakkan pecah otak.

Pelajaran 3 daripada 415 langkah

Pengambilalihan dan Pemilihan Ketua (Patroni, Stolon) ialah pelajaran SQL Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran SQL Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.

Mengapa Peralihan Automatik Selepas Kegagalan?

Peralihan manual selepas kegagalan adalah perlahan dan mudah menyebabkan ralat. Alat mengesan kegagalan pelayan utama dan mengambil alih dengan replika tanpa campur tangan manusia.

Langkah Peralihan Selepas Kegagalan

Perkara yang perlu berlaku:

  1. Kesan bahawa pelayan utama tidak aktif (semakan kesihatan, konsensus)
  2. Pilih replika dengan WAL paling terkini
  3. Ambil alih dengannya (pg_promote / pg_ctl promote)
  4. Konfigurasikan semula replika lain untuk mengikuti pelayan utama baharu
  5. Kemas kini penghalaan sambungan aplikasi

Risiko Otak Terpisah

Jika rangkaian terbahagi, anda mungkin mengambil alih dengan replika sementara pelayan utama lama masih hidup. Dua pelayan utama → tulisan bercanggah → kerosakan data. Elakkan dengan kuorum.

Patroni

Daemon Python yang menggunakan DCS luaran (Storan Konfigurasi Teragih) — biasanya etcd, Consul atau Zookeeper — untuk pemilihan pemimpin:

# patroni.yml
name: pg1
scope: my_cluster
etcd:
  hosts: 10.0.0.10:2379,10.0.0.11:2379,10.0.0.12:2379
postgresql:
  data_dir: /var/lib/postgresql/data

Cara Patroni Memilih Pemimpin Baharu

Daemon Patroni setiap nod berlumba-lumba untuk memperoleh kunci pemimpin dalam etcd. Hanya satu yang boleh memegangnya; nod itu menjadi pelayan utama. Nod lain mengikutinya.

Stolon

Alternatif berasaskan Go. Menggunakan model konsensus yang serupa tetapi dengan ciri operasi yang berbeza. Membahagikan tanggungjawab antara komponen sentinel, keeper dan proksi.

repmgr

Alat yang lebih ringan daripada 2ndQuadrant — kurang automasi, lebih banyak kawalan manual. Sesuai untuk persediaan yang lebih kecil.

Peralihan Automatik Selepas Kegagalan Terurus Awan

RDS, Cloud SQL dan Aurora menguruskan peralihan selepas kegagalan untuk anda. Anda menukar fleksibiliti dengan kesederhanaan operasi.

Penghalaan Sambungan Selepas Peralihan

Aplikasi perlu mengetahui pelayan utama baharu. Pilihannya:

  • Kemas kini DNS (perlahan kerana TTL)
  • IP terapung yang diuruskan oleh alat peralihan selepas kegagalan
  • Lapisan proksi: HAProxy, pgbouncer + skrip, titik akhir AWS RDS

Replikasi Segerak dan Peralihan Selepas Kegagalan

Pelayan siap sedia segerak = tiada kehilangan data yang dijamin. Gabungkan dengan peralihan automatik selepas kegagalan untuk HA yang paling kukuh.

Kuorum

Untuk replikasi segerak, tetapkan synchronous_standby_names dengan kuorum: ANY 2 daripada 3 replika mesti mengesahkan. Ini membolehkan satu replika yang perlahan atau gagal ditoleransi tanpa menyekat COMMIT.

synchronous_standby_names = 'ANY 2 (replica1, replica2, replica3)'

Baca Selepas Tulis

Selepas peralihan selepas kegagalan atau apabila terdapat ketinggalan replikasi, aplikasi mungkin menulis kepada pelayan utama baharu dan serta-merta membaca data lapuk daripada replika. Halakan bacaan selepas tulisan kepada pelayan utama atau gunakan penjejakan pg_last_wal_replay_lsn.

Menguji Peralihan Selepas Kegagalan

Uji sebelum anda memerlukannya. Matikan pelayan utama dalam persekitaran pementasan setiap bulan. Latih panduan operasi. Tekanan peralihan sebenar selepas kegagalan sudah cukup buruk; kejutan menjadikannya lebih buruk.

Ringkasan

Peralihan automatik selepas kegagalan mengeluarkan manusia daripada laluan kritikal.

  • Patroni / Stolon untuk pengurusan sendiri
  • RDS / Cloud SQL untuk pengurusan terurus
  • Berwaspada terhadap otak terpisah — gunakan kuorum
  • Berlatih melakukan peralihan selepas kegagalan secara berkala

Semakan Pantas

Apakah maksud "otak terpisah" dalam konteks replikasi PostgreSQL?

Percuma untuk bermula

Pelajari SQL dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
46
Pelajaran
183

Soalan Lazim

Adakah pelajaran “Pengambilalihan dan Pemilihan Ketua (Patroni, Stolon)” percuma?

Ya — teks penuh “Pengambilalihan dan Pemilihan Ketua (Patroni, Stolon)” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus SQL Academy, tingkat taraf kepada CoddyKit PRO. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengambilalihan dan Pemilihan Ketua (Patroni, Stolon)”?

Gunakan Patroni atau Stolon untuk pengambilalihan automatik, dan konfigurasikan kuorum bagi mengelakkan pecah otak. Anda berlatih SQL Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan SQL Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran SQL Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Pengambilalihan dan Pemilihan Ketua (Patroni, Stolon)” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Replikasi Penstriman dan WAL
  2. Replikasi Logik untuk Pembahagian
  3. Pengambilalihan dan Pemilihan Ketua (Patroni, Stolon)
  4. Replika Bacaan dan Penghalaan Sambungan
← Kembali ke SQL Academy