上海isp 发表于 2016-11-20 08:34:39

PostgreSQL备份恢复一:转储

  总体上命令形式如下:
  pg_dump -h数据库服务器IP -hpg端口 -U用户名 -W密码 -F *备份文件的格式 -f 备份文件名 要备的数据库
pg_restore  -h数据库服务器IP -hpg端口 -U用户名 -W密码 -d 数据库名 备份文件名
  其中数据库服务器IP为本机可以省略,端口为默认端口可以省略
  常用的对应逻辑备份恢复命令示例如下,这些命令我都试过,可以成功运行:
  1
a 备份数据库 beigang
 pg_dump -Ubeigang -f beigang_dump.pgdump beigang
b 恢复数据库beigang
 恢复前先创建用户和数据库,然后执行恢复
 create user beigang with superuser createdb createrole password 'beigang';
 create database beigang owner=beigang;
 pg_restore -U beigang -d beigang beigang_dump.pgdump
 验证
 beigang=# select * from test;
  id | name
 ----+------
   1 | 贝钢
 (1 行记录)
2
a 以custom format备份数据库 beigang
 pg_dump -Ubeigang -F c -f beigang_dump.pgdump beigang
b 恢复数据库beigang
 create user beigang with superuser createdb createrole password 'beigang';
 create database beigang owner=beigang;
 pg_restore -U beigang -F c -d beigang beigang_dump.pgdump
3
a 以directory format备份数据库 beigang
 pg_dump -Ubeigang -F d -f beigang_dump.pgdump beigang
b 恢复数据库beigang
 create user beigang with superuser createdb createrole password 'beigang';
 create database beigang owner=beigang;
 pg_restore -U beigang -F d -d beigang beigang_dump.pgdump
4
a 以plain text format备份数据库 beigang
 pg_dump -Ubeigang -F p -f beigang_dump.pgdump beigang
b 恢复数据库beigang
 create user beigang with superuser createdb createrole password 'beigang';
 create database beigang owner=beigang;
 psql -Ubeigang < beigang_dump.pgdump
5
a 以plain text format备份数据库 beigang 的数据,不包括模式
 pg_dump -Ubeigang -F p -a -f beigang_dump.pgdump beigang
b 恢复数据库beigang
 create user beigang with superuser createdb createrole password 'beigang';
 create database beigang owner=beigang;
 create schema xxx
  create table test (id numeric ,name varchar(20));
 psql -Ubeigang < beigang_dump
6
a 以plain text format备份数据库 beigang 的模式,不包括数据
 pg_dump -Ubeigang -F p -s -f beigang_dump.pgdump beigang
b 恢复数据库beigang
 create user beigang with superuser createdb createrole password 'beigang';
 create database beigang owner=beigang;
 psql -Ubeigang < beigang_dump
 --只恢复了表定义
7
a 以plain text format备份数据库 beigang 的表test
 pg_dump -Ubeigang -F p -t test -f beigang_dump.pgdump beigang
b 恢复数据库beigang
 create user beigang with superuser createdb createrole password 'beigang';
 create database beigang owner=beigang;
 psql -Ubeigang < beigang_dump
 --只恢复了备份的表
8
  a 以plain text备份这个DBMS
  pg_dumpall -Ubeigang -f pgdb.pgdump
b 恢复数据库系统
  psql -Ubeigang < beigang_dump
页: [1]
查看完整版本: PostgreSQL备份恢复一:转储