startup:
docker-compose up
psql in each a node, if desired (nodes are pg-source
, pg-replica1
, and pg-replica2
):
docker exec -it pg-source bash -c 'PGPASSWORD=my_password psql -U my_user -d my_database -P pager=off -P expanded=auto'
read replication log sequence number (LSN) position:
select pg_last_wal_replay_lsn();
parse the return value in Go:
func lsnToInt64(lsn string) (int64, error) {
var pos int64
parts := strings.Split(lsn, "/")
for _, part := range parts {
val, err := strconv.ParseInt(part, 16, 64)
if err != nil {
return 0, err
}
pos = pos + val
}
return pos, nil
}