From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
---|---|
To: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Simon Riggs <simon(at)2ndquadrant(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct |
Date: | 2010-04-27 10:12:33 |
Message-ID: | o2l3f0b79eb1004270312s8ac1ae56iabb517151ba9dd0d@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers pgsql-hackers |
On Tue, Apr 27, 2010 at 6:49 PM, Heikki Linnakangas
<heikki(dot)linnakangas(at)enterprisedb(dot)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 connections cannot 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 startup due to startup process failure
XLOG-related parameters in postgresql.conf
archive_mode = on
archive_command = 'cp %p ../data.arh/%f'
wal_mode = archive
recovery_connections = on
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2010-04-27 10:50:36 | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct |
Previous Message | Heikki Linnakangas | 2010-04-27 09:49:06 | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct |
From | Date | Subject | |
---|---|---|---|
Next Message | Takahiro Itagaki | 2010-04-27 10:27:40 | CP949 for EUC-KR? |
Previous Message | Heikki Linnakangas | 2010-04-27 09:49:06 | Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct |