Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without
Дата
Msg-id 4B669FF8.806@enterprisedb.com
обсуждение исходный текст
Ответ на Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without  (Simon Riggs <simon@2ndQuadrant.com>)
Ответы Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without  (Simon Riggs <simon@2ndQuadrant.com>)
Re: Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without  (Fujii Masao <masao.fujii@gmail.com>)
Список pgsql-hackers
Simon Riggs wrote:
> I'm seeing these messages in the standby server log:
> 
> WARNING:  unlogged operation performed, data may be missing
> HINT:  This can happen if you temporarily disable archive_mode without
> taking a new base backup.
> CONTEXT:  xlog redo unlogged operation: heap inserts on "pg_temp_65646"
> 
> which connected with operations on temp tables, probably as a result of
> VACUUM FULL and CLUSTER.
> 
> I don't think those messages should be there.

Hmm. The "unlogged" record is written here:

...
void
heap_sync(Relation rel)
{char reason[NAMEDATALEN + 30];
/* temp tables never need fsync */if (rel->rd_istemp)    return;
snprintf(reason, sizeof(reason), "heap inserts on \"%s\"",
RelationGetRelationName(rel));XLogReportUnloggedStatement(reason);
...


So it clearly shouldn't be written for temp relations. Apparently the
rd_istemp flag not set correctly after CLUSTER / VACUUM FULL.

Can you reproduce that?

--  Heikki Linnakangas EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Greg Stark
Дата:
Сообщение: Re: Hot Standby and VACUUM FULL
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without