1、指導單位:中國開源云聯盟 TC601大數據技術標準推進委員會劉偉云和恩墨物理備份與恢復邏輯備份與恢復“特殊”的數據恢復備份管理物理備份與恢復物理備份與恢復 pg_basebackup 文件快照 pg_start_backup與pg_stop_backup lvm zfspg_basebackup原生自帶生成standby配置文件recovery.conf備份方式Fetch 備份數據之后備份walStream 數據與wal同時傳輸(不支持標準輸出)備份流程創建復制slot檢查時間線Start replication(內部command)接收并寫入文件文件快照文件快照 Before 9.x pg_
2、start_backup&pg_stop_backup Checkpoint Force page writes 期間WAL(XLOG)Copy on Write LVM快照 ZFS快照物理備份物理備份恢復恢復 Wal重放 pg_control中獲取checkpoint信息(起點)逐個應用redo記錄 新建時間線(時間點恢復)Recovery.conf restore_command 獲取WAL日志 archive_cleanup_command 清理WAL日志 recovery_end_command 恢復完成后執行的命令 recovery_target_timeline 恢復目標時間線邏輯
3、備份與恢復邏輯備份與恢復 Pg_dump與pg_dumpall 并行邏輯導出與事務一致性 pg_restore COPYPostgreSQL邏輯備份邏輯備份 Pg_dump 導出單庫 邏輯備份(SQL集合)導出格式 SQL 可以使用psql命令直接導入 歸檔文件 使用pg_restore選擇性恢復 Pg_dumpall 導出所有database 導出SQLPg_dump并行導出與事務一致性并行導出與事務一致性 并行導出-j jobs 僅支持目錄格式輸出 同步快照(多會話一致性讀)(主庫9.2,從庫10)BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE R
4、EAD;SELECT pg_export_snapshot();SET TRANSACTION SNAPSHOT 000003A1-1;Pg_restore Only for pg_dump 并行導入 選擇性導入-l 列出備份中的對象列表-f 輸出列表到文件 注釋不需要恢復的對象 發起導入簡單易懂的邏輯備份簡單易懂的邏輯備份 COPY CSV格式 COPY from database to CSV COPY from CSV to database 跨數據庫類型遷移PostgreSQL 時間點恢復時間點恢復 WAL備份 archive_command 找點 Wal_dump 物理方式的時間點恢
5、復 Recovery.conf“特殊特殊”的的PostgreSQL數據恢復數據恢復 延遲復制 閃回查詢 數據塊損壞恢復PostgreSQL 延遲復制延遲復制 BIG DATABASE 恢復緊急 recovery_min_apply_delay 操作 SELECT pg_xlog_replay_pause();recovery_target_time=2019-11-12 16:25:00+00(重啟配置)PostgreSQL 閃回查詢閃回查詢 配置 Vacuum延后 vacuum_defer_cleanup_age vacuum_freeze_min_age track_commit_time
6、stamp pg_dirtyread SELECT*FROM pg_dirtyread(foo)as t(bar bigint,baz text);PostgreSQL 數據塊損壞恢復數據塊損壞恢復 zero_damaged_pages 跳過錯誤數據塊 pg_filedump 從數據文件中直接抽取數據從數據文件中直接抽取數據 控制文件控制文件 索引文件索引文件 數據文件數據文件 pg_filedump-D pg_relation_filepath pg_classPostgreSQL 備份管理備份管理 pg_rman 備份執行 備份恢復 備份管理Pg_rman command Init 初始化
7、元數據 Backup 備份數據庫 Restore 恢復數據庫 Show 查看備份歷史記錄 Validate 驗證備份 Delete 刪除備份 Purge 刪除失效備份元數據Pg_rman 備份備份 RUN WITH DATABASE 備份模式 全量備份(基于文件系統)增量備份(基于數據塊LSN變更)備份目標 主庫 從庫PostgreSQL 備份管理備份管理 Barman 單對多 SSH命令 Rsync通道 Pg_basebackup 元數據管理 CRON檢查Barman備份與恢復備份與恢復 備份 全量備份 WAL備份 pg_receivewal/archive_command 恢復 時間點恢復 沙盒恢復 沙盒數據庫中執行Pg_dump