データベースのレプリケーションとバックアップ
- のろ
- 3 日前
- 読了時間: 3分
目次
はじめに
ITとは「情報技術」のことを指します。
IT関連のあらゆるテクノロジーは、情報つまりは”データ”を、より効果的に扱うための手段だと言えます。
それだけに、データはシステムの中心にある最も重要な存在だといっても過言ではありません。そして、そのデータを管理し、活用するための土台となるのがデータベース(DB)です。
この記事は、データベースについて学んだことを、自分なりに整理した備忘録です。同じように勉強している方の参考にもなれば嬉しいです。
レプリケーション
レプリケーションとは、1つのデータベース(プライマリ)に書き込まれたデータを、他のデータベース(レプリカ)にも複製する仕組みを指します。主にBCP対策として用いられますが、リードレプリカによる負荷分散でも活用されます。
また、レプリケーションは最新データを複数箇所に保持することで高可用性を担保することが目的であり、任意の時点にデータを戻すためのバックアップとは役割が異なります。
主なレプリケーションの種類は以下の2つです。

同期レプリケーション
プライマリDBでトランザクションが完了する前に、全てのレプリカにも反映
処理時間はかかるが、障害時にデータをロストしない
非同期レプリケーション
プライマリDBでトランザクション完了後に、追ってレプリカに反映
処理時間はかからないが、障害時にデータロストのリスクが生まれる
バックアップ
バックアップとは、データを定期的にコピーして別の場所に保存しておくことを指します。主な目的は、障害や誤操作などのトラブルが発生した際に、過去の正常な状態へ復元することです。
バックアップの種類には、以下の3つがあります。

フルバックアップ
ある時点の全データをコピーする
最もシンプルでわかりやすい
データ量が多いため、コピーに時間がかかることに加えて、ハードウェアにも負荷がかかる
差分バックアップ
定期的にフルバックアップを取るが、日々のバックアップはログファイルのみコピー
フルバックアップよりデータ量は減るが、復旧時にデータファイルと最新ログファイルの2つが必要
増分バックアップ
基本的な仕組みは差分バックアップと同じだが、日々コピーするログファイルをより限定的にする
3つのバックアップ方法で最もデータ量が少ないが、復旧時にデータファイルと以降全てのログファイルが必要
バックアップ方法は、データ量(バックアップにかかる時間)と復旧の手間を考慮して、適切な方式を選択します。実際に障害が発生した際、バックアップからデータベースを復旧する手順は、以下のステップで行われます。
フルバックアップのデータファイルをDBに戻す(リストア)
差分または増分バックアップを適用して、最新のバックアップ時点まで戻す(リカバリ)
バックアップには含まれていない、DBサーバ上のトランザクションログを適用する(ロールフォワード)
さいごに
今回は『達人に学ぶDB設計徹底指南書』を参考に、データベースのレプリケーションとバックアップについてまとめました。次回はいよいよ制約や正規化のお話ができそうです。ぜひお楽しみに!