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 示例
-
只导出postgres数据库的数据,不包括模式 -s
pg_dump -U postgres -f /postgres.sql -s postgres(数据库名)
-
导出postgres数据库(包括数据)
pg_dump -U postgres -f /postgres.sql postgres(数据库名)
-
导出postgres数据库中表test01的数据
create database "test01" with owner="postgres" encoding='utf-8';(单引号,双引号不能错)
pg_dump -U postgres -f /postgres.sql -t test01 postgres(数据库名)
-
导出postgres数据库中表test01的数据,以insert语句的形式
pg_dump -U postgres -f /postgres.sql -t test01 --column-inserts postgres(数据库名)
-
恢复数据到bk01数据库
psql -U postgres -f /postgres.sql bk01
pg_restore 归档格式数据恢复
-
先备份:
pg_dump -U postgres -F t -f /vendemo.tar vendemo 备份下来有800多k
恢复:
pg_restore -U postgres -d bk01 /vendemo.tar
-
先备份:
pg_dump -U postgres -F c -f /vendemo.tar vendemo 备份下来有300多k
恢复:
pg_restore -U postgres -d bk01 /vendemo.tar
压缩备份与恢复方式
备份恢复大量数据的库时:
- 使用压缩的转储. 使用你熟悉的压缩程序,比如说 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
- 使用 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