1.4. Testing Replication

Let's test the replication functionality using a benchmark tool pgbench, which comes with the standard PostgreSQL installation. Type following to create the benchmark tables.

    $ pgbench -i -p 11000 test
   

To see if the replication works correctly, directly connect to the primary and the standby server to see if they return identical results.

    $ psql -p 11002 test
    \dt
    List of relations
    Schema |       Name       | Type  |  Owner  
    --------+------------------+-------+---------
    public | pgbench_accounts | table | t-ishii
    public | pgbench_branches | table | t-ishii
    public | pgbench_history  | table | t-ishii
    public | pgbench_tellers  | table | t-ishii
    (4 rows)
    \q
    $ psql -p 11003 test
    \dt
    List of relations
    Schema |       Name       | Type  |  Owner  
    --------+------------------+-------+---------
    public | pgbench_accounts | table | t-ishii
    public | pgbench_branches | table | t-ishii
    public | pgbench_history  | table | t-ishii
    public | pgbench_tellers  | table | t-ishii
    (4 rows)
   

The primary server (port 11002) and the standby server (port 11003) return identical results. Next, let's run pgbench for a while and check to results.

    $ pgbench -p 11000 -T 10 test
    starting vacuum...end.
    transaction type: <builtin: TPC-B (sort of)>
    scaling factor: 1
    query mode: simple
    number of clients: 1
    number of threads: 1
    duration: 10 s
    number of transactions actually processed: 2171
    latency average = 4.692 ms
    tps = 213.147520 (including connections establishing)
    tps = 213.258008 (excluding connections establishing)

    $ psql -p 11002 -c "SELECT sum(abalance) FROM pgbench_accounts" test
    sum   
    --------
    192112
    (1 row)

    $ psql -p 11003 -c "SELECT sum(abalance) FROM pgbench_accounts" test
    sum   
    --------
    192112
    (1 row)
   

Again, the results are identical.