Обсуждение: pg_dump locks a table on dumping ... ?
'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
"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
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