簡體   English   中英

每天從小型SSD自動將Postgresql數據庫備份到多個硬盤

[英]Automating Postgresql database backup from small SSD to multiple harddrives daily

相對於sql和pg來說,這是一個相對較新的話題,因此這是一個有關從流中備份每日數據的相對開放的問題。 如果簡單,可以使用特定的命令/腳本,否則,我很樂意針對更具體的文章/教程,介紹如何實現需要完成的工作。

情況

我每天從某些外部服務器記錄各種數據流,每天的流量為幾GB。 我希望能夠將這些數據存儲到較大的硬盤上,然后將其用於提取信息以供日后分析。

硬件

x1 SSD(128GB)(操作系統+應用程序)

x2 HDD(每個4TB)(存儲,第二個驅動器用於冗余)

需要做什么

當前的計划是讓SSD存儲一個臨時數據庫,其中包含每日記錄的數據。 當服務器負載較低(清晨)時,將整個臨時數據庫轉儲到兩個存儲磁盤中每個磁盤上的兩個單獨的備份實例上。 存儲臨時數據庫的動機是減少硬盤驅動器上的負載。 此外,每日數據足夠小,可以在服務器負載增加之前將其復制到存儲驅動器。

問題

  1. 這是可以接受的方法嗎?
  2. 僅將數據直接推送到其中一個存儲驅動器,考慮使用主數據庫,然后自動將計划的備份從該驅動器自動備份到第二個存儲驅動器,是否更好/更安全?
  3. 為確保數據完整性,需要執行哪些特定命令(即,在進行備份時,仍將記錄新數據)

在預算允許的情況下,稍后將對硬件進行升級,但以上內容已到位。

謝謝!

構建備份系統時的首要規則-做最適合您的事情。

運行pg_dump將確保數據完整性。 需要注意最后備份的內容是什么,以確保您不刪除任何更新的內容。 刪除數據后,如果您負擔得起日志記錄,您可能希望對各種表運行CLUSTER或VACUUM FULL。

另一種選擇是擁有一個空的模板數據庫並執行以下操作:

  1. 暫停應用程序+斷開連接
  2. 將數據庫從“ current_db”重命名為“ old_db”
  3. 創建數據庫current_db模板my_template_db
  4. 復制您需要的任何其他位(序列號等)
  5. 重新連接應用程序
  6. 轉儲old_db +將備份復制到其他磁盤。

如果您真正想要的是兩個單獨的實時數據庫,那么一個小的快速數據庫和一個更大的長期數據庫用於長期運行的查詢,然后研究表空間。 創建兩個表空間-大磁盤上的默認表空間和SSD上的“小”表空間。 將您的小型數據庫放在SSD上。 然后,您可以使用外部數據包裝器(FDW)或轉儲/還原等從一個表復制到另一個表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM