1.pg_dump备份恢复
pg_dump 是一个逻辑备份工具。使用 pg_dump 可以在数据库处于使用状态下进行一致性的备份, 它不会阻塞其他用户对数据库的访问 。一致性备份是 pg_dump 开始运行时,给数据库打了一个快照,且在 pg_dump 运行过程中发生的更新将不会被备份。pg_dump 只备份单个数据库,不能备份数据库公共的全局对象(例如角色和表空间)提示 :将执行 pg_dump/pg_restore 的客户端放在尽可能靠近 源和目标 数据库的位置,以避免因网络延迟不良而导致的性能问题。
2.pg_dump常用参数
-h host,指定数据库主机名,或者 IP
-p port,指定端口号
-U user,指定连接使用的用户名
-W,按提示输入密码
dbname,指定连接的数据库名称,实际上也是要备份的数据库名称。
-f,--file:输出到指定文件中
-F,--format=c|d|t|p:
c 为自定义格式,也是二进制格式,压缩存储,只能使用 pg_restore 来还原, 可
以指定还原的表, 编辑 TOC 文件, 定制还原的顺序, 表, 索引等。
d 为目录
t 表示输出为 tar 包
p 为纯文本 SQL,大库不推荐;
-j,--jobs=num:指定并行导出的并行度
-a,--data-only:只导出数据,不导出表结构
-c,--clean:是否生成清理该数据库对象的语句,比如 drop table
-C,--create:是否输出一条创建数据库语句
-n,--schema:只转存匹配 schema 的模式内容
-N,--exclude-scheam:不转存匹配 schema 的模式内容
-O,--no-owner,不设置导出对象的所有权
-s,--schema-only:只导致对象定义模式,不导出数据
-t,--table:只转存匹配到的表,视图,序列,可以使用多个-t 匹配多个表
-T,--exclude-table:不转存匹配到的表。
--inserts:使用 insert 命令形式导出数据,这种方式比默认的 copy 方式慢很多,但是可
用于将数据导入到非 PostgreSQL 数据库。
--column-inserts:导出的数据,有显式列名
3.备份
3.1指定库备份
1.导出sql文件
-- insert 命令形式导出库的数据
pg_dump -h 127.0.0.1 -U postgres -p 5432 -W testdb --inserts > testdb.sql
pg_dump