データベースのレプリケーションについて調べたので覚書。
現職はECサイトを管理しているので、データのバックアップなどもリアルタイム性が重要になってくる。
定期的なバックアップはもちろん取っているのだが、それに加えてレプリケーションによる冗長化も図りたいとの話があった。
前職でバックアップを取ったりはしていたのだが、レプリケーションなどの仕組みに触れた事がなかったので、そこの勉強からスタート。
ざっくりとだがレプリケーションとバックアップの違いを書いていく。
レプリケーション
2台以上のサーバーのうち、1台をマスター、それ以外をスレイブとして、マスターの変更内容をスレイブにも反映させる仕組み。
- メリット
ほぼリアルタイムに変更が反映されるので、マスターに障害が発生しとしても、スレイブへ切り替える事ですぐに業務を再開できる。
- デメリット
リアルタイム反映なので、誤って削除したデータなどもスレイブに反映されてしまう。
サーバーが2つ以上必要。
バックアップ
特定の時点のデータをファイルなどに退避する仕組み。
- メリット
特定の時点のデータを退避させるので、誤削除などの情報を復帰できる可能性が高い。
- デメリット
退避したデータを復元させる必要があるので、レプリケーションに比べて業務再開が遅い。
退避処理を行った時点から障害発生までのデータを復元する事が出来ない。