假设我有一个比较重要的数据库,但实际上我并不关心每个事务。在你变得暴躁之前--它是一个数据库,存储着zabbix状态数据,所以老实说,当ascii控制代码击中TTY时,我并不关心我是否损失了一两分钟的事务。
如果我想将该数据库复制到另一个主机,我可以执行传统的数据库复制,这实际上是在管道中重放事务日志。这有一些问题(比如我将有很多作者进入主数据库,而从线程只会有一个线程插入副本数据),但是我也会得到一个“只读从线程”来运行我的报告。其他人来镇上会知道发生了什么。两者都很有价值,我完全同意。
但是.如果我想变得聪明呢?出于聪明,我将在打开压缩的ZFS文件系统上运行postgresql数据库。现在,我的数据库正在ZFS上运行,我是否可以将该流放到另一个框中,然后应用它,或者将zfs发送流存档,以便在我决定需要时再进行回放?
在目标机器上“清理不干净的关机并重播事务日志”之后,生成的数据库是否可以使用?假设现在我还想要一个只读奴隶来运行我的报告,我可以重放ZFS,创建快照,并根据快照启动数据库吗?
发布于 2013-04-03 12:22:36
ZFS基于ZFS快照的发送/接收工作。除非您停止使用数据库,否则为ZFS发送提供初始源的快照将是崩溃一致的。
您可以使用ZFS发送/接收将快照发送到另一个主机或ZFS文件系统。我不明白你把发送流归档是什么意思。ZFS发送/接收是原子的,所以我不确定您是否有保存流的能力。
如果您需要ZFS文件系统的只读副本,可以将ZFS快照和无性系快照带到一个新的文件系统挂载点。
此时,您可以根据需要在新挂载上执行操作。
https://serverfault.com/questions/495722
复制相似问题