0Pricing
SQL Academy · Pelajaran

Replikasi Logis untuk Sharding

Gunakan replikasi logis PUBLICATION/SUBSCRIPTION untuk memindahkan tabel antarklaster dan mendukung peningkatan versi mayor

Replikasi Logis untuk Sharding adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Replikasi Logis vs Fisik

Fisik mereplikasi BYTES dari WAL—seluruh klaster dengan versi yang sama. Logis mereplikasi ROWS—tabel yang dipilih, bahkan mungkin lintas versi PG:

  • Berlangganan ke tabel tertentu
  • Melakukan replikasi dari PG 14 → PG 16 (untuk peningkatan versi!)
  • Hubungan dua arah / multi-primer dengan hati-hati
  • Skema yang berbeda diperbolehkan

Penyiapan: Publisher

Tandai primer sebagai publisher:

-- postgresql.conf
wal_level = logical

-- Create a publication:
CREATE PUBLICATION pub_orders FOR TABLE orders, order_items;

-- Or all tables in the database:
CREATE PUBLICATION pub_all FOR ALL TABLES;

Penyiapan: Subscriber

Pada database target:

CREATE SUBSCRIPTION sub_orders
  CONNECTION 'host=primary port=5432 user=repl dbname=mydb'
  PUBLICATION pub_orders;

Sinkronisasi Awal

Langganan melakukan penyalinan awal semua tabel yang sesuai, lalu mengalirkan perubahan. Skema target harus sesuai dengan sumber.

Kasus Penggunaan: Peningkatan Versi Utama

Replikasi logis adalah cara modern untuk meningkatkan versi Postgres dengan waktu henti minimal:

  1. Bangun klaster PG16
  2. Lakukan replikasi logis dari PG14 ke PG16
  3. Alihkan aplikasi saat PG16 sudah menyusul
  4. Matikan PG14

Kasus Penggunaan: Memisahkan Database

Untuk memecah satu database raksasa menjadi beberapa database yang lebih kecil:

  1. Publikasikan hanya tabel yang diperlukan layanan baru
  2. Berlangganan dari database baru
  3. Pindahkan penulisan setelah proses menyusul selesai

Kasus Penggunaan: Replika Heterogen

Replikasi ke replika baca dengan indeks yang berbeda, atau ke PostgreSQL gudang data dengan kolom pelaporan tambahan.

Konflik

Replikasi logis tidak menyelesaikan konflik secara otomatis. Jika baris yang sama diperbarui di kedua sisi, subscriber berhenti dengan sebuah galat. Hindari hal ini dengan:

  • Menulis hanya ke satu sisi
  • Menggunakan REPLICA IDENTITY FULL untuk diagnosis yang lebih baik
  • Menyelesaikan konflik secara manual lalu memulai ulang langganan

Perubahan Skema

DDL TIDAK direplikasi. Terapkan perubahan skema secara manual di kedua sisi—biasanya pada subscriber terlebih dahulu, kemudian publisher. Atau gunakan ekstensi pglogical yang dapat mereplikasi DDL.

Replikasi Parsial

PG modern memungkinkan filter baris dan daftar kolom untuk setiap publikasi:

CREATE PUBLICATION us_only FOR TABLE customers
  WHERE (country = 'US');

CREATE PUBLICATION compact FOR TABLE users (id, email);

Sharding dengan Replikasi Logis

Pindahkan penyewa ke shard khusus:

  1. Publikasi pada sumber yang difilter untuk satu penyewa
  2. Berlangganan dari tujuan
  3. Alihkan aplikasi ke shard baru
  4. Hapus data penyewa dari sumber

Kinerja dan Keterlambatan

Replikasi logis umumnya berjalan dalam satu utas untuk setiap langganan. Sumber dengan volume tinggi mungkin memperoleh manfaat dari beberapa publikasi atau langganan, atau alat pihak ketiga seperti pglogical / Debezium.

Rangkuman

Replikasi logis memungkinkan streaming tingkat baris.

  • Lintas versi dan sebagian tabel
  • Peningkatan versi utama dengan waktu henti minimal
  • Menangani konflik adalah tanggung jawab YOUR
  • DDL tidak direplikasi

Pemeriksaan Singkat

Anda perlu meningkatkan versi dari PostgreSQL 14 ke 16 dengan waktu henti minimal. Replikasi mana yang membantu?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Replikasi Logis untuk Sharding” gratis?

Ya — teks lengkap “Replikasi Logis untuk Sharding” 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 Logis untuk Sharding”?

Gunakan replikasi logis PUBLICATION/SUBSCRIPTION untuk memindahkan tabel antarklaster dan mendukung peningkatan versi mayor 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 2 dari 4.

Berapa lama pelajaran “Replikasi Logis untuk Sharding” 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