PostgreSQL Logical Replication

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

https://www.2ndquadrant.com/en/resources/pglogical/ .. Käesolev tekst kirjeldab PostgreSQL v. 10 nö sisemise loogilise replikeerimise kasutamist.

Tööpõhimõte

TODO

Paigaldamine

Piisab tavalisest postgresql v. 10 tarkvara paigaldamisest.

TODO

Seadistamine - publitseerija

# create role replicator replication login password 'parool';

pg_hba.conf muudatus

host all replicator node1 md5
postgres=# create database db_imretest;
CREATE DATABASE

postgres=# \c db_imretest 

db_imretest=# create table tabelinimi (nimi varchar(50), kaugus integer);
CREATE TABLE

db_imretest=# create publication bpub for table tabelinimi;
CREATE PUBLICATION

db_imretest=# grant all on tabelinimi to replicator;
GRANT

Seadistamine - subskribeerija

# create subscription bsub connection 'dbname=db_imretest host=192.168.10.222 user=replicator password=parool' publication bpub;
NOTICE:  created replication slot "bsub" on publisher
CREATE SUBSCRIPTION

Haldamine

Create database baasis kirjeldatud subscriptionite esitamiseks sobib öelda

db_ocsp=# select * from pg_subscription;
-[ RECORD 1 ]---+---------------------------------------------------------------------
subdbid         | 16725
subname         | bsub
subowner        | 10
subenabled      | t
subconninfo     | dbname=db_imretest host=10.110.9.64 user=replicator password=parool
subslotname     | bsub
subsynccommit   | off
subpublications | {bpub}

Sarnaselt create database baasis kirjeldatud publicationite esitamiseks

db_ejbca=# select * from pg_publication;

Kui baasis publicationit pole või see ei toimi ning subsciber muudkui pöördub ja tal on pg_hba.conf abil lubatud pöörduda jne, siis võib hakata tekkima suures koguses pisikesi faile katalooogi

/var/lib/postgresql/11/main/pg_logical/snapshots

Kui publitseerimist ei toimu sisuliselt ja failisüsteem on täis saanud, siis tuleb publitseerimise baasis reaalselt tegevused lõpetada nt selliselt

  • veenduda, et postgres kasutaja protsesse ei tööta
  • kustutada failid kataloogist /var/lib/postgresql/11/main/pg_logical/snapshots
# find /var/lib/postgresql/11/main/pg_logical/snapshots/ -type f -delete
  • lõpetada pg_hba.conf failis subscriberite ligipääsemine, nt
host    all     replicator     0.0.0.0/0    reject
  • käivitada baasi protsessid
  • kustutada publitseerijad kõigist create database andmebaasidest
postgres=# drop publication pub_rs_certs
..

Subskriptsiooni kustutamine

db_ocsp=# drop subscription sub_rs_certs;
NOTICE:  dropped replication slot "sub_rs_certs" on publisher
DROP SUBSCRIPTION

Kasutamine

TODO

Juba käivitatud pub-sub suhtes oleva subskriberi lähtestamiseks

  • kustutada subscriber
TODO
  • tühjendada subscribetud tabelid
TODO
  • tekitada uuesti subscriber
TODO

Kasulikud lisamaterjalid