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进行全库备份。