Postgresql 带引用文件的Postgres复制

Postgresql 带引用文件的Postgres复制,postgresql,replication,Postgresql,Replication,我有一个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, templat

我有一个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');
这很好,缺乏引用完整性不是一个问题。但现在我开始设置标准的流式复制(我遵循“如何使用”标题下的教程)

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


谢谢你的帮助

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

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

如果您有足够的信心,可以使用并创建存储群集(除非您确实知道自己在做什么,并且您有两个以上的节点,否则不建议这样做)

我个人喜欢亚马逊或谷歌共享存储:低风险,无需太多维护,易于理解和使用

rsync -avh source/ dest/ --delete