注意:2027 年 7 月 31 日起,我們將不再支援使用設備管理控制台備份 PostgreSQL 資料庫。如要進一步瞭解這項淘汰作業和替代備份解決方案,請參閱「從舊版資料庫備份遷移」。
PostgreSQL 是強大的開放原始碼物件關聯式資料庫系統,可使用及擴充 SQL 語言,並結合多項功能,安全地儲存及擴充最複雜的資料工作負載。
備份和災難復原服務使用的 PostgreSQL 備份 API
磁碟區層級 (Linux 變更區塊追蹤和 LVM 快照) 備份:使用 Linux 變更區塊追蹤和 LVM 快照執行備份時,備份和災難復原會使用 PostgreSQL
pg_start_backup(label)和pg_stop_backup()指令。完整 + 增量 (檔案式傳統) 備份:備份和災難復原 會使用 PostgreSQL
pg_dump檔案式備份指令。pg_dump指令沒有擷取資料庫增量變更的選項,因此每次備份都是完整的資料庫轉儲備份。還原資料庫時,系統會實際覆寫資料區域,藉此復原資料庫。
PostgreSQL 記錄備份:在記錄備份期間,備份和災難復原會實際複製所有 PostgreSQL WAL (
WriteAheadLog)。如要清除記錄,備份和災難復原會使用 OS 層級指令。
運作方式:使用 Linux CBT 備份和災難復原磁碟區型備份
點陣圖只會追蹤變更的區塊,不會執行寫入時複製或 I/O 密集作業。
以下步驟說明資料備份和復原程序:
備份和災難復原代理程式具備 CBT,可追蹤資料庫資料區域中變更的區塊。
代理會呼叫資料庫 API,凍結或暫停資料庫,以便備份資料。
代理程式會建立資料庫資料區域的 LVM 快照,並合成點陣圖。
代理呼叫資料庫 API,解除凍結資料庫。
代理程式會將異動的區塊複製到備份/復原設備,然後刪除快照並將備份編入目錄。
設備會發出內部快照,並合成時間點虛擬完整備份。
如要進行資料復原,備份和災難復原會立即掛接可重寫的分段磁碟,並將資料庫上線。
在磁碟區層級快照工作中,暫停或取消暫停指令會在主要執行個體上執行:
select pg_start_backup(<label>);
select pg_stop_backup();
針對磁碟區層級快照工作,暫停和取消暫停指令會在待命節點上執行:
如果 PostgreSQL 版本為 10.x 以上:
select pg_wal_replay_pause();
select pg_wal_replay_resume();
如果 PostgreSQL 版本為 9.x:
select pg_xlog_replay_pause();
select pg_xlog_replay_resume();
運作方式:檔案型備份
下列步驟說明如何使用檔案備份執行資料備份和復原:
備份和災難復原代理程式會部署在資料庫伺服器中。
將測試磁碟掛接至資料庫伺服器。
使用 dump backup 指令叫用完整備份,將備份寫入掛接的磁碟。
備份和災難復原服務會建立內部快照。記錄檔備份作業會以類似的方式,直接從檔案系統執行,並按照您設定的任何排程進行。
如要復原資料,備份和災難復原服務會立即將測試磁碟掛接至資料庫伺服器,並啟動資料庫還原作業。資料庫還原後,記錄檔可播放至任何時間點。
後續步驟
PostgreSQL 備份和災難復原的其他說明文件
- PostgreSQL 備份和災難復原
- 為備份和災難復原服務準備資料庫
- 新增 PostgreSQL 資料庫主機並探索資料庫
- 定義政策範本和資源設定檔
- 設定應用程式詳細資料和設定
- 檢查暫存磁碟格式和備份方法
- 保護 PostgreSQL 資料庫和記錄
- 掛接 PostgreSQL 資料庫
- 復原 PostgreSQL 備份
- 建立 PostgreSQL 備份和災難復原工作流程