Re: To take backup of Postgresql Database without large objects

Started by sivapostgres@yahoo.com12 months ago11 messagesgeneral
Jump to latest
#1sivapostgres@yahoo.com
sivapostgres@yahoo.com

Hello,
Using PostgreSQL 15.1, compiled by Visual C++ build 1914, 64-bit in Windows 10.
Trying to take backup of a database, using pg_dump, where one table contains bytea datatype, which I don't want to include in the backup.
My command was:"E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username> --no-blobs -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6 

the backup includes the bytea field also.  
I tried with "E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username> -B -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6 

also, which also included the bytea field.
What wrong I'm doing?  Couldn't figure it out.   Any help is appreciated.
Happiness Always
BKR Sivaprakash

#2Ron
ronljohnsonjr@gmail.com
In reply to: sivapostgres@yahoo.com (#1)

On Fri, Apr 11, 2025 at 8:56 AM sivapostgres@yahoo.com <
sivapostgres@yahoo.com> wrote:

Hello,

Using PostgreSQL 15.1, compiled by Visual C++ build 1914, 64-bit in
Windows 10.

That's 11 patch releases behind current.

Trying to take backup of a database, using pg_dump, where one table
contains bytea datatype, which I don't want to include in the backup.

My command was:
"E:\DBBackup\bin\pg_dump.exe" -h 192.168.1.1 -p 5432 -U <username>
--no-blobs -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

the backup includes the bytea field also.

I tried with
"E:\DBBackup\bin\pg_dump.exe" -h 192.168.1.1 -p 5432 -U <username> -B -F
c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

also, which also included the bytea field.

What wrong I'm doing? Couldn't figure it out. Any help is appreciated.

The manual explicitly states what you're doing wrong.
https://www.postgresql.org/docs/15/app-pgdump.html

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!

#3Adrian Klaver
adrian.klaver@aklaver.com
In reply to: sivapostgres@yahoo.com (#1)

On 4/11/25 05:55, sivapostgres@yahoo.com wrote:

Hello,

Using PostgreSQL 15.1, compiled by Visual C++ build 1914, 64-bit in
Windows 10.

Trying to take backup of a database, using pg_dump, where one table
contains bytea datatype, which I don't want to include in the backup.

My command was:
"E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username>
--no-blobs -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

the backup includes the bytea field also.

I tried with
"E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username> -B
-F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

also, which also included the bytea field.

1) Short version

Short version bytea fields != large objects.

2) Long version

From here:

https://www.postgresql.org/docs/current/app-pgdump.html

-B
--no-large-objects
--no-blobs (deprecated)

Exclude large objects in the dump.

When both -b and -B are given, the behavior is to output large
objects, when data is being dumped, see the -b documentation.

Where large objects are defined here:

https://www.postgresql.org/docs/current/largeobjects.html

What wrong I'm doing?  Couldn't figure it out.   Any help is appreciated.

Happiness Always
BKR Sivaprakash

--
Adrian Klaver
adrian.klaver@aklaver.com

#4sivapostgres@yahoo.com
sivapostgres@yahoo.com
In reply to: Adrian Klaver (#3)

I tried all the combinations, as mentioned in the documenthttps://www.postgresql.org/docs/current/app-pgdump.html

"E:\DBBackup\bin\pg_dump.exe" -h 192.168.1.1 -p 5432 -U <username> --no-blobs -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6 

"E:\DBBackup\bin\pg_dump.exe" -h 192.168.1.1 -p 5432 -U <username> -B -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6 

"E:\DBBackup\bin\pg_dump.exe" -h 192.168.1.1 -p 5432 -U <username> -B --no-blobs -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6 

With version 15--no-large-objects  is not working.I tried with all the other combinations.  NO LUCK.
bytea field also included in the backup.   
I tried taking backup using pg_dump of version 17 also, with no luck.   [ Database version is 15 and the pg_dump version is 17 ]. 
Confirming this after restoring the backup file in a new database.   The new database contains contents from bytea field also.  
Either my command should be wrong or I'm missing something.  
Happiness Always
BKR Sivaprakash
On Friday 11 April, 2025 at 08:31:31 pm IST, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 4/11/25 05:55, sivapostgres@yahoo.com wrote:

Hello,

Using PostgreSQL 15.1, compiled by Visual C++ build 1914, 64-bit in
Windows 10.

Trying to take backup of a database, using pg_dump, where one table
contains bytea datatype, which I don't want to include in the backup.

My command was:
"E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username>
--no-blobs -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

the backup includes the bytea field also.

I tried with
"E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username> -B
-F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

also, which also included the bytea field.

1) Short version

Short version bytea fields != large objects.

2) Long version

From here:

https://www.postgresql.org/docs/current/app-pgdump.html

-B
--no-large-objects
--no-blobs (deprecated)

    Exclude large objects in the dump.

    When both -b and -B are given, the behavior is to output large
objects, when data is being dumped, see the -b documentation.

Where large objects are defined here:

https://www.postgresql.org/docs/current/largeobjects.html

What wrong I'm doing?  Couldn't figure it out.   Any help is appreciated.

Happiness Always
BKR Sivaprakash

--
Adrian Klaver
adrian.klaver@aklaver.com

