面试题答案
一键面试1. 备份格式特点
- plain(明文格式)
- 特点:以SQL文本形式存储备份数据,可读性强,可直接编辑查看。文件包含创建数据库对象(表、视图、索引等)的SQL语句以及插入数据的INSERT语句。但恢复速度相对较慢,因为恢复时需按顺序执行SQL语句,且在大数据量时文件体积较大。
- 示例:
pg_dump -F p -f backup.sql your_database
- custom(自定义格式)
- 特点:是一种二进制格式,由pg_dump自定义。它紧凑高效,适合备份大数据量。支持并行恢复,能显著提升恢复速度。但该格式不可读,不能直接编辑,需pg_restore工具恢复。
- 示例:
pg_dump -F c -f backup.custom your_database
- directory(目录格式)
- 特点:同样是一种二进制格式,以目录结构存储备份数据,每个表空间、表等数据库对象都以单独文件存储。它也支持并行恢复,并且可以选择性恢复单个对象,灵活性高。同样需pg_restore工具恢复。
- 示例:
pg_dump -F d -f backup_directory your_database
- tar(归档格式)
- 特点:将备份数据存储在一个TAR归档文件中,包含SQL脚本和二进制文件(如果有大对象)。这种格式便于跨平台传输,且可以使用标准的tar工具查看内容。恢复时需pg_restore工具。
- 示例:
pg_dump -F t -f backup.tar your_database
2. 不同业务场景下的选择
- 数据迁移
- 选择:推荐使用custom或directory格式。
- 原因:数据迁移通常涉及大量数据在不同环境间转移,这两种格式紧凑高效且支持并行恢复,可加快迁移过程。directory格式还提供了选择性恢复单个对象的灵活性,若只需迁移部分数据库对象,该格式更合适。
- 灾难恢复
- 选择:custom格式优先,directory格式也可。
- 原因:灾难恢复场景要求快速恢复数据,custom格式的并行恢复能力能满足这一需求,尽快使数据库恢复正常运行。directory格式同样支持并行恢复且灵活性高,在部分数据恢复或对恢复对象有选择需求时更为适用。
- 日常备份
- 选择:若注重可读性和便于直接查看编辑,可选择plain格式;若更关注备份效率和恢复速度,custom或directory格式更好;若需跨平台传输备份文件,tar格式是不错的选择。
- 原因:plain格式方便DBA查看备份内容,排查问题,但大数据量时效率低。custom和directory格式在备份和恢复效率上表现出色,适合对效率要求高的日常备份场景。tar格式则满足了跨平台存储和传输备份数据的需求。