【原创】PostgreSQL 增量备份详解以及相关示例
PostgreSQL没有类似MySQL的二进制日志,但是有和MySQL类似的REDOLOG,并且有MySQL没有的REDO归档功能。当然REDO的归档已经MariaDB和Percona-MySQL已经实现。那我
PostgreSQL 没有类似MySQL 的二进制日志, 但是有和MySQL 类似的REDO LOG,并且有MySQL 没有的REDO 归档功能。当然REDO 的归档已经MariaDB 和Percona-MySQL 已经实现。
那我们就利用PGSQL的REDO 归档,也叫WAL来实现增量备份。
假设我们已经做了一个物理的全备,并且相应的参数都已经设置完毕,比如以下:
那么关于WAL归档日志要注意的一点是,如果CRASH 掉了,那么没有归档的XLOG也可能没有提交到数据文件,,所以有可能这部分数据会丢失掉。所以在之后恢复的时候我们要把这部分XLOG拷贝到全备的对应目录。
恢复方法:
1. 确保没有任何业务对PG服务进行访问。(有可能这个时候PG已经CRASH掉了。) 2. 先停掉POSTGRESQL 服务。 3. cd /home/pgsql; 4. mv data data_old 6. cp -rfp /home/full_backup/* /home/pgsql (拷贝全备) 7. cp -rfp data_old/pg_xlog/000* data/pg_xlog/ (这里是拷贝自从最后一个增量和系统CRASH之间的XLOG到对应的目录。) 8. cd data 9. vi recovery.conf (添加recovery.conf文件,让PG认为这次是在恢复。) restore_command='test ! -f /home/increment_log/%f && cp /home/increment_log/%f %p' recovery_target_timeline = 'latest' 10. chown -R postgres.postgres recovery.conf 11. 启动postgresql 服务即可。如果正确恢复了,那么recovery.conf 会自动更名为recovery.done.
以我的机器为例,我的版本是9.3,PG_XLOG中看到的BACKUP 信息:
[root@postgresql-instance pg_xlog]# cat 000000010000000000000003.00000028.backup START WAL LOCATION: 0/3000028 (file 000000010000000000000003) STOP WAL LOCATION: 0/30000B8 (file 000000010000000000000003) CHECKPOINT LOCATION: 0/3000028 BACKUP METHOD: pg_start_backup BACKUP FROM: master START TIME: 2014-01-07 03:35:02 EST LABEL: ytt STOP TIME: 2014-01-07 03:36:27 EST日志中会看到恢复如下恢复信息:
LOG: 00000: starting archive recovery LOCATION: StartupXLOG, xlog.c:4983 LOG: 00000: redo starts at 0/3000028 LOCATION: StartupXLOG, xlog.c:5531 LOG: 00000: consistent recovery state reached at 0/303FC88本文出自 “上帝,咱们不见不散!” 博客,请务必保留此出处

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MySQL與PostgreSQL:效能比較與最佳化技巧在開發web應用程式時,資料庫是不可或缺的組成部分。而在選擇資料庫管理系統時,MySQL和PostgreSQL是兩個常見的選擇。他們都是開源的關係型資料庫管理系統(RDBMS),但在效能和最佳化方面有一些不同之處。本文將比較MySQL和PostgreSQL的效能,並提供一些最佳化技巧。性能對比在比較兩個資料庫管

MySQL和PostgreSQL:在Web開發中的最佳實務引言:在現代的Web開發領域中,資料庫是不可或缺的組成部分。在選擇資料庫時,常見的選擇是MySQL和PostgreSQL。本文將介紹在Web開發中使用MySQL和PostgreSQL的最佳實踐,並提供一些程式碼範例。一、適用場景MySQL適用於大多數Web應用程序,特別是那些需要高性能、可擴展性和易於使

學習Go語言中的資料庫函數並實作PostgreSQL資料的增刪改查操作在現代的軟體開發中,資料庫是不可或缺的一部分。 Go語言作為一門強大的程式語言,提供了豐富的資料庫操作函數和工具包,可以輕鬆實現資料庫的增刪改查操作。本文將介紹如何學習Go語言中的資料庫函數,並使用PostgreSQL資料庫進行實際的操作。第一步:安裝資料庫驅動程式在Go語言中,每個資料庫

MySQL與PostgreSQL:資料安全與備份策略引言:在現代社會中,資料成為了企業和個人生活中不可或缺的一部分。對於資料庫管理系統來說,資料安全與備份策略是至關重要的,既能保護資料免受遺失或損壞,也能確保恢復資料的可靠性和完整性。本文將重點放在MySQL和PostgreSQL兩種主流關係型資料庫系統的資料安全性和備份策略。一、資料安全性方面:(一)用戶權

隨著資料庫技術的發展,資料庫管理系統也呈現出多種多樣的選擇,開發人員可以根據自己的需求和喜好選擇最適合自己的資料庫。而PostgreSQL作為一種先進的開源關係型資料庫系統,越來越受到開發人員的關注與使用。那麼,在PHP程式設計中如何使用PostgreSQL資料庫呢?一、安裝和設定PostgreSQL資料庫在使用PostgreSQL之前,需要先安裝並設定它。首先

Go語言是一種快速、有效率的程式語言,適合建立Web服務和後端應用程式。而PostgreSQL是一個開源的關聯式資料庫管理系統,承諾提供更高的可靠性、可擴展性和資料安全性。在本文中,我們將深入探討如何在Go語言中使用PostgreSQL,並提供一些實用的程式碼範例和技巧。安裝和設定PostgreSQL首先,我們需要安裝和設定PostgreSQL。可以在官方網

MySQL和PostgreSQL:如何優化資料庫查詢效能?概述:在開發應用程式時,資料庫查詢效能是一個重要的考慮因素。良好的查詢效能可以提高應用程式的回應速度和使用者體驗。本文將介紹一些最佳化資料庫查詢效能的方法,重點涵蓋MySQL和PostgreSQL兩種常用資料庫。資料庫索引的最佳化:資料庫索引是提高查詢效能的重要因素。索引可以加快資料的查找速度,減少查詢時掃

資料庫容量規劃與擴展:MySQLvs.PostgreSQL引言:隨著網際網路的快速發展和大數據時代的到來,資料庫的容量規劃和擴展變得越來越重要。 MySQL和PostgreSQL是兩個流行的關聯式資料庫管理系統(RDBMS),它們在資料庫容量規劃和擴充方面有著不同的特性和適用場景。本文將對這兩個資料庫進行比較,並給出一些程式碼範例來展示它們的差異。一、MySQ