#5David G. Johnston
david.g.johnston@gmail.com
In reply to: sivapostgres@yahoo.com (#4)

On Friday, April 11, 2025, sivapostgres@yahoo.com <sivapostgres@yahoo.com>
wrote:

bytea field also included in the backup.

Bytea typed columns are completely separate things than large objects. You
cannot exclude individual columns using pg_dump.

David J.

#6sivapostgres@yahoo.com
sivapostgres@yahoo.com
In reply to: David G. Johnston (#5)

Thanks.Then I've misunderstood large objects.  Is there document to explain large objects?  We store images in bytea column.
Happiness Always
BKR Sivaprakash
On Saturday 12 April, 2025 at 10:44:21 am IST, David G. Johnston <david.g.johnston@gmail.com> wrote:

On Friday, April 11, 2025, sivapostgres@yahoo.com <sivapostgres@yahoo.com> wrote:

bytea field also included in the backup.   

Bytea typed columns are completely separate things than large objects.  You cannot exclude individual columns using pg_dump.
David J.

#7Christophe Pettus
xof@thebuild.com
In reply to: sivapostgres@yahoo.com (#6)

On Apr 11, 2025, at 22:34, sivapostgres@yahoo.com wrote:
Then I've misunderstood large objects. Is there document to explain large objects?

Large objects are a relatively old and now little-used feature of PostgreSQL that predates the bytea type:

https://www.postgresql.org/docs/current/largeobjects.html

As was mentioned, you cannot exclude individual columns with pg_dump; you have to exclude the entire table.

#8Adrian Klaver
adrian.klaver@aklaver.com
In reply to: sivapostgres@yahoo.com (#4)

On 4/11/25 22:06, sivapostgres@yahoo.com wrote:

Either my command should be wrong or I'm missing something.

This was explained in my post as quoted below.

Happiness Always
BKR Sivaprakash

On Friday 11 April, 2025 at 08:31:31 pm IST, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:

On 4/11/25 05:55, sivapostgres@yahoo.com <mailto:sivapostgres@yahoo.com>
wrote:

Hello,

Using PostgreSQL 15.1, compiled by Visual C++ build 1914, 64-bit in
Windows 10.

Trying to take backup of a database, using pg_dump, where one table
contains bytea datatype, which I don't want to include in the backup.

My command was:
"E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username>
--no-blobs -F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

the backup includes the bytea field also.

I tried with
"E:\DBBackup\bin\pg_dump.exe"  -h 192.168.1.1 -p 5432 -U <username> -B
-F c -v -f "E:\DBBackup\demo6_110420251637.bak" demo6

also, which also included the bytea field.

1) Short version

Short version bytea fields != large objects.

2) Long version

From here:

https://www.postgresql.org/docs/current/app-pgdump.html
<https://www.postgresql.org/docs/current/app-pgdump.html&gt;

-B
--no-large-objects
--no-blobs (deprecated)

    Exclude large objects in the dump.

    When both -b and -B are given, the behavior is to output large
objects, when data is being dumped, see the -b documentation.

Where large objects are defined here:

https://www.postgresql.org/docs/current/largeobjects.html
<https://www.postgresql.org/docs/current/largeobjects.html&gt;

What wrong I'm doing?  Couldn't figure it out.   Any help is appreciated.

Happiness Always
BKR Sivaprakash

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

--
Adrian Klaver
adrian.klaver@aklaver.com

#9David G. Johnston
david.g.johnston@gmail.com
In reply to: Adrian Klaver (#8)

On Friday, April 11, 2025, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 4/11/25 22:06, sivapostgres@yahoo.com wrote:

Either my command should be wrong or I'm missing something.

This was explained in my post as quoted below.

Yeah, the short version. Then you added a long version that just confused
the issue. Why point out exclude blobs if you know they are using bytea?

David J.

#10sivapostgres@yahoo.com
sivapostgres@yahoo.com
In reply to: David G. Johnston (#9)

Thanks for the clarification.
bytea != large object
Happiness Always
BKR Sivaprakash
On Saturday 12 April, 2025 at 11:36:11 am IST, David G. Johnston <david.g.johnston@gmail.com> wrote:

On Friday, April 11, 2025, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 4/11/25 22:06, sivapostgres@yahoo.com wrote:

Either my command should be wrong or I'm missing something.

This was explained in my post as  quoted below.

Yeah, the short version.  Then you added a long version that just confused the issue.  Why point out exclude blobs if you know they are using bytea?
David J.

#11Adrian Klaver
adrian.klaver@aklaver.com
In reply to: David G. Johnston (#9)

On 4/11/25 23:05, David G. Johnston wrote:

On Friday, April 11, 2025, Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>> wrote:

On 4/11/25 22:06, sivapostgres@yahoo.com
<mailto:sivapostgres@yahoo.com> wrote:

Either my command should be wrong or I'm missing something.

This was explained in my post as  quoted below.

Yeah, the short version.  Then you added a long version that just
confused the issue.  Why point out exclude blobs if you know they are
using bytea?

To show what --no-blobs is actually doing versus what the OP thought it
was doing, along with link to large object docs to show they are not bytea.

David J.

--
Adrian Klaver
adrian.klaver@aklaver.com