Обсуждение: Pg_dump

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

Pg_dump

От
Rajesh Kumar
Дата:
Hi

Will pg_dump cause blocking queries? If so how to take dump without blocking?

Re: Pg_dump

От
Holger Jakobs
Дата:
Am 07.12.23 um 19:11 schrieb Rajesh Kumar:
> Hi
>
> Will pg_dump cause blocking queries? If so how to take dump without 
> blocking?


Readers don't block writers, writers don't block readers in PostgreSQL.

pg_dump is a reader.

-- 
Holger Jakobs, Bergisch Gladbach, Tel. +49-178-9759012


Вложения

Re: Pg_dump

От
Scott Ribe
Дата:
> Readers don't block writers, writers don't block readers in PostgreSQL.
>
> pg_dump is a reader.
>
> --
> Holger Jakobs, Bergisch Gladbach, Tel. +49-178-9759012

Additionally, I've done some stress testing and found that pg_dump puts surprisingly low load on our dbs. Of course,
likeeverything else, this dependent on your specifics--after all the dump will require reading all rows, so for
instanceif you're disk-bound, you could see a performance hit. But generally, if your db is running in a reasonably
"healthy"performance range and not already close to limits, pg_dump won't have a performance impact visible to users. 




Re: Pg_dump

От
jason cable
Дата:
That happens to me too the last time I took dump


From: Scott Ribe <scott_ribe@elevated-dev.com>
Sent: Thursday, December 7, 2023 10:26:15 AM
To: Rajesh Kumar <rajeshkumar.dba09@gmail.com>
Cc: Pgsql-admin <pgsql-admin@lists.postgresql.org>
Subject: Re: Pg_dump
 
> Readers don't block writers, writers don't block readers in PostgreSQL.
>
> pg_dump is a reader.
>
> --
> Holger Jakobs, Bergisch Gladbach, Tel. +49-178-9759012

Additionally, I've done some stress testing and found that pg_dump puts surprisingly low load on our dbs. Of course, like everything else, this dependent on your specifics--after all the dump will require reading all rows, so for instance if you're disk-bound, you could see a performance hit. But generally, if your db is running in a reasonably "healthy" performance range and not already close to limits, pg_dump won't have a performance impact visible to users.



Re: Pg_dump

От
Tom Lane
Дата:
Holger Jakobs <holger@jakobs.com> writes:
> Am 07.12.23 um 19:11 schrieb Rajesh Kumar:
>> Will pg_dump cause blocking queries? If so how to take dump without 
>> blocking?

> Readers don't block writers, writers don't block readers in PostgreSQL.
> pg_dump is a reader.

To enlarge on that a bit: pg_dump takes AccessShareLock on every
table it intends to dump.  This does not conflict with ordinary
DML updates.  It *will* conflict with anything that wants
AccessExclusiveLock, which typically is schema-altering DDL.
See

https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES

So the answer to your question is "don't try to alter the
database schema while pg_dump is running".  You can alter
database content freely, though.

            regards, tom lane



Re: Pg_dump

От
M Sarwar
Дата:
I agree with Tom. This is making the difference. I ran into this scenario several times in the past.
But whole database is becoming slow when the dump is happening .
Thanks,
Sarwar


From: Tom Lane <tgl@sss.pgh.pa.us>
Sent: Thursday, December 7, 2023 1:52 PM
To: Holger Jakobs <holger@jakobs.com>
Cc: pgsql-admin@lists.postgresql.org <pgsql-admin@lists.postgresql.org>; rajeshkumar.dba09@gmail.com <rajeshkumar.dba09@gmail.com>
Subject: Re: Pg_dump
 
Holger Jakobs <holger@jakobs.com> writes:
> Am 07.12.23 um 19:11 schrieb Rajesh Kumar:
>> Will pg_dump cause blocking queries? If so how to take dump without
>> blocking?

> Readers don't block writers, writers don't block readers in PostgreSQL.
> pg_dump is a reader.

To enlarge on that a bit: pg_dump takes AccessShareLock on every
table it intends to dump.  This does not conflict with ordinary
DML updates.  It *will* conflict with anything that wants
AccessExclusiveLock, which typically is schema-altering DDL.
See

https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.postgresql.org%2Fdocs%2Fcurrent%2Fexplicit-locking.html%23LOCKING-TABLES&data=05%7C01%7C%7Cdcf516f1dede486a176608dbf755c798%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638375720015977401%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=m%2FLUxihtuaXHgYaoa%2FTGzs0qf4Z7ifc7JptfpV0SYdI%3D&reserved=0

So the answer to your question is "don't try to alter the
database schema while pg_dump is running".  You can alter
database content freely, though.

                        regards, tom lane


Re: Pg_dump

От
Alvaro Herrera
Дата:
On 2023-Dec-07, M Sarwar wrote:

> I agree with Tom. This is making the difference. I ran into this scenario several times in the past.
> But whole database is becoming slow when the dump is happening .

For large databases with very high rate of updates, a running pg_dump
can prevent vacuum from removing old versions of rows.  This can make
the operations slower because of accumulation of bloat.

For such situations, pg_dump is not really recommended.  It's better to
use a physical backup (say, pgbarman), or if you really need a pg_dump
output file for some reason, create a replica (with _no_
hot_standby_feedback) and run pg_dump there.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
"I'm always right, but sometimes I'm more right than other times."
                                                  (Linus Torvalds)
https://lore.kernel.org/git/Pine.LNX.4.58.0504150753440.7211@ppc970.osdl.org/