Thank you for letting me know about pg_controldata. I have been playing around with this tool. I notice on my master server I have: Latest checkpoint location: 1E3/F2000020 Prior checkpoint location: 1E3/F1000020 Latest checkpoint's REDO location: 1E3/F2000020 And on the slave server (where it is archiving to), I have: Latest checkpoint location: 1E3/EF000020 Prior checkpoint location: 1E3/EF000020 Latest checkpoint's REDO location: 1E3/EF000020 These are the main differences - should these match or is this a sign of being too out of sync? How can I best use this tool? Thank you Ogden On Feb 8, 2011, at 8:47 PM, Ray Stell wrote: > > pg_controldata command is helpful. > > Archiving wal not required, but you can roll it either way. > > > > > > > On Tue, Feb 08, 2011 at 04:46:51PM -0600, Ogden wrote: >> Hello all, >> >> I have set up PostgreSQL Streaming Replication and all seems to work fine when updating records as the records are instantaneously updated on the slave, however, I was wondering perhaps if someone can give me some verification that what I am doing is alright or some more insight into what I am doing. Perhaps this will also help others in the future. >> >> First on the master, I have the following in /var/lib/pgsql/data/standby.sh: >> >> >> #!/bin/sh >> >> LOG_FILE="/tmp/postgres_wal_archiving.log" >> >> log() { echo "`date --rfc-3339=ns` $1" >> "$LOG_FILE"; } >> log_error() { echo "`date --rfc-3339=ns` $1" >> "$LOG_FILE"; exit 1; } >> >> wal_path="$1" >> wal_file="$2" >> backup_server="slave01" >> remote_archive="/var/lib/pgsql/walfiles/$wal_file" >> >> log "Transfering file to backup server, filename: $wal_file" >> rsync "$wal_path" "$backup_server:$remote_archive" >> if [ "$?" -eq 0 ]; then >> log "Transfer to slave server completed" >> else >> log_error "Sending $wal_file failed." >> fi >> >> On the slave, I create the directory /var/lib/pgsql/walfiles (remote_archive) for the script to copy the walfiles over to. >> >> Then, within the master's postgresql.conf I have: >> >> wal_level = hot_standby >> archive_mode = on >> archive_command = '/var/lib/pgsql/data/standby.sh %p %f </dev/null' # The same script as above >> archive_timeout = 30 >> max_wal_senders = 5 >> wal_keep_segments = 32 >> #hot_standby = off >> >> I start up the master server and verify that files are indeed being SCPed over to /var/lib/pgsql/walfiles (also processes shows: 'archiver process last was 00000001000000030000001E'). >> >> After starting up on the master, I rsync over the data/ directory to the slave: >> >> /path/to/psql -c "SELECT pg_start_backup('label', true)" >> rsync -avz --delete /var/lib/pgsql/data/ slave01:/var/lib/pgsql/data --exclude postmaster.pid >> /path/to/psql -c "SELECT pg_stop_backup()" >> >> And I add recovery.conf over on the the slave's data/ directory: >> >> standby_mode = 'on' >> primary_conninfo = 'host=master_ip port=5432 user=postgres' >> trigger_file = '/tmp/trigger' >> restore_command='cp /var/lib/pgsql/walfiles/%f "%p"' >> >> And in the slave's postgresql.conf, I remove the comment on : >> >> hot_standby = on >> >> Upon starting the slave, everything works fine and updates to records occur on the slave immediately (what is the actual timing for this)? >> >> My confusion is: does streaming replication require WAL archiving as I have illustrated above or is it a "just in case" scenario? Also, the restore_command on the slave - is this correct, assuming that the master is dropping off files via SCP to /var/lib/pgsql/walfiles ? >> >> Thank you very much >> >> Ogden Nefix >> >> >> >> >> >> >> >> >> -- >> Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgsql-general > > -- > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general