面试题答案
一键面试事务日志(Write-Ahead Log,WAL)
- 作用:
- 数据恢复:在系统崩溃或故障后,PostgreSQL可以通过重放事务日志中的记录来恢复未完成的事务,并确保已提交的事务对数据的修改得以持久化。这保证了数据库的一致性和完整性。
- 崩溃恢复:系统重启时,利用事务日志将数据库恢复到崩溃前的状态,避免数据丢失。
- 流复制:主从复制环境中,主库将事务日志发送给从库,从库通过应用这些日志来保持与主库的数据同步,实现数据的高可用和灾难恢复。
日志归档(Archive Log)
- 作用:
- 灾难恢复:将事务日志进行归档存储,在发生严重故障(如磁盘损坏、数据丢失等)时,可以结合归档日志和基础备份来恢复数据库到某个特定的时间点,最大限度地减少数据丢失。
- 数据备份与恢复策略:用于实现基于时间点恢复(Point-in-Time Recovery,PITR),可以恢复数据库到过去某个精确的时间点,满足合规性要求或应对误操作等情况。
- 数据迁移:在数据库迁移或升级时,归档日志有助于确保数据的一致性迁移,通过应用归档日志在新环境中重建历史事务。
日志文件(pg_log 日志)
- 作用:
- 故障排查:记录数据库运行过程中的各类事件、错误信息、警告等,帮助数据库管理员快速定位和诊断系统运行过程中出现的问题,如查询执行错误、连接问题等。
- 性能分析:记录查询的执行时间、资源使用情况等信息,有助于分析数据库性能瓶颈,优化查询和配置参数,提升整体性能。
- 安全审计:记录用户登录、权限变更等安全相关事件,用于安全审计,确保数据库操作的合规性和安全性。