Re: VACUUM unable to accomplish because of a non-existent MultiXactId
От | Alvaro Herrera |
---|---|
Тема | Re: VACUUM unable to accomplish because of a non-existent MultiXactId |
Дата | |
Msg-id | 20151127195328.GE4320@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: VACUUM unable to accomplish because of a non-existent MultiXactId (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: VACUUM unable to accomplish because of a non-existent MultiXactId
|
Список | pgsql-admin |
Tom Lane wrote: > Alvaro Herrera <alvherre@2ndquadrant.com> writes: > > Kouber Saparev wrote: > >> Recently I spotted an auto vacuum that is constantly being run over a pg_toast table in the database. Interestinglythe underlying table did not have that amount of writes that would trigger the auto vacuum every minute. > >> > >> When I tried to run the VACUUM manually it died with a non-existent MultiXactId error: > >> > >> db=# vacuum analyze verbose pg_toast.pg_toast_376621; > >> INFO: vacuuming "pg_toast.pg_toast_376621" > >> ERROR: MultiXactId 2915905228 does no longer exist -- apparent wraparound > > > Hmm, I don't think there can be multixacts in toast tables at all, > > normally. > > Couldn't creation and deletion of a toasted object within the same > transaction do it? I tried and couldn't find a way to cause one to appear. When a row is created, it has xmax=0 so when it's deleted the xmax can just be set to the deleting xact. And we don't ever update pg_toast rows, AFAIK. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-admin по дате отправления: