【问题标题】:Postgres replication with referenced files带有引用文件的 Postgres 复制
【发布时间】:2017-08-18 17:12:20
【问题描述】:

我有一个 postgres 数据库,其中包含对文件系统上文件的引用。这些引用是简单的 VARCHAR 值,所以我知道不保证引用完整性:

CREATE TABLE user (
    username VARCHAR(50) PRIMARY KEY,
    age INTEGER,
    template VARCHAR(100) -- Filepath of a file on disk
);

INSERT INTO
    user   (username,   age,   template)
    VALUES ('bob',      32,    '/templates/cool-template.html');

这很好,缺乏参照完整性不是问题。 但是现在我去设置标准流复制(我按照“如何使用”标题下this page 上的教程进行操作)。

复制任何文件系统文件(例如“cool-template.html”)以及 postgres db 内容的最佳方式是什么?我不想将文件存储在数据库中。我已经知道我可以独立rsync 任何文件,但是有更好的方法吗? postgres 是否提供某种可以触发文件备份的钩子?

感谢您的帮助!

【问题讨论】:

    标签: postgresql replication


    【解决方案1】:

    您所说的最简单的解决方案是使用虚拟 rsync(通过 cron 或钩子触发),只需确保您不仅同步现有文件(如果是这样,您将同步删除文件)。

    rsync -avh source/ dest/ --delete
    

    您还可以使用amazongoogle 存储桶来存储您的数据(它不会被复制,但这仍然是一个非常安全且高度可用的解决方案)。

    如果你有足够的信心,你可以使用DRBDCeph 来创建一个存储集群(除非你真的知道你在做什么并且你有两个以上的节点,否则不建议这样做)。

    我个人会选择亚马逊或谷歌共享存储:风险低、维护量小、易于理解和使用。

    【讨论】:

      猜你喜欢
      • 2012-04-05
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 2021-11-09
      相关资源
      最近更新 更多