データベースのレプリケーションについて

データベースのレプリケーションについて調べたので覚書。


現職はECサイトを管理しているので、データのバックアップなどもリアルタイム性が重要になってくる。
定期的なバックアップはもちろん取っているのだが、それに加えてレプリケーションによる冗長化も図りたいとの話があった。

前職でバックアップを取ったりはしていたのだが、レプリケーションなどの仕組みに触れた事がなかったので、そこの勉強からスタート。
ざっくりとだがレプリケーションとバックアップの違いを書いていく。

レプリケーション

2台以上のサーバーのうち、1台をマスター、それ以外をスレイブとして、マスターの変更内容をスレイブにも反映させる仕組み。

  • メリット

ほぼリアルタイムに変更が反映されるので、マスターに障害が発生しとしても、スレイブへ切り替える事ですぐに業務を再開できる。

  • デメリット

リアルタイム反映なので、誤って削除したデータなどもスレイブに反映されてしまう。
サーバーが2つ以上必要。

バックアップ

特定の時点のデータをファイルなどに退避する仕組み。

  • メリット

特定の時点のデータを退避させるので、誤削除などの情報を復帰できる可能性が高い。

  • デメリット

退避したデータを復元させる必要があるので、レプリケーションに比べて業務再開が遅い。
退避処理を行った時点から障害発生までのデータを復元する事が出来ない。