面试题答案
一键面试基本工作原理
- 数据写入:当主库接收到事务提交请求时,主库会生成WAL(Write-Ahead Log)日志记录此次事务的变更。
- 日志发送:主库将WAL日志发送给同步备库。
- 备库确认:同步备库接收并写入WAL日志后,向主库发送确认消息,表明已成功接收并持久化日志。
- 事务完成:主库收到所有同步备库的确认消息后,才确认事务提交成功。若在规定时间内未收到足够同步备库的确认,事务会回滚。
主要组件及其交互
- 主库:负责处理客户端的读写请求,生成WAL日志,并将其发送给同步备库。
- 同步备库:接收主库发送的WAL日志,写入本地并向主库发送确认消息。
- WAL发送器:主库中的组件,负责将WAL日志发送到同步备库。
- WAL接收器:同步备库中的组件,负责接收主库发送的WAL日志并持久化。
通过这些组件间的交互,PostgreSQL实现同步复制,确保数据在主库和同步备库间的一致性。