逻辑备份
逻辑备份在恢复时,介于逻辑备份与故障时间点之间的数据难以恢复,而且如果表比较
大时,备份时间会很长,而且恢复时间会更长,故一般不采取逻辑备份方式进行数据库备份;
对于小表和跨平台跨版本 的数据迁移,适合用逻辑备份。并且逻辑备份可以当作物理备份的
辅助备份手段。
逻辑备份主要以下三种:
pg_dump 命令可以选择一个数据库或部分表进行备份,只能备份单个数据库,而且恢复
的时候需要创建空数据库。
pg_dumpall 是将一个 PostgreSQL 数据库集群全部转储到一个脚本文件中,可以备份所
有数据库,并且备份角色、表空间。
Copy 用于表与文件(和标准输出,标准输入)之间的相互拷贝。
pg_dump
介绍
pg_dump
只能备份单个数据库,不会导出角色和表空间相关的信息。
pg_dump
不会阻塞其他用户读取或写入数据库,即使数据库正在被并发使用,也能创
建一致的备份。
备份的数据可以是脚本或归档文件格式,
-F c
备份为二进制格式
,
压缩存储
.
并且可被
pg_restore
用于精细还原,归档文件格式必须与
pg_restore
配合使用来重建数据库。
-F p
备
份为脚本
,
大库不推荐。
脚本格式的内容包含
sql
命令的纯文本数据,可用来
1)
、重建数据库到它被备份时的状态。
2)
、在其他机器上重构数据库。
3)
、在经过一些修改后,还可以在其他
sql
数据库产品上重构数据库。
pg_dump
参数
命令的使用方法如下(选了比较重要的参数):
-j
:指定并行导出的并行度。
-a
:该选项只对纯文本格式有意义,只输出数据,不输出数据定义的
SQL
语句。
-b
:在转储中是否包含大对象。
-c
:该选项只对纯文本格式有意义,输出的脚本中是否生成清理该数据库对象的语句(如
drop table
命令)。
-C
:该选项只对纯文本格式有意义,指定脚本中是否输出一条
create database
语句。如
果备份的源数据库与目标数据库名称一致时指定该参数。
-E
:以指定的字符集编码创建转储,默认转储是依据数据库编码创建的。
-f
:输出到指定的文件。如果没有指定此参