LoginSignup
1
0

More than 1 year has passed since last update.

postgresqlのレプリの方法について調査

Posted at

レプリケーションとは?

Replication と書き、レプリカを作成するの意味で
リアルタイムにデータをコピーする技術のこと。

postgresqlのレプリの種類

以下がデフォルトのconfigで、 synchronous_commit でレプリの種類を決めています。

# cat postgresql.conf | grep -A 1 synchronous_commit
==========
#synchronous_commit = on                # synchronization level;
                                        # off, local, remote_write, remote_apply, or on
==========

コメントアウトの箇所にも書かれている通り、以下5種類あります。

  • remote_apply : 完全同期
  • on : 同期
  • remote_write : 準同期
  • local : 非同期
  • off : 完全非同期

と、その前に 先に出てくる WAL という言葉をお話します。
WAL とは Write Ahead Logging の略で、DBのデータを変更する前に更新内容をログに記録します。
もしDBが壊れてしまっても、WALがあればデータを復旧することが出来ます。
WALに書き込まれてから、DBにデータの変更が行われます
それを踏まえて以下を進みます。

remote_apply : 完全同期

完全同期 で、slaveのWALがpostgresqlに書き込まれるまで保証します。

2021-05-26 remote_apply # postgresqlのレプリの方法について調査 - diagrams.net - Google.png

on : 同期

同期で、 slaveのWALのディスク書き込みまで保証されます。

2021-05-26 on # postgresqlのレプリの方法について調査 - diagrams.net - Google.png

remote_write : 準同期

準同期で、slaveのWALのメモリに書き込まれるまで保証されます。

2021-05-26 remote_write # postgresqlのレプリの方法について調査 - diagrams.net - Google.png

local : 非同期

slaveには転送を保証しません。
ローカルのWALに書き込まれるまで保証します。

2021-05-26 local # postgresqlのレプリの方法について調査 - diagrams.net - Google.png

off : 完全非同期

非同期同様、slaveには転送を保証しません。
ローカルのWALへ書き込みすることすら保証しません。
一番パフォーマンスが良いです。

2021-05-26 off # postgresqlのレプリの方法について調査 - diagrams.net - Google.png

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0