PostgreSQL导出导入pg_dump.sql详解

386 阅读2分钟

pg_dump文件导出

pg_dump -d jdbc -h localhost -p 5432 -U postgres -f /home/sql/outsql.dmp jdbc
#-d 数据库名称
#-h ip地址
#-p 端口号
#-U 用户
#-f 保存路径
#jdbc  数据库名称

psql命令导入

psql -d jdbc -h localhost -p 5432 -U postgres -f /home/sql/outsql.dmp

#-d 数据库名称
#-h ip地址
#-p 端口号
#-U 用户
#-f sql文件路径

pg_dump & psql 示例

  1. 只导出postgres数据库的数据,不包括模式 -s

    pg_dump -U postgres -f /postgres.sql -s postgres(数据库名)

  2. 导出postgres数据库(包括数据)

    pg_dump -U postgres -f /postgres.sql postgres(数据库名)

  3. 导出postgres数据库中表test01的数据

    create database "test01" with owner="postgres" encoding='utf-8';(单引号,双引号不能错)

    pg_dump -U postgres -f /postgres.sql -t test01 postgres(数据库名)

  4. 导出postgres数据库中表test01的数据,以insert语句的形式

    pg_dump -U postgres -f /postgres.sql -t test01 --column-inserts postgres(数据库名)

  5. 恢复数据到bk01数据库

    psql -U postgres -f /postgres.sql bk01

pg_restore 归档格式数据恢复

  1. 先备份:

    pg_dump -U postgres -F t -f /vendemo.tar vendemo 备份下来有800多k

    恢复:

    pg_restore -U postgres -d bk01 /vendemo.tar

  2. 先备份:

    pg_dump -U postgres -F c -f /vendemo.tar vendemo 备份下来有300多k

    恢复:

    pg_restore -U postgres -d bk01 /vendemo.tar

压缩备份与恢复方式

备份恢复大量数据的库时:

  1. 使用压缩的转储. 使用你熟悉的压缩程序,比如说 gzip。
  • 先备份:

    pg_dump -U postgres vendemo | gzip > /vendemo.gz 备份下来只有30多k

  • 恢复:

    gunzip -c /vendemo.gz | psql -U postgres bk02

    或者

    cat /vendemo.gz | gunzip | psql -U postgres bk02

  1. 使用 split 命令 它允许你用下面的方法把输出分解成操作系统可以接受的大小。 比如,让每个块大小为 1 兆字节:
  • 先备份:

    pg_dump -U postgres -d vendemo | split -b 100k - /vend/vend

    导出来的样子是
    vendaa 100k vendab 100k vendac 100k vendad 16k

  • 恢复:

cat /vend/vend* | psql -U postgres bk02

转载至:www.bilibili.com/read/cv1441…