使用pgAdmin生成的.backup与.sql备份格式有什么区别?
pgAdmin中PostgreSQL
.sql与 .backup 备份格式的核心区别 pgAdmin的备份功能底层封装了PostgreSQL官方的pg_dump工具,两种后缀的备份文件分别对应pg_dump的不同输出格式,具体区别如下:
- 存储形式不同
.sql格式是纯文本SQL脚本,所有内容为可读的标准SQL语句,可直接用任意文本编辑器打开、查看甚至修改内容。.backup格式是PostgreSQL专属的二进制自定义归档格式,默认经过压缩处理,无法用普通文本编辑器打开,内容不可直接读取。
- 功能特性不同
.sql格式默认无压缩,相同数据量下备份文件体积更大;恢复时仅支持全量导入,无法选择仅恢复部分库对象(如指定表、函数),也无法调整恢复顺序;跨PostgreSQL大版本的兼容性更好。.backup格式默认启用压缩,备份体积比同数据量的.sql文件小30%~70%;支持并行备份、并行恢复,大库操作效率远高于文本格式;恢复时支持灵活筛选需要恢复的对象,也可自定义恢复优先级,灵活性更高。
- 恢复方式不同
.sql格式既可以在pgAdmin中通过「运行SQL文件」功能直接导入,也可以用psql命令行执行恢复,参考命令:psql -U 数据库用户名 -d 目标数据库名 -f base.sql.backup格式无法直接用psql执行,需要用pg_restore工具或者pgAdmin内置的恢复功能导入,参考恢复命令:
其中pg_restore -U 数据库用户名 -d 目标数据库名 -j 4 base.backup-j参数可指定并行恢复的线程数,进一步提升大库恢复速度。
- 适用场景不同
.sql更适合小容量数据库备份、需要手动调整备份内容、跨大版本PostgreSQL迁移、需要对备份内容做文本审计的场景。.backup更适合生产环境大容量数据库备份、有部分对象恢复需求、对备份存储成本和备份恢复速度有要求的场景。
内容的提问来源于stack exchange,提问作者Tsunani
相关产品推荐
相关产品推荐

