PostgreSQL Replication之第四章 設定非同步複製(6)

來源:互聯網
上載者:User

標籤:

4.6 有效清理和恢複結束

最近幾年, recovery.conf 已經變得越來越強大了。早在初期(在 PostgreSQL 9.0之前), 僅有 restore_command 和一些 recovery_target_time 相關設定。更多的現代 PostgreSQL 版本提供了更多的東西,讓您有機會以一個很好和專業的方式控制您的重放進程。

在本節中,您將學習有什麼樣的設定,您將怎樣輕鬆地使用這些功能。

4.6.1 取得重啟點的控制權

到現在為止,我們已經無限地歸檔了XLOG。就像在現實生活中,無限是一個引起麻煩的概念。正如John Maynard Keynes已經在他著名的書中所陳述,The General Theory of Employment, Interest, and Money:

"In the long run, we are all dead."

適用於Keynes的激勵的東西對於XLOG歸檔同樣是如此;您根本無法繼續做下去。在有些時候,XLOG必須被扔掉。為了使清理更容易,您可以放一個archive_cleanup_command到recovery.conf中。就像大多數其他命令,(例如,restore_command),則是以通用的shell指令碼。您會把該指令碼放在這裡,該指令碼將在每個重啟點被執行。那麼,什麼是重起點?每次PostgreSQL從基於檔案重放轉換到基於流的重放,您就正在面對一個重起點。事實上,再次啟動流複製被認為是一個啟動點。

重起點一到達,您就可以讓PostgreSQL執行一些清理程式(或任何其他東西)。清理掉舊的XLOG或觸發一些通知是很容易的。

如下指令碼顯示了您如何清理掉任何一天前的XLOG:

#!/bin/sh

find /archive -mtime +1 -exec rm -f {} \;

請記住,您的指令碼可以是任何複雜的類型。您必須決定一個適當的策略來處理XLOG。每個企業的情況是不同的,您可以靈活地控制您的歸檔和複製行為。

4.6.2 調整您的恢複結束

recovery_end_command提供和archive_cleanup_command類似的目的。當您的恢複(或XLOG流)已經完成,它會觸發一些指令碼執行。

同樣,您可以用它來清理掉舊XLOG,發出通知,或執行任何其他想執行的操作。

PostgreSQL Replication之第四章 設定非同步複製(6)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.