1.备份工具
pg_dump
pg_dumpall
pg_basebackup
2.简介
pg_dump 用于备份一个指定的database
pg_dumpall可以一次性备份所有的数据库的数据以及系统的全局数据。需要具备superuser权限。
pg_basebackup可以针对所有的数据库实现系统级别的磁盘备份。
pg_basebackup全库备份最有效。
3.pg_dump
pg_dump 可以精确的指定需要备份的表,schema,database,而pg_dumpall不支持。
pg_dump可以将数据备份为sql文本文件也支持压缩格式,tar格式或者目录格式。pg_restore的时候,前三种格式的备份文件都可以实现并行恢复。
pg_dump进行备份时,选择目录格式可以实现并行备份,在备份非常大的时候,可以使用目录格式。
备份某数据库database,备份结果以自定义压缩格式输出
pg_dump -h localhost -p 5432 -U userxxxx -F c -b -v -f mydb.backup mydb
备份某个database ,备份结果以sql文本方式输出,命令带-C,输出结果包含create database语句
pg_dump -h localhost -p 5432 -U userxxxx -C -F -p -b -v -f mydb.backup mydb
备份某个数据库的名称包含 ‘lsy‘ 开头的表,备份结果以压缩格式输出。
pg_dump -h localhost -p 5432 -U userxxxx -F c -b -v -t *.lsy* -f lsy.backup mydb
备份某database 中的 emp和hr的两个schema中所有的数据,备份以压缩格式输出
pg_dump -h localhost -p 5432 -U lsy -F c -b -v -n emp -n hr -f emp.backup mydb
备份某个database 除了public schema 中的数据之外的所有数据,备份以压缩方式输出
pg_dump -h localhost-p 5432 -u lishiyan -F c -b -v -N public -f all_sche_except_pub.backup mydb
将数据备份为sql文件,且生成的insert语句是带有字段名列表的标准格式,可用于跨库迁移
pg_dump -h localhost -p 5432 -U lishiyan -F p --column-inserts -f select_tables.backup mydb
如果输出文件路径中包含空格或者其他影响命令行正常处理的字符,在路径两侧加双引号
目录格式备份
pg_dump -h localhost -p 5432 -U lishiyan -F d -f /somepath/a_directory mydb
目录格式并行备份
pg_dump -h localhost -p 5432 -U someuser -j 3 -Fd -f /somepath/a_directory mydb
不建议使用pg_dumpall进行全库备份。
PG数据库管理_备份工具的使用