
track_commit_timestamp
, 9.5)
[CREATE|ALTER] SEQUENCE … USING bdr
handler_fun(
local_row TBLTYPE, remote_row TBLTYPE,
command_tag TEXT, rel REGCLASS, event bdr.bdr_handler_types,
OUT resolution_row TBLTYPE, OUT resolution bdr.bdr_conflict_handler_action)
bdr.bdr_create_conflict_handler(
ch_rel NAME, ch_name TEXT, ch_proc NAME, ch_type TEXT)
bdr.bdr_drop_conflict_handler(ch_rel NAME, ch_name TEXT)
REMOTE
, LOCAL
, SKIP
, TUPLE
, ERROR
bdr.conflict_logging_include_tuples
, bdr.log_conflicts_to_table
)
SET bdr.skip_ddl_replication TO on
SELECT INTO
/CREATE TABLE AS
/CREATE TABLE … OF TYPE
nur UNLOGGED
ALTER TABLE
ADD COLUMN … DEFAULT
geht nicht)
ALTER CONSTRAINT
etc.
CREATE TEXT SEARCH …
CREATE FOREIGN DATA WRAPPER
und Freunde
bdr.bdr_replicate_ddl_command()
all
- alle Tabellen
default
- Tabellen, die in keinem benutzerdefinierten Set sind
bdr.table_set_replication_sets(relation regclass, sets TEXT[])
bdr.table_get_replication_sets(relation regclass)
SELECT bdr.bdr_group_create('node1', 'host=node1 user=replusr dbname=thisdb');
SELECT bdr.bdr_group_join('node2', 'host=node2 user=replusr dbname=thisdb',
'host=node1 user=replusr dbname=thisdb');
pg_basebackup
und bdr_init_copy
pgbench
-Schema
pglogical=# SELECT * FROM pg_create_logical_replication_slot(
pglogical(# 'demo',
pglogical(# 'pglogical_output'
pglogical(# );
-[ RECORD 1 ]-+-----------
slot_name | demo
xlog_position | 0/5D50FE30
(1 row)
pglogical=# INSERT INTO pgbench_tellers (tid, bid, tbalance) VALUES (1001, 0, 0);
INSERT 0 1
pglogical=# SELECT data::json FROM pg_logical_slot_peek_changes(
pglogical(# 'demo', NULL, NULL,
pglogical(# 'min_proto_version', '1',
pglogical(# 'max_proto_version', '1',
pglogical(# 'startup_params_format', '1',
pglogical(# 'proto_format', 'json',
pglogical(# 'no_txinfo', 't')
pglogical-# WHERE (data::json->'action')::text = '"I"';
-[ RECORD 1 ]------------------------------------------------------
data | {"action":"I",
| "relation":["public","pgbench_tellers"],
| "newtuple":{"tid":1001,"bid":0,"tbalance":0,"filler":null}
| }
srcdb=# CREATE EXTENSION pglogical;
CREATE EXTENSION
srcdb=# SELECT pglogical.create_provider('pg94');
-[ RECORD 1 ]---+----------
create_provider | 720775012
dstdb=# CREATE EXTENSION pglogical;
CREATE EXTENSION
dstdb=# SELECT pglogical.create_subscriber(
dstdb(# subscriber_name := 'pg95',
dstdb(# provider_name := 'pg94',
dstdb(# local_dsn := 'host=dsthost user=repl dbname=dstdb',
dstdb(# provider_dsn := 'host=srchost user=repl dbname=srcdb'
dstdb(# );
-[ RECORD 1 ]-----+-----------
create_subscriber | 3968884845