Re: Server/Data Migration Advice

From: Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Cc: Carlos Mennens <carlos(dot)mennens(at)gmail(dot)com>
Subject: Re: Server/Data Migration Advice
Date: 2011-12-15 16:18:23
Message-ID: 201112150818.25717.adrian.klaver@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thursday, December 15, 2011 7:57:40 am Carlos Mennens wrote:

> So after reading
> http://www.postgresql.org/docs/9.1/interactive/backup-dump.html,

That was not the link I posted. In fact I have never actually been to that
page:) This is the link I posted:
http://www.postgresql.org/docs/9.1/interactive/app-pgdump.html

>
> I'm not sure why the manual shows you in "24.1. SQL Dump" & then
> directly after in 24.1.1, they explain how to restore with psql as you
> advised me not to. I got my psql db_name < infile command directly
> from the manual. I know it's personal preference but from everything
> you noted, why didn't they just explain how to perform a pg_restore in
> the "24.1.1. Restoring the Dump" section.

First I did not advise against using a plain text dump, just noted there are
options. You have stumbled across the reason I mentioned the options. One of
the quirks of Postgres is that there is one dump command(pg_dump), but two ways
to restore (psql, pg_restore), depending on the format of the dump. What is
being shown in the section you refer to is the plain text(SQL) method. To
restore a plain text dump you need to use psql. You can do it as shown or by
using psql -f 'dump.sql' The reason to use -f is found here:

http://www.postgresql.org/docs/9.1/interactive/app-psql.html
"
-f filename
--file=filename

Use the file filename as the source of commands instead of reading commands
interactively. After the file is processed, psql terminates. This is in many ways
equivalent to the internal command \i.

If filename is - (hyphen), then standard input is read.

Using this option is subtly different from writing psql < filename. In
general, both will do what you expect, but using -f enables some nice features
such as error messages with line numbers. There is also a slight chance that
using this option will reduce the start-up overhead. On the other hand, the
variant using the shell's input redirection is (in theory) guaranteed to yield
exactly the same output you would have received had you entered everything by
hand.
"

If you do one of the non-text dumps then you will need to use pg_restore:
http://www.postgresql.org/docs/9.1/interactive/app-pgrestore.html

>
> "24.1.3. Handling Large Databases" section is very cool but also
> extremely vague IMO.
>
> > Use pg_dump's custom dump format. If PostgreSQL was built on a system
> > with the zlib compression library installed, the custom dump format will
> > compress data as it writes it to the output file. This will produce dump
> > file sizes similar to using gzip, but it has the added advantage that
> > tables can be restored selectively. The following command dumps a
>
> > database using the custom dump format:
> So this seems helpful to myself in only that A: the dump is compressed
> (my databases are generally small anyways) and B: I don't have to
> create the database before I restore it. My only question is I see
> that noted nowhere in the manual ... yet but I'm just wondering if
> that's a correct statement.

It is noted if you go to the pg_dump link shown above:)

--
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Robert James 2011-12-15 16:22:18 Double Denormalizing in Postgres
Previous Message Carlos Mennens 2011-12-15 16:14:17 Re: Server/Data Migration Advice