"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