PostgreSQL如何在启用WAL的备份中处理检查点?
在PostgreSQL v9.0上我有一个WAL归档系统工作.所以WAL文件经常存档(当创建3 WAL或者WAL超过15分钟时).
现在我添加PG_DATA目录的二进制包(不包括pg_xlog子目录).为此,我执行pg_start_backup(),二进制副本和pg_stop_backup(). 我想我很清楚pg_start_backup和pg_stop_backup正在做什么,第一个做一个检查点,最后一个确保最后一个WAL文件被存档. 从the official documentation我们可以看到,对于二进制数据副本,我们应该:
所以我很困惑.这意味着我们在制作副本时可以执行检查点.我看到很多文档说明复制命令应该允许在执行复制时更改数据,我很好,只需要找到合适的工具.但我的问题是postgreSQL如何使用pg_data内容处理恢复,其中包含一些不一致的文件(一些来自检查点之前,一些来自之后)? 通过重放事务日志,Postgresql能够将所有这些文件置于正确的状态吗?我看到在备份执行时创建表和删除操作很危险,是不是有真空命令等危险操作? pg_backup暂停真空操作吗?我应该在二进制复制过程开始时制作全局/ pg_control文件的副本吗?我是否应该使用启用快照的文件系统(如使用xfs-freeze)来获得更快的恢复过程? 我看到备份脚本崩溃不会自动启动pg_stop_backup,因此我的备份状态有可能存在很长时间(直到我的nagios某人某处某人修复pg_stop_backup()).因此,如果PostgreSQL在这两个命令之间有任何不同之处,我想知道它,了解它可能产生的影响. 请赐教.
您询问:
pg_start_backup()确保数据文件至少与检查点一样新.恢复时,将应用日志. 如果数据是旧的,日志将更新它.. 如果数据是新的,则日志将具有相同的内容.再写一次没有伤害. 数据永远不会比日志更新,因为日志是提前写入的(WAL). 您询问:
xfs-freeze与pg_start_backup()类似,它不拍快照.您需要一个卷管理器来执行此操作. 您询问:
它受到支持,只是一些小问题.见http://www.postgresql.org/docs/8.1/static/backup-online.html:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |