Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct - Mailing list pgsql-hackers
From | Fujii Masao |
---|---|
Subject | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct |
Date | |
Msg-id | o2l3f0b79eb1004270312s8ac1ae56iabb517151ba9dd0d@mail.gmail.com Whole thread Raw |
In response to | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>) |
Responses |
Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues()
depend upon correct
|
List | pgsql-hackers |
On Tue, Apr 27, 2010 at 6:49 PM, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote: > Fujii Masao wrote: >> config.sgml >>> <literal>on</literal>. It is thought that there is little >>> measurable difference in performance from using this feature, so >>> feedback is welcome if any production impacts are noticeable. >>> It is likely that this parameter will be removed in later releases. >> >> Is this description still required for recovery_connections? > > Hmm, I guess it was referring to setting recovery_connections in the > master, I don't see us removing that option from the standby in the > future. recovery_connections in the master is being replaced with the > wal_mode setting, so I guess that's not required anymore. Agreed. >>> if (!XLogArchivingActive()) >>> ereport(ERROR, >>> (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), >>> errmsg("WAL archiving is not active"), >>> errhint("archive_mode must be enabled at server start."))); >> >> You need to change the error messages which refer to archive_mode, >> like the above. > > Hmm, I think we should change not only the error message, but the logic > too. There's two related checks there: > >> if (!XLogArchivingActive()) >> ereport(ERROR, >> (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), >> errmsg("WAL archiving is not active"), >> errhint("archive_mode must be enabled at server start."))); >> >> if (!XLogArchiveCommandSet()) >> ereport(ERROR, >> (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), >> errmsg("WAL archiving is not active"), >> errhint("archive_command must be defined before " >> "online backups can be made safely."))); > > You can use streaming replication too to transport the WAL generated > during the backup, so I think we should just check that wal_mode>='archive'. 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? >> + /* >> + * 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? And I tried archive recovery, and encountered the following error. LOG: starting archive recovery LOG: restored log file "000000010000000000000001" from archive FATAL: recovery connectionscannot start because wal_mode was not set to 'hot_standby' on the WAL source server LOG: startup process (PID 32512) exited with exit code 1 LOG: aborting startupdue to startup process failure XLOG-related parameters in postgresql.conf archive_mode = on archive_command = 'cp %p ../data.arh/%f' wal_mode = archiverecovery_connections = on Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
pgsql-hackers by date: