PostgreSQL Logical Replication
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