0Pricing
SQL Academy · Pelajaran

Replikasi Streaming dan WAL

Konfigurasikan replikasi fisik streaming berbasis WAL, pantau keterlambatan, dan siapkan replika sinkron untuk penulisan tanpa kehilangan data

Replikasi Streaming dan WAL adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Mengapa Melakukan Replikasi?

Replikasi melayani beberapa tujuan sekaligus:

  • HA — bertahan saat primer gagal
  • Penskalaan pembacaan — mengalihkan SELECT ke replika
  • Cadangan / PITR — pengarsipan berkelanjutan
  • Distribusi geografis — replika berada dekat dengan pengguna

WAL: Write-Ahead Log

Setiap penulisan terlebih dahulu masuk ke WAL. WAL menjamin ketahanan data dan menjadi dasar replikasi: alirkan WAL ke replika → replika memutar ulang WAL → replika menjadi mutakhir.

Replikasi Streaming Fisik

Aliran WAL byte demi byte dari primer ke replika:

  • Replika adalah salinan biner dari primer
  • Versi PostgreSQL sama
  • Seluruh klaster direplikasi (semua database dan semua tabel)
  • Hanya dapat dibaca

Penyiapan: Primer

Konfigurasikan primer dalam postgresql.conf:

wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB

-- pg_hba.conf: allow replication connections
host replication replicator 10.0.0.0/24 md5

Penyiapan: Replika

Buat cadangan dasar, lalu mulai dengan primary_conninfo:

pg_basebackup -h primary -D /var/lib/postgresql/data -U replicator -W -X stream -P

-- postgresql.conf on replica:
primary_conninfo = 'host=primary port=5432 user=replicator password=...'

-- Touch standby.signal file and start:
touch /var/lib/postgresql/data/standby.signal

Sinkron vs Asinkron

  • Asinkron (bawaan) — primer melakukan commit tanpa menunggu; replika mungkin tertinggal
  • Sinkron — primer menunggu konfirmasi replika sebelum COMMIT; tidak ada kehilangan data, tetapi lebih lambat
-- Synchronous configuration on primary:
synchronous_commit = on
synchronous_standby_names = 'replica1, replica2'

Keterlambatan Replikasi

Replika asinkron tertinggal dari primer. Pantau:

SELECT client_addr, state, sent_lsn, write_lsn, replay_lsn,
       pg_wal_lsn_diff(sent_lsn, replay_lsn) AS replay_lag_bytes
FROM pg_stat_replication;

Slot Replikasi

Slot memastikan primer mempertahankan WAL sampai replika selesai menggunakannya:

SELECT pg_create_physical_replication_slot('replica1');

-- On replica:
primary_slot_name = 'replica1'

Kelemahan Slot

Jika replika terputus dan tidak pernah tersambung kembali, slotnya mencegah pembersihan WAL—disk akan penuh. Hapus slot yang tidak digunakan:

SELECT pg_drop_replication_slot('replica1');

Replika Berantai

Replika dapat mengalirkan WAL ke replika lain—ini mengurangi beban pada primer.

Hot Standby

Secara bawaan, replika menerima kueri hanya-baca (hot_standby = on). Kueri baca yang berjalan lama pada replika dapat menunda pemutaran ulang WAL; sesuaikan max_standby_streaming_delay.

Promosi

Untuk menjadikan replika sebagai primer baru:

pg_ctl promote -D /var/lib/postgresql/data

-- Or in SQL:
SELECT pg_promote();

Rangkuman

Replikasi streaming = pengiriman WAL + pemutaran ulang.

  • Fisik dan identik secara biner
  • Asinkron secara bawaan; sinkron untuk mencegah kehilangan data
  • Slot mempertahankan WAL, tetapi harus dikelola dengan hati-hati
  • Promosi mengubah replika menjadi primer

Pemeriksaan Singkat

Apa risiko utama jika TIDAK menggunakan slot replikasi untuk replika streaming?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Replikasi Streaming dan WAL” gratis?

Ya — teks lengkap “Replikasi Streaming dan WAL” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Replikasi Streaming dan WAL”?

Konfigurasikan replikasi fisik streaming berbasis WAL, pantau keterlambatan, dan siapkan replika sinkron untuk penulisan tanpa kehilangan data Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Replikasi Streaming dan WAL” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Replikasi Streaming dan WAL
  2. Replikasi Logis untuk Sharding
  3. Failover dan Pemilihan Pemimpin (Patroni, Stolon)
  4. Replika Baca dan Pengarahan Koneksi
← Kembali ke SQL Academy