备份数据库
建议在卸载数据库之前备份数据库数据,以防止数据丢失。请根据实际需要备份数据库。
基本命令
pg_dump是一个用于备份PostgreSQL数据库的工具。它甚至可以在数据库正在并发使用时进行完整一致的备份,而不会阻塞其它用户对数据库的访问。
该工具生成的转储格式可以分为以下两种格式:
- 脚本格式:是包含许多SQL命令的纯文本格式,这些SQL命令可以用于重建该数据库并将之恢复到生成此脚本时的状态,该操作需要使用psql来完成。
- 归档格式:如果需要重建数据库就必须和pg_restore工具一起使用。在重建过程中,可以对恢复的对象进行选择,甚至可以在恢复之前对需要恢复的条目进行重新排序。
基本命令的使用方式如下:
1 2 | pg_dump [option...] [dbname] pg_dump -h <主机> -p <端口> -U<用户名> -W<密码>-d <数据库> -f /路径/文件名.sql |
命令参数 |
说明 |
---|---|
-h |
指定PostgreSQL连接数据库服务器IP地址。 |
-p |
指定连接数据端口。 |
-U |
指定数据库用户。 |
-W |
输入数据库密码。 |
-d |
指定数据库名称。如果没有提供数据库名字,那么使用PGDATABASE环境变量的数值。 |
-f |
指定输入到文件名。 |
-F |
指定转储格式,默认为脚本格式。 |

备份数据完成后,可以通过psql恢复数据。
举例

- 路径根据数据库软件安装实际路径为准,本章以路径“/usr/local/pgsql”为例。
- 数据库名,以实际要备份的数据库名字为准,本章以postgres为例。
- 只导出postgres数据库的数据(-s表示不包括数据模式 )。该命令在root用户下执行。
1
/usr/local/pgsql/bin/pg_dump -U postgres -f /postgres.sql -s postgres
- 导出postgres数据库(包括数据)。该命令在root用户下执行。
1
/usr/local/pgsql/bin/pg_dump -U postgres -f /postgres.sql postgres
- 导出postgres数据库中表table01的数据。
1
postgres=create table "table01" ("Name" varchar(255));
以下命令在root用户下执行:
/usr/local/pgsql/bin/pg_dump -U postgres -f /postgres.sql -t table01 postgres
- 导出postgres数据库中表table01的数据,以insert语句形式保存。
1
/usr/local/pgsql/bin/pg_dump -U postgres -f /postgres.sql -t table01 --column-inserts postgres
- 恢复数据到bk01数据库。其中bk01为已创建完毕的数据库。
1
/usr/local/pgsql/bin/psql -U postgres -f /postgres.sql bk01
父主题: 安装指南