天天看點

PostgreSQL 9.6 攻克金融級多副本可靠性問題

postgresql 9.6 在可靠性方面再出殺手锏。

通過流複制功能增強,提供多種可靠性模式可供使用者根據需求進行選擇,在可靠性和性能方面使用者可以自由發揮。

最強模式滿足金融級的可靠性要求。

如何做到的呢?

pg允許多個同步流複制standby節點,使用者在事務送出時,需要等待多個同步的standby apply xlog,進而保證資料的多副本一緻性。

具體的增強如下

.1. 事務送出保護級别增強如下

支援5個事務送出保護級别,確定事務送出時,xlog的幾種狀态。

synchronous_commit =

on, remote_apply, remote_write, local, off

on 表示本地事務産生的xlog已flush到磁盤,同時sync standby(s)的xlog也已flush到磁盤。

remote_apply, 表示本地事務産生的xlog已flush到磁盤,同時sync standby(s)的xlog已回放。

remote_write, 表示本地事務産生的xlog已flush到磁盤,同時sync standby(s)的xlog 已write到os dirty page。

local, 表示本地事務産生的xlog已flush到磁盤。

off, 表示

.2. 同步流複制保護級别增強

支援設定同步節點數,例如使用者有4個standby,包含主節點共5個副本。

使用者要求3副本一緻,則num_sync設定為2即可,確定至少有2個standby與主節點一緻。

synchronous_standby_names參數配置的兩種寫法:

num_sync為同步standby節點數, 以及standby name.

num_sync ( standby_name [, ...] )

未設定保護的standby節點數, 則預設為1個同步standby.

standby_name [, ...]

<a href="http://www.postgresql.org/docs/9.6/static/runtime-config-replication.html#guc-synchronous-standby-names">http://www.postgresql.org/docs/9.6/static/runtime-config-replication.html#guc-synchronous-standby-names</a>

<a href="http://www.postgresql.org/docs/9.6/static/runtime-config-wal.html#guc-wal-level">http://www.postgresql.org/docs/9.6/static/runtime-config-wal.html#guc-wal-level</a>

繼續閱讀