Обсуждение: pg_dump locks a table on dumping ... ?

Поиск
Список
Период
Сортировка

pg_dump locks a table on dumping ... ?

От
"Marc G. Fournier"
Дата:
'k, just had someone tell me that they believed that a pg_dump will lock a
table while the dump is happening ... my first thought/response was that
this would defeat the point of MVCC, no?  And would make for a terrible
backup procedure on a very large database, since you'd just have made your
database useless for the duration ...

Can someone confirm/deny that the lock happens?

----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664


Re: pg_dump locks a table on dumping ... ?

От
Tom Lane
Дата:
"Marc G. Fournier" <scrappy@postgresql.org> writes:
> 'k, just had someone tell me that they believed that a pg_dump will lock a
> table while the dump is happening ... my first thought/response was that
> this would defeat the point of MVCC, no?  And would make for a terrible
> backup procedure on a very large database, since you'd just have made your
> database useless for the duration ...

> Can someone confirm/deny that the lock happens?

pg_dump takes a reader's lock (AccessShareLock).  This does not prevent
reads or writes of the table.  It does prevent dropping the table,
making schema alterations to it (such as column add/drop), or anything
else that wants an exclusive lock.  I think that VACUUM FULL is the only
thing particularly likely to cause a conflict in a running database.
        regards, tom lane


Re: pg_dump locks a table on dumping ... ?

От
"Marc G. Fournier"
Дата:
On Tue, 23 Mar 2004, Tom Lane wrote:

> "Marc G. Fournier" <scrappy@postgresql.org> writes:
> > 'k, just had someone tell me that they believed that a pg_dump will lock a
> > table while the dump is happening ... my first thought/response was that
> > this would defeat the point of MVCC, no?  And would make for a terrible
> > backup procedure on a very large database, since you'd just have made your
> > database useless for the duration ...
>
> > Can someone confirm/deny that the lock happens?
>
> pg_dump takes a reader's lock (AccessShareLock).  This does not prevent
> reads or writes of the table.  It does prevent dropping the table,
> making schema alterations to it (such as column add/drop), or anything
> else that wants an exclusive lock.  I think that VACUUM FULL is the only
> thing particularly likely to cause a conflict in a running database.

Perfect, that makes sense ... thanks :)

----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664