功能描述
使用pg_restore命令可以从一个归档中恢复一个由pg_dump创建的postgresql数据库
命令语法
pg_restore [选项] [文件]
选项含义
选项 | 含义 | |
-d<数据库名> | 指定连接的数据库名称 | |
-f<文件名> | 指定输出文件名 | |
-F<格式> | 指定备份文件格式,可以是c或t | |
-v | 详细模式 | |
-a | 只恢复数据,不包括模式 | |
-c | 在重新创建之前,先删除数据库对象 | |
-C | 创建目标数据库 | |
-n<模式> | 在这个模式中只恢复对象 | |
-I<索引> | 恢复指定名称的索引 | |
-O | 忽略恢复对象所属者 | |
-s | 只恢复模式,不包括数据 | |
-S<用户名> | 使用指定的 超级用户来禁用触发器 | |
-t<表> | 恢复指定名称的表 | |
-P<函数> | 恢复指定名称的函数 | |
-T<触发器> | 恢复指定名称的触发器 | |
-x | 跳过处理权限的恢复 | |
–disable-triggers | 在只恢复数据的过程中禁用触发器 | |
-h<主机名> | 数据库服务器的主机名 | |
-p<端口号> | 数据库服务器端口号 | |
-U<用户名> | 以指定的用户连接postgresql服务器 | |
-w | 永远不提示输入口令 | |
| 强制口令提示 | |
–no-tablespaces | 不恢复表空间分配信息 | |
-e | 发生错误退出,默认为继续 | |
-L<文件名> | 从这个文件中使用指定的内容表排序输出 | |
-l | 打印归档文件的TOC概述 |
例
恢复数据库www(数据库www已经删除的情况下)
[root@linuxlz.com~]# su – postgres
//备份数据库www
-bash-4.1$ pg_dump -Fc www >www.sql
//删除数据库www
-bash-4.1$ dropdb www
//还原数据库www
-bash-4.1$ pg_restore -C -d postgres www.sql
恢复数据库www(数据库www已经存在的情况下)
//以template0数据库为模版创建数据库www
-bash-4.1$ createdb -T template0 www
-bash-4.1$ pg_restore -d www www.sql
使用psql命令恢复数据库www
//删除数据库www
-bash-4.1$ dropdb www
//创建数据库www
-bash-4.1$ createdb www
//恢复数据库www
-bash-4.1$ psql www<www.sql
正文完