转帖PG的简单使用
https://blog.****.net/lk_db/article/details/77971634
一: 纯文件格式的脚本:
示例:
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
使用pg_restore纯文本恢复纯文本格式的脚本,无法恢复
[root@localhost postgres-9.3.5]# pg_restore -U postgres -d bk01 /mnt/hgfs/window\&ubuntu\ shared\ folder/vendemo.sql
pg_restore: [archiver] input file appears to be a text format dump. Please use psql.
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
2. 使用 split。. 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