# 1. PostgreSQL 物理复制(Physical Replication),WAL 流复制? A 物理复制可以跨大版本自由复制 B 物理复制只复制表结构,不复制数据 C 物理复制通过传输并重放 WAL 在备库重建与主库一致的数据库 ✓ 正确答案 D 物理复制不支持只读查询
# 2. PostgreSQL 逻辑复制(Logical Replication),publication/subscription? A 逻辑复制不需要 wal_level 配置 B 逻辑复制与物理复制完全一致,无区别 C 逻辑复制会自动复制 DDL 变更 D 逻辑复制基于 WAL 逻辑解码,可按表复制并可跨版本 ✓ 正确答案
# 3. 流复制(Streaming Replication)的搭建,primary/standby? A 备库初始化需用 pg_basebackup 拷贝主库数据,并配置 primary_conninfo ✓ 正确答案 B 备库无需任何参数,直接启动即可 C 主库不需要配置 wal_level 和复制账号 D 复制槽会导致备库无法启动
# 4. 逻辑复制的 DDL 限制与解决,pgoutput、wal2json? A 逻辑复制会自动同步所有 DDL 变更 B 逻辑复制默认不复制 DDL,表结构变更需手动同步到订阅端 ✓ 正确答案 C pgoutput 主要用于把变更输出为 JSON D wal2json 是 PostgreSQL 内置的默认输出插件
# 5. PostgreSQL 复制与一致性? A synchronous_commit 与复制无关 B 异步复制在 failover 时一定不丢数据 C 同步复制等待备库确认 WAL 后才提交,可保证提交事务不丢 ✓ 正确答案 D 同步复制不会增加写入延迟
# 6. PostgreSQL 认证方式,trust、md5、scram-sha-256、cert、ldap? A scram-sha-256 是强密码认证,比 md5 更安全,是推荐方式 ✓ 正确答案 B trust 认证会验证密码,确保安全 C cert 认证基于用户名密码,不使用证书 D md5 认证的密码存储方式最安全
# 7. 逻辑复制为什么要求表有主键或设置 replica identity?没有复制标识时 UPDATE 与 DELETE 如何传输和应用? A REPLICA IDENTITY FULL 会减少网络传输量 B 逻辑复制不需要复制标识即可应用 UPDATE/DELETE C 默认使用主键作为复制标识,无主键时需用唯一索引或 FULL ✓ 正确答案 D 复制标识只有主键一种选项
# 8. WAL 记录与 LSN 如何协同 checkpoint 与崩溃恢复?group commit 如何合并多个事务的 fsync 提升写入吞吐? A group commit 会增加 fsync 次数 B WAL 是修改数据后才写入的日志 C checkpoint 与崩溃恢复无关 D checkpoint 记录崩溃恢复起点,group commit 合并多个事务的 fsync 提升吞吐 ✓ 正确答案
# 9. WAL 归档(archive_mode、archive_command)的应用? A archive_mode 只需设置 on 即可,无需配置命令 B 归档失败不影响主库工作 C archive_command 把完成的 WAL 段复制到归档存储,是 PITR 的基础 ✓ 正确答案 D WAL 归档与备份无关
# 10. WAL(Write-Ahead Log)的作用与配置,wal_level、max_wal_size? A max_wal_size 与 checkpoint 频率无关 B wal_level=minimal 支持逻辑复制 C wal_level=logical 支持逻辑解码,可用于逻辑复制 ✓ 正确答案 D WAL 只在崩溃时写入,正常事务不写
# 11. WAL 接收与回放,pg_receivewal、pg_basebackup? A pg_basebackup 创建基础备份,pg_receivewal 持续接收 WAL 流 ✓ 正确答案 B 两者功能完全相同,任选其一 C pg_receivewal 用于创建基础备份 D pg_basebackup 用于接收 WAL 流
# 12. pg_hba.conf 的配置规则,host、database、user、address、auth-method? A replication 连接不在此文件配置 B 规则匹配顺序无关紧要 C host 类型只用于本地 socket 连接 D 规则按从上到下顺序匹配,第一条匹配生效 ✓ 正确答案
# 13. 物理 vs 逻辑复制的取舍? A 逻辑复制支持跨版本且字节级一致 B 物理复制可以按表过滤复制 C 物理复制适合高可用,逻辑复制适合按表/跨库的数据同步 ✓ 正确答案 D 物理复制比逻辑复制更灵活
# 14. pgoutput 在逻辑复制协议中的角色,作为输出插件如何解码 WAL 并推送给订阅端,与 wal2json 的格式差异及对 CDC 工具的适配? A 两者都输出 JSON 格式 B pgoutput 是内置二进制协议插件,wal2json 输出 JSON 供外部系统消费 ✓ 正确答案 C pgoutput 只能用于外部 CDC 工具 D wal2json 是 PG 内置的默认插件
# 15. wal2json 在 CDC 管道中的应用,将逻辑复制输出为 JSON 变更流的事务边界与性能开销如何权衡,生产上为何常被 pgoutput 取代? A wal2json 比 pgoutput 性能更高 B wal2json 是内置插件,无需安装 C pgoutput 输出 JSON 格式,适合外部消费 D pgoutput 是内置高效插件,常因稳定与维护成本低取代 wal2json ✓ 正确答案
# 16. WAL 与复制槽(replication slot)的配合,复制槽如何保证 standby 与逻辑订阅端不丢 WAL,槽位堆积导致的磁盘风险如何监控与清理? A 复制槽只用于逻辑复制,不影响物理复制 B 复制槽不会影响 WAL 保留 C 复制槽堆积会自动清理,无需监控 D 复制槽保证下游不丢 WAL,但下游不消费会导致 pg_wal 膨胀 ✓ 正确答案
# 17. publication 支持的表级、行级(WHERE)与列级过滤对逻辑复制的数据量与性能有何影响?DDL 变更后过滤条件如何生效? A 过滤条件在 DDL 变更后自动生效,无需处理 B 行级(WHERE)与列级过滤可减少逻辑复制传输的数据量 ✓ 正确答案 C publication 只能发布整张表,无法过滤 D 过滤会增加订阅端的数据量
# 18. scram-sha-256 认证的密码如何存储?password_encryption 参数与旧 md5 哈希的平滑迁移升级如何做? A md5 密码比 SCRAM 更安全 B SCRAM 密码就是明文密码 C password_encryption 只影响已存储的密码,不能改 D SCRAM 密码以含盐与派生态的格式存储,不保存明文 ✓ 正确答案
# 19. PostgreSQL 逻辑复制的冲突处理,主键冲突、表结构不一致时的行为与 subscription 的 disable/enable 恢复? A 主键冲突或表结构不一致会导致复制停止,需修正后 DISABLE/ENABLE 恢复 ✓ 正确答案 B 逻辑复制冲突会自动跳过,无需处理 C 表结构不一致不影响逻辑复制 D 冲突只能通过重建数据库解决
# 20. 复制账号为何应使用最小权限而非超级用户?REPLICATION 属性与 pg_hba.conf 中 replication 条目如何配置? A 复制账号应使用最小权限并具备 REPLICATION 属性,避免超级用户 ✓ 正确答案 B 复制账号必须是超级用户 C REPLICATION 属性与复制无关 D pg_hba.conf 无需为复制账号配置条目