Hi Jerry and Kevin,
Thanks for your answers.
Jerry, I tried as you said with the parameter recovery_target_timeline = 'latest' and it works.
I tried on a smaller test database (only 15MB) with PG9.1.1 and only 1 slave.
My switchover procedure was :
Step 1 : stop the old master
/usr/local/pgsql/bin/pg_ctl stop -m immediate -D /usr/local/pgsql91/server1/data
Step 2 : promote slave as master :
touch /usr/local/pgsql91/server2/data/trigger_file
Step 3 : declare the old master as a standby server
Step 3.1 : vi /usr/local/pgsql91/server1/data/postgresql.conf
Add hot_standby = on in the postgresql.conf
Step 3.2 Set recovery.conf for old master server (including recovery_target_timeline = 'latest')
cp /usr/local/pgsql91/server1/data/recovery.bkp /usr/local/pgsql91/server1/data/recovery.conf
Step 4 : start old master
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql91/server1/data &
The old master is now a hot_standby of the new master. Replication works without rsyncing all data from new master to new slave.
Tomorrow, I shall try with PG9.0.3, 3 slaves and a primary database with 100 GB.
Thanks.
Jal