PostgreSQL数据的导出导入 save your data!

PostgreSQL数据的导出导入

导出PostgreSQL数据库中的数据:

$ pg_dump -U postgres  -f mydatabase.sql  mydatabase

导入数据时首先创建数据库再用psql导入:

$ createdb newdatabase
$ psql -d newdatabase -U postgres -f mydatabase.sql

定期保存数据,以防万一。下载定期保存。服务器如果整个毁掉?映像不可恢复?

至少资料还在。

什么backup都比不上这个backup plan。 

这里提供其他的方法:

引用来自:http://jingyan.baidu.com/article/bad08e1e84fe8109c951217b.html

  1. 导入整个数据库

    psql -U postgres(用户名)  数据库名(缺省时同用户名) < /data/dum.sql

  2.  

    导出整个数据库

    pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)   >/data/dum.sql

  3. 4

    导出某个表

    pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)  -t table(表名) >/data/dum.sql

  4. 5

    压缩方法

    一般用dump导出数据会比较大,推荐使用xz压缩

    压缩方法  xz dum.sql 会生成 dum.sql.xz 的文件

  5. 6

    xz压缩数据倒数数据库方法

    xzcat /data/dum.sql.xz | psql -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)

这里还有边导出边压缩的方式

引用: http://blog.163.com/dazuiba_008/blog/static/3633498120139313376223/

1.建立管道:
#mknod dumpipe p
 
2.导出指定表test数据
postgres=# select count(*) from test;
 count 
-------
   601
(1 row)
#pg_dump -h 127.0.0.1 -U postgres  -a  -t test  -f dumpipe & gzip<dumpipe>test.dmp.gz
 
3.删除数据
postgres=# truncate table test;
TRUNCATE TABLE
postgres=# select count(*) from test;
 count 
-------
     0
(1 row)
 
4.导入数据,删除管道
#psql -f dumpipe & gunzip <test.dmp.gz >dumpipe
postgres=# select count(*) from test;
 count 
-------
   601
(1 row)
#rm -f dumpipe
 
 
 
原文地址:https://www.cnblogs.com/spaceship9/p/4188554.html