开发者社区 问答 正文

菜鸟学习postgreSQL的疑问

postgresql 9.6 数据库我修改了 wal_level 为replica archive_mode 为off

可以正常搭建流复制主备同步,但在做热备的时候,提示需要开启归档模式。

那么pg_xlog下的文件是什么呢?生产的pg数据库通常都需要开启归档模式吗 ?

-bash-4.2$ ll -thr total 256M drwx------ 2 postgres postgres 6 Jul 23 18:35 archive_status -rw------- 1 postgres postgres 16M Jul 25 13:55 000000010000000000000001 -rw------- 1 postgres postgres 16M Jul 25 13:55 000000010000000000000002 -rw------- 1 postgres postgres 16M Aug 5 11:09 000000010000000000000003 -rw------- 1 postgres postgres 16M Aug 5 11:09 000000010000000000000004 -rw------- 1 postgres postgres 16M Aug 5 11:35 000000010000000000000005 -rw------- 1 postgres postgres 16M Aug 5 11:35 000000010000000000000006 -rw------- 1 postgres postgres 16M Aug 5 11:48 000000010000000000000007 -rw------- 1 postgres postgres 16M Aug 5 11:48 000000010000000000000008 -rw------- 1 postgres postgres 16M Aug 5 11:49 000000010000000000000009 -rw------- 1 postgres postgres 16M Aug 5 11:49 00000001000000000000000A -rw------- 1 postgres postgres 16M Aug 5 11:50 00000001000000000000000B -rw------- 1 postgres postgres 16M Aug 5 11:50 00000001000000000000000C -rw------- 1 postgres postgres 16M Aug 6 09:42 00000001000000000000000D -rw------- 1 postgres postgres 16M Aug 6 09:42 00000001000000000000000E -rw------- 1 postgres postgres 16M Aug 16 11:35 00000001000000000000000F -rw------- 1 postgres postgres 16M Aug 16 11:40 000000010000000000000010

展开
收起
社区秘书 2019-11-18 14:00:18 723 分享
分享
版权
举报
阿里云 AI 助理回答

在 PostgreSQL 9.6 中,pg_xlog(在 PostgreSQL 10 及以后版本中改名为 pg_wal)目录存储的是 Write Ahead Log (WAL) 文件。WAL 是一种事务日志,用于确保数据的持久性和一致性。当数据库进行任何修改操作时,PostgreSQL 首先会将这些操作记录到 WAL 中,然后再执行实际的数据修改。这样设计的目的是即使在系统崩溃时也能通过重放 WAL 日志来恢复数据库到一致状态。

您列出的文件如 000000010000000000000001 等,就是这些 WAL 日志文件。每个文件大小为 16MB,这是默认的 WAL 段大小。这些文件按顺序编号,并且随着数据库活动的增长而增加。

关于归档模式(archive_mode),它是一个关键设置,用于增强数据安全和灾难恢复能力。当开启归档模式时,PostgreSQL 会在WAL文件被循环重用之前将其复制到一个安全的位置(比如网络共享、本地磁盘或其他远程存储)。这使得在发生严重故障,包括整个数据库服务器丢失的情况下,能够从备份和归档的日志中完全恢复数据库。

对于生产环境中的 PostgreSQL 数据库,是否需要开启归档模式通常取决于您的数据重要性、业务连续性和灾难恢复的需求: - 如果数据非常重要且不能承受数据丢失:应该开启归档模式,以实现点-in-time 恢复,即可以恢复到任意时间点的状态。 - 对于合规性要求:某些行业标准或法规可能要求必须有完整的数据备份和归档策略。 - 高可用架构:在复杂的主备同步或流复制场景中,开启归档模式是实现更高级别容灾能力的基础。

您提到在做热备时提示需要开启归档模式,这是因为热备份(例如使用 pg_basebackup)通常需要与归档模式配合使用,以便在备份过程中不断接收新的WAL日志,从而保证备份的一致性和完整性。因此,如果您计划实施热备份或需要高级别的数据保护,建议开启归档模式并正确配置归档命令(archive_command)。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等