PostgreSQL-pg_dump,pg_restore
逻辑备份
和psql一样,pg_dump、pg_restore有基本的和数据库连接的参数
-h 目标地址(对应环境变量$PGHOST)
-p 连接端口(对应环境变量$PGPORT)
-U 连接使用的用户(对应环境变量$PGUSER)
-d 连接使用的库,但是pg_dump 省略了-d,可以直接跟库名(对应环境变量$PGDATABASE)
已设环境环境变量
$PGHOST=127.0.0.1
$USER=chen
$PGDATABASE=yun
备份,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 列出全部数据库时看不到存取权限了,有待继续实验