I have two virtual machines: dbrepa
(-.175
) and dbrepb
(-.191
).
Both have PostgreSQL 9.2 installed; once PG was installed (never initialized) on dbrepa
, dbrepb
was made as a clone.
I need to have the databases on dbrepb
be read-only copies of those on dbrepa
.
And so, I set the appropriate settings of dbrepa/postgresql.conf
:
listen_address = '*'
wal_level = hot_standby
max_wal_senders = 3 # Aside, I assume '3' is arbitrary
and dbrepa/pg_hba.conf
(paying attention to spacing):
host replication all 192.168.108.191/32 trust
and dbrepb/postgresql.conf
:
hot_standby = on
and dbrepb/recovery.conf
(a new file):
standby_mode = 'on'
primary_conninfo = 'host=192.168.108.175'
Each database is empty, but the following command was run on both:
[root@dbrep-]# service postgresql-9.2 initdb
Now, since there are no databases, I don't need to worry if they are out of sync (since there is no data to be out of sync).
I start the master:
[root@dbrepa]# service postgresql-9.2 start
Starting postregsql-9.2 service: [ OK ]
and I start the standby:
[root@dbrepb]# service postgresql-9.2 start
Starting postregsql-9.2 service: [FAILED]
Examining the log files of each:
dbrepa/data/pg_log/-.log
is empty.
dbrepb/data/pg_log/-.log
:
LOG: entering standby mode
WARNING: WAL was generated with wal_level=minimal, data may be missing
HINT: This happens if you temporarily set wal_level=minimal without taking a new base backup.
FATAL: hot standby is not possible because wal_level was not set to "hot_standby" on the master server
HINT: Either set wal_level to "hot_standby" on the master, or turn off hot_standby here.
LOG: startup process (PID 4320) exited with exit code 1
LOG: aborting startup due to startup process failure
but when I double-check dbrepa/data/postgres.conf
, wal_level
is clearly set to hot_standby
.
What else could be going wrong?
Best Answer
Your last two steps are in the wrong order.
The appropriate steps says
You are supposed to start the master after the standby.
Try reversing everything as follows:
[root@dbrepa]# service postgresql-9.2 stop
[root@dbrepb]# service postgresql-9.2 stop
[root@dbrepb]# service postgresql-9.2 start
[root@dbrepa]# service postgresql-9.2 start
Give it a Try !!!