2017-08-18 20 views
0

我有一個postgres數據庫,其中包含對文件系統上的文件的引用。這些引用簡單VARCHAR值,所以我知道有沒有保證參照完整性:Postgres複製引用文件

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數據庫內容的最佳方式是什麼?我不想在數據庫中存儲文件。我已經意識到我可以獨立rsync任何文件,但有沒有更好的辦法? postgres是否提供了某種可以觸發文件備份的鉤子?

感謝您的幫助!

回答

0

你說的最簡單的解決方法是使用虛擬rsync(通過cron或鉤子觸發),只要確保你不僅同步現有文件(如果是的話,你會切斷同步刪除文件) 。

rsync -avh source/ dest/ --delete 

你也可以使用一個amazongoogle桶來存儲你的數據(它不會被複制,但是這仍然是一個非常安全的,高可用的解決方案)。

如果您有足夠的信心,您可以使用DRBDCeph來創建存儲集羣(除非您真的知道自己在做什麼,並且擁有兩個以上節點,否則不建議)。

我親自去亞馬遜或谷歌共享存儲:低風險,沒有太多的維護,簡單易懂和使用。