時間:2024-02-24 17:17作者:下載吧人氣:26
前面我們介紹了通過pgsql的流復制在生產(chǎn)環(huán)境中搭建高可用環(huán)境來保證服務的可持續(xù)性;我們也要對數(shù)據(jù)庫進行周期備份,來防止數(shù)據(jù)的丟失,這就需要連續(xù)歸檔,它不僅可以用于大型數(shù)據(jù)庫的增量備份和恢復,也可以用于搭建standby鏡像備份。
PostgreSQL默認處于非歸檔模式。開啟歸檔模式,主要涉及到三個參數(shù):wal_level,archive_mode和archive_commandwal_level參數(shù)默認為mininal,設置此參數(shù)為archive或者之上的級別都可以打開歸檔。當postgresql需要傳輸歸檔日志時,會調(diào)用archive_command指定的shell命令。
歸檔文件傳輸成功時,shell命令要返回0,此時,postgresql會認為歸檔文件已經(jīng)傳輸成功,因此可以刪除或者重新循環(huán)利用歸檔文件。當shell命令返回非0值時,postgresql會保留所有未成功傳輸?shù)臍w檔日志,并不斷嘗試重新傳輸,直到成功。如果歸檔命令一直不成功,pg_xlog目錄會持續(xù)增長,有耗盡服務器存儲空間的可能,此時postgresql會PANIC關閉,直到釋放存儲空間。
另外將歸檔WAL日志存儲在本機上是風險極高,不被推薦的。postgresql通過archive_command提供了存儲WAL日志的靈活性,可以將歸檔日志存儲到掛裝的NFS目錄,磁帶,刻錄到光盤,也可以將WAL日志通過ssh/scp,rsync傳輸?shù)疆悪C保存。
**注意:**archive_command及restore_command命令將以運行PostgreSQL的系統(tǒng)用戶的身份運行。Centos系統(tǒng)里,這個系統(tǒng)用戶是postges。
Role | IP | 系統(tǒng) | 數(shù)據(jù)庫 |
---|---|---|---|
源庫 | 10.10.10.60 | Centos6.5 | postgresql 9.2 |
備份庫 | 10.10.10.61 | Centos6.5 | postgresql 9.2 |
需求說明:源庫產(chǎn)生歸檔日志,并傳輸?shù)絺浞輲焐系臍w檔目錄/data/pg_archive;備份庫利用歸檔日志,恢復至源庫的任意時間點的數(shù)據(jù)。
注意:基礎環(huán)境我們基于postgresql流復制,但是備份庫作為一個獨立的庫,此時請保證recovery.conf中的standby_mode=off
1.ssh無密碼登錄
由于我們備份和還原過程中所用的archive_command和restore_command命令都以postgres用戶運行,因此我們需要針對postgres用戶實現(xiàn)ssh無密碼登錄。
#源庫
ssh-ketgen -t rsa
scp id_rsa.pub [email protected]:/var/lib/pgsql/.ssh/authorized_keys
#備份庫
ssh-ketgen -t rsa
scp id_rsa.pub [email protected]:/var/lib/pgsql/.ssh/authorized_keys
網(wǎng)友評論