-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpglogicalrep.sh
executable file
·58 lines (46 loc) · 1017 Bytes
/
pglogicalrep.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/sh
. pgcommon.sh
PUBDATA=data
SUBDATA=sub1
usage ()
{
cat <<EOF
$PROGNAME sets up the publisher and subscriber for logical replication.
Usage:
$PROGNAME
EOF
}
while [ $# -gt 0 ]; do
case "$1" in
"-?"|--help)
usage
exit 0;;
*)
elog "invalid option: $1";;
esac
shift
done
here_is_installation
pgsql_is_dead
validate_logical_replication
pginitdb.sh $PUBDATA
exit_on_error
pgconf.sh -c wal_level logical $PUBDATA
pgconf.sh -c log_line_prefix "'$LOGLINEPREFIX $PUBDATA [%p] '" $PUBDATA
pgstart.sh -w $PUBDATA
pginitdb.sh $SUBDATA
exit_on_error
pgconf.sh -c port 5433 $SUBDATA
pgconf.sh -c log_line_prefix "'$LOGLINEPREFIX $SUBDATA [%p] '" $SUBDATA
pgstart.sh -w $SUBDATA
pgtbl.sh -n 0 $PUBDATA
cat <<EOF | $PGBIN/psql
ALTER TABLE t ADD PRIMARY KEY (i);
ALTER TABLE t REPLICA IDENTITY DEFAULT;
CREATE PUBLICATION tpub FOR TABLE t;
EOF
pgtbl.sh -n 0 $SUBDATA
cat <<EOF | $PGBIN/psql -p 5433
ALTER TABLE t ADD PRIMARY KEY (i);
CREATE SUBSCRIPTION tsub CONNECTION '' PUBLICATION tpub;
EOF