Kami telah menyediakan paket pglogical 1.1 untuk PostgreSQL 9.6beta1 untuk distribusi berbasis rpm dan deb. Mereka tersedia untuk diinstal dari repositori paket pglogical standar kami.
Anda mungkin bertanya mengapa kami merilis paket untuk Postgres versi beta? Nah, salah satu alasannya adalah Anda dapat menggunakan pglogical untuk mereplikasi database PostgreSQL 9.5 atau 9.4 yang ada ke 9.6beta1 secara real-time dan menjalankan tes untuk membantu menghilangkan bug yang tersisa dalam rilis beta. Berikut adalah tutorial singkat tentang cara melakukannya.
Langkah pertama adalah menginstal PostgreSQL 9.6beta1, periksa pengumuman rilis untuk informasi tentang cara melakukannya. Langkah kedua adalah menginstal pglogical seperti yang dijelaskan pada halaman petunjuk instalasi.
Sekarang untuk pengaturan replikasi yang sebenarnya. Ini cukup mudah. Mulailah dengan memastikan bahwa PostgreSQL dikonfigurasi untuk memungkinkan replikasi logis:
wal_level = 'logical'
max_worker_processes = 10 # one per database needed on provider node
# one per node needed on subscriber node
max_replication_slots = 10 # one per node needed on provider node
max_wal_senders = 10 # one per node needed on provider node
shared_preload_libraries = 'pglogical'
Mengubah pengaturan di atas memerlukan restart server.
Anda juga harus mengizinkan koneksi replikasi yang masuk di pg_hba.conf (seperti saat menyiapkan replikasi streaming fisik). Baris di pg_hba.conf akan terlihat seperti ini:
host replication postgres 10.0.0.2/32 md5
Lihat halaman dokumentasi pg_hba untuk info lebih lanjut.
Selanjutnya, instal ekstensi pglogical pada database penyedia dan buat simpul pglogical di sana:
CREATE EXTENSION pglogical;
SELECT pglogical.create_node(
node_name := 'provider1',
dsn := 'host=providerhost port=5432 dbname=db'
);
Kemudian lakukan hal yang sama pada database 9.6 yang baru:
CREATE EXTENSION pglogical;
SELECT pglogical.create_node(
node_name := 'subscriber1',
dsn := 'host=subscriberhost port=5432 dbname=db'
);
Perhatikan bahwa string koneksi harus mengarah ke database tempat Anda menjalankan perintah ini.
Kembali ke database penyedia, tambahkan tabel yang ingin Anda tiru ke default
kumpulan replikasi Cara sederhana untuk melakukannya adalah dengan menambahkan semua tabel di public
skema seperti ini:
SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
Dan terakhir, sekali lagi di database pelanggan, buat langganan yang terhubung ke penyedia dan mulai mereplikasi.
SELECT pglogical.create_subscription(
subscription_name := 'subscription1',
provider_dsn := 'host=providerhost port=5432 dbname=db',
synchronize_structure := true
);
Di sini string koneksi harus sama dengan yang digunakan saat membuat simpul pglogical penyedia. synchronize_structure := true
artinya pglogical akan menyalin semua struktur tabel dari database penyedia ke database pelanggan (menggunakan pg_dump
standar ).
Dan hanya itu, Anda sekarang memiliki replikasi yang berfungsi antara database PostgreSQL 9.5 atau 9.4 yang ada dan PostgreSQL 9.6beta1 yang baru.
Periksa dokumentasi pglogical dan halaman proyek untuk informasi tambahan tentang fungsi yang digunakan dalam posting ini dan tentang cara melakukan lebih dari sekadar replikasi sederhana.