2016-10-04 58 views
0

我通過參考https://opensourcedbms.com/dbms/how-to-do-point-in-time-recovery-with-postgresql-9-2-pitr-3/網站執行一些步驟來執行PITR。pg_basebackup是做什麼的?

我想知道pg_basebackup實際上做了什麼?我想知道,Postgres做了什麼?有時我會注意到000000010000000000000006.000000D0.backup文件是在pg_xlog目錄中創建的。其內容是:

START WAL LOCATION: 0/60000D0 (file 000000010000000000000006) 
STOP WAL LOCATION: 0/60001D8 (file 000000010000000000000006) 
CHECKPOINT LOCATION: 0/6000108 
BACKUP METHOD: pg_start_backup 
BACKUP FROM: master 
START TIME: 2016-10-01 15:10:52 IST 
LABEL: myBaseBackupByPgStartBackup 
STOP TIME: 2016-10-01 15:15:42 IST 

我想知道它的功能以及它內部確實,每當我們執行pg_basebackup

回答

2


TL; DR;
PostgreSQL是一個以標準方式保存信息的數據庫。

pg_basebackup以二進制格式備份數據(數據集羣),以便您可以稍後在需要時恢復數據庫。這與備份單個數據庫的pg_dump相反,pg_basebackup複製整個PostgreSQL數據集羣(所有數據庫/表/字段/行/ ect)。


全部符號


好,Postgres的是」 ......一個對象關係型數據庫管理系統(ORDBMS)與可擴展性和標準一致性的重視。作爲數據庫服務器,它的主要功能是安全地存儲數據,並允許根據其他軟件應用程序的要求進行檢索,它可以處理從小型單機應用程序到具有許多併發用戶的大型面向互聯網的應用程序的工作負載。「 -

https://en.wikipedia.org/wiki/PostgreSQL

而且備份「pg_basebackup用於採取運行PostgreSQL數據庫集羣的基礎備份這些拍攝時不影響其他客戶端的數據庫,都可以使用用於時間點恢復(參見第24.3節)和作爲日誌傳送或流式複製備用服務器的起點(參見第25.2節)

pg_basebackup使數據庫的二進制副本clust er文件,同時確保系統自動進入和退出備份模式。備份總是取自整個數據庫集羣;無法備份單個數據庫或數據庫對象。對於單個數據庫備份,必須使用諸如pg_dump之類的工具。

注意,有在從待機聯機備份一些限制:

  • 備份歷史記錄文件是不是數據庫集羣中創建備份 起來。
  • 無法保證備份所需的所有WAL文件在備份結束時歸檔爲 。如果您打算使用備份 進行歸檔恢復,並且希望確保所有需要的文件 在當時可用,則需要使用-x選項將它們包含到 備份中。
  • 如果在線備份期間將備用服務器升​​級爲主服務器,則備份將失敗。
  • 備份所需的所有WAL記錄必須包含足夠的 全頁寫道,這需要你在 使full_page_writes主人,而不是使用像pg_compresslog一個工具 archive_command刪除整版從WAL文件寫入。 「 」 - 直接從PostgreSQL documentation