原文链接:http://www.weijingbiji.com/1975/
PostgreSQL, 数据库 / 作者:viking
PostgreSQL 应用 pg_dump 和 pg_dumpall 进行数据库的逻辑备份,pg_dumpall 是对整个数据库集群进行备份,pg_dump 能够抉择一个数据库或者局部表进行备份。
pg_dump 将表构造及数据以 SQL 语句的模式导出到文件中,复原数据时,将导出的文件作为输出,执行其中的 SQL 语句,即可复原数据。
pg_dump 可能对正在应用的 PostgreSQL 数据库进行备份,并且不影响失常业务的读写。
一、pg_dump 罕用示例:
1.1 导出单表数据
pg_dump -h 127.0.0.1 -U admin -p 5432 -W db -t t1 –inserts > bak.sql
1.2 导出多个表数据
pg_dump -h 127.0.0.1 -U admin -p 5432 -W db -t t1 -t t2 –inserts > bak.sql
1.3 导出整个数据库
pg_dump -h 127.0.0.1 -U admin -p 5432 -W db –inserts > bak.sql
1.4 只导出表构造,不导出数据
pg_dump -h 127.0.0.1 -U admin -p 5432 -W db -s > bak.sql
1.5 只导出数据,不导出表构造
pg_dump -h 127.0.0.1 -U admin -p 5432 -W db –inserts -a > bak.sql
二、pg_dump 罕用参数
-h host,指定数据库主机名,或者 IP
-p port,指定端口号
-U user,指定连贯应用的用户名
-W,按提醒输出明码
dbname,指定连贯的数据库名称,实际上也是要备份的数据库名称。-a,–data-only,只导出数据,不导出表构造
-c,–clean,是否生成清理该数据库对象的语句,比方 drop table
-C,–create,是否输入一条创立数据库语句
-f file,–file=file,输入到指定文件中
-n schema,–schema=schema,只转存匹配 schema 的模式内容
-N schema,–exclude-schema=schema,不转存匹配 schema 的模式内容
-O,–no-owner,不设置导出对象的所有权
-s,–schema-only,只导致对象定义模式,不导出数据
-t table,–table=table,只转存匹配到的表,视图,序列,能够应用多个 - t 匹配多个表
-T table,–exclude-table=table,不转存匹配到的表。–inserts,应用 insert 命令模式导出数据,这种形式比默认的 copy 形式慢很多,然而可用于将数据导入到非 PostgreSQL 数据库。–column-inserts,导出的数据,有显式列名
三、pg_dumpall
绝对于 pg_dump 只能备份单个库,pg_dumpall 能够备份整个 postgresql 实例中所有的数据,包含角色和表空间定义。
示例如下:
pg_dumpall -h 127.0.0.1 -U admin -p 5432 -W –inserts > bak.sql