Обсуждение: Can I backup/restore a database in a sql script?

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

Can I backup/restore a database in a sql script?

От
"Joost Kraaijeveld"
Дата:
Hi,

I want to write a sql script in which I backup a database and restore a new (altered) version of that database. Is that
possible?If so , can anyone give me an example of how to do that?  

I can run it from any command prompt (psql -U postgres template1 < my_db.backup)    but I would like it to run from
psql(which should give me 1 script for all platforms I must do this: Windows, FreeBSD and Debian) 

TIA

Joost

Re: Can I backup/restore a database in a sql script?

От
Achilleas Mantzios
Дата:
Στις Παρασκευή 22 Ιούνιος 2007 10:59, ο/η Joost Kraaijeveld έγραψε:
> Hi,
>
> I want to write a sql script in which I backup a database and restore a new
> (altered) version of that database. Is that possible? If so , can anyone
> give me an example of how to do that?
>
> I can run it from any command prompt (psql -U postgres template1 <
> my_db.backup)    but I would like it to run from psql (which should give me
> 1 script for all platforms I must do this: Windows, FreeBSD and Debian)
>

With "\!" you can execute shell commands.
So you could probably
\c template1
\! pg_dump your_db > your_db.sql
\! some_processing your_db.sql > your_db_altered.sql
DROP DATABSE your_db
CREATE DATABSE your_db
\i your_db_altered.sql

I dont know if the \! escape works for windows, and in any case pg_dump,
some_processing programs must be in the PATH for Unix/Windows

Debian/FreeBSD behaviour is exactly the same, it is on windows that you should
try to make it work.

> TIA
>
> Joost
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq

--
Achilleas Mantzios

Re: [GENERAL] Can I backup/restore a database in a sql script?

От
Richard Huxton
Дата:
Joost Kraaijeveld wrote:
> Hi,
>
> I want to write a sql script in which I backup a database and restore
> a new (altered) version of that database. Is that possible? If so ,
> can anyone give me an example of how to do that?
>
> I can run it from any command prompt (psql -U postgres template1 <
> my_db.backup)    but I would like it to run from psql (which should
> give me 1 script for all platforms I must do this: Windows, FreeBSD
> and Debian)

You can restore using just psql (because pg_dump can produce an sql file
to be processed). I don't know of any way to backup a database that
doesn't use pg_dump.

--
   Richard Huxton
   Archonet Ltd

Re: [GENERAL] Can I backup/restore a database in a sql script?

От
Erik Jones
Дата:
On Jun 22, 2007, at 4:09 AM, Richard Huxton wrote:

> Joost Kraaijeveld wrote:
>> Hi,
>> I want to write a sql script in which I backup a database and restore
>> a new (altered) version of that database. Is that possible? If so ,
>> can anyone give me an example of how to do that?
>> I can run it from any command prompt (psql -U postgres template1 <
>> my_db.backup)    but I would like it to run from psql (which should
>> give me 1 script for all platforms I must do this: Windows, FreeBSD
>> and Debian)
>
> You can restore using just psql (because pg_dump can produce an sql
> file to be processed). I don't know of any way to backup a database
> that doesn't use pg_dump.
>

You could script a PITR backup and recovery procedure but I doubt any
given single solution would be portable between Windows, Debian, and
FreeBSD given the differences in filesystems and filesystem tools
although I suppose with a lot of careful work it may be possible.
See the chapter on Backup and Restore in the manual for the details
of how PITR works (http://www.postgresql.org/docs/8.2/interactive/
backup.html).

Erik Jones

Software Developer | Emma®
erik@myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)

Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com