Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct
От | Robert Haas |
---|---|
Тема | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct |
Дата | |
Msg-id | z2z603c8f071004270456l5daaf3eewa673880c102f09e5@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct (Fujii Masao <masao.fujii@gmail.com>) |
Список | pgsql-hackers |
On Tue, Apr 27, 2010 at 7:24 AM, Fujii Masao <masao.fujii@gmail.com> wrote: > On Tue, Apr 27, 2010 at 7:50 PM, Heikki Linnakangas > <heikki.linnakangas@enterprisedb.com> wrote: >>> It's OK in pg_start_backup(), but seems NG in pg_stop_backup() since >>> it waits until some WAL files have been archived by the archiver. No? >> >> Good point, that logic would need to be changed too. Should it simply >> return immediately if archive_mode=off? > > What if we wrongly set archive_mode to on and wal_mode to minimal? > I think that checking XLogArchivingActive() in pg_stop_backup() is > adequate. That case should be rejected at primary startup. >>>>> + /* >>>>> + * For Hot Standby, the WAL must be generated with 'hot_standby' mode, >>>>> + * and we must have at least as many backend slots as the primary. >>>>> + */ >>>>> + if (InArchiveRecovery && XLogRequestRecoveryConnections) >>>>> + { >>>>> + if (ControlFile->wal_mode < WAL_MODE_HOT_STANDBY) >>>>> + ereport(ERROR, >>>>> + (errmsg("recovery connections cannot start because >>>>> wal_mode was not set to 'hot_standby' on the WAL source server"))); >>>>> >>>>> This seems to always prevent the server from doing an archive recovery >>>>> since wal_mode is expected to be WAL_MODE_ARCHIVE in that case. >>>> No, it doesn't prevent archive recovery. It only prevents hot standby if >>>> wal_mode was not 'hot_standby' in the master. I think you missed the "&& >>>> XLogRequestRecoveryConnections" condition above. >>> >>> Even if we do only archive recovery, XLogRequestRecoveryConnections >>> might be TRUE. Or we need to ensure that the recovery_connection is >>> FALSE in the postgresql.conf before starting archive recovery? >> >> Umm, yes, if you have recovery_connnections=on, it means you want hot >> standby. And for that you need wal_mode='hot_standby'. > > Since the default value of recovery_connections is TRUE, I think that > the trouble which I encountered would often happen. We should disable > recovery_connections by default? Furthermore should move it from > postgresql.conf to recovery.conf? > > On the other hand, I feel that recovery_connections=on in an archive > recovery is valid configuration *until* any read only connections are > requested. How about moving the above check to postmaster or backend? Or just not starting recovery connections, but still doing archive recovery? I think in this case a WARNING might be adequate. ...Robert
В списке pgsql-hackers по дате отправления: