3 марта 2015 г., в 18:01, Bruce Momjian <bruce@momjian.us> написал(а):
On Tue, Mar 3, 2015 at 04:55:56PM +0300, Vladimir Borodin wrote:
OK, hmmm. Thanks for testing. It feels like you didn't have your new master set up for streaming replication when you ran pg_upgrade. Is that correct? Should I specify that specifically in the instructions?
After running pg_upgrade I do put in new PGDATA on master old pg_hba.conf and postgresql.conf with wal_level = hot_standby. The full content of postgresql.conf could be seen here - http://pastie.org/9995902. Then I do rsync to replica, put recovery.conf and try to start both - first master, then replica. If I turn off hot_standby in replica configuration, it starts. What am I doing wrong?
After running initdb to create the new master, but before running pg_upgrade, modify the new master's postgresql.conf and change wal_level = hot_standby. (Don't modify pg_hba.conf at this stage.)
That does not help. The reason is that pg_upgrade sets 'Current wal_level setting: minimal' in control-file, and it does not depend on what is set in postgresql.conf before running pg_upgrade. Details could be seen here - http://pastie.org/9998671.
The workaround for this is to start and cleanly shut down postgres on master after running pg_upgrade but before running rsync. After that there would be a good control-file for streaming replication and rsync to replica can be done. But it could not be done with --size-only key, because control-file is of fixed size and rsync would skip it. Or may be everything should be copied with --size-only and control-file should be copied without this option.
I didn't think that was necessary, but this might be some 9.3-specific problem, but let's get it working first.