逻辑备份
和psql同样,pg_dump、pg_restore有基本的和数据库链接的参数sql
-h 目标地址(对应环境变量$PGHOST)shell
-p 链接端口(对应环境变量$PGPORT)数据库
-U 链接使用的用户(对应环境变量$PGUSER)bash
-d 链接使用的库,可是pg_dump 省略了-d,能够直接跟库名(对应环境变量$PGDATABASE)post
已设环境环境变量spa
$PGHOST=127.0.0.1rest
$USER=chenblog
$PGDATABASE=yunclass
备份,yun库,备份为custom自定义格式的归档文件,压缩等级9,在shell下执行变量
pg_dump yun -Fc -Z 9 >yun1.dump
在psql中建立一个以template0为模版的库,名为yun2,0号模版比较干净,另:老是把template 和complete 搞混,前者是模版的意思,后者是完整。。
create database yun2 template template0
还原,在shell下运行pg_restore,把yun库恢复到yun2库中,这就是还原到不一样名库中的方法
pg_restore -Upostgres -d yun2 yun1.dump
先新建库的还原,-C自动新建与备份时同名的库,并还原到其中,-d 只是暂时先创建链接用
pg_restore -Upostgres -C -d postgres yun1.dump
就是还原后用\l 列出所有数据库时看不到存取权限了,有待继续实验