ITパスポート 2017年 春期 問78
問題文
DBMSにおいて、あるサーバのデータを他のサーバに複製し、同期をとることで、可用性や性能の向上を図る手法のことを何というか。
選択肢
ア:アーカイブ
イ:ジャーナル
ウ:分散トランザクション
エ:レプリケーション(正解)
🔒 解説は解答すると表示されます
DBMSのデータを別サーバへ複製・同期して可用性や性能を上げる手法【ITパスポート 解説】
正解の理由
問題文は「あるサーバのデータを他のサーバに複製し、同期をとる」とあります。これはデータをコピーして複数の場所に保つことで、障害時の切り替え(フェイルオーバー)や読み取り負荷の分散(スケールアウト)を可能にする仕組みです。この説明に最も当てはまるのがエの「レプリケーション」です。
ポイント:
- レプリケーション(replication:複製・複写)は、DBMS(Database Management System:データベース管理システム)が持つ機能で、データを別のサーバに複製して同期します。
- 複製により可用性(障害時もサービスを継続できること)と読み取り性能の向上が得られます。
解法ステップ
- 問題文のキーワードを探す:「複製」「同期」「可用性」「性能の向上」。
- 各選択肢の意味を簡単に確認する:
- レプリケーション=データ複製・同期 → キーワードに合致。
- アーカイブ=保存・保管(主に長期保存)→ 即時同期の仕組みではない。
- ジャーナル=変更記録(ログ)→ 同期複製そのものではない。
- 分散トランザクション=複数DBにまたがる処理の一貫性確保→ 複製の説明とは違う。
- 最も合致するものを選ぶ → エ レプリケーション。
選択肢別の誤答解説
- ア: アーカイブ
アーカイブはデータを保存・保管することを指します。例えば古い記録を別媒体に移して保存する用途で、リアルタイムに別サーバと同期して可用性を高める目的とは異なります。 - イ: ジャーナル
ジャーナル(journal)は変更履歴やログ(場合によってはWAL: Write-Ahead Loggingという方式)を指します。障害復旧や一貫性確認に使いますが、「別サーバへ複製して同期」という定義とは違います。 - ウ: 分散トランザクション
分散トランザクションは、複数のデータベースやサービスにまたがる処理を一つのまとまり(トランザクション)として扱い、全部成功するか全部失敗するかを保証する仕組みです。データを複製して可用性を上げるレプリケーションとは目的が違います。 - エ: レプリケーション(正解の解説)
レプリケーションはデータを複数のサーバに複製し、同期をとって可用性や読み取り性能を向上させます。主に読み取りの分散、障害時の切替、地理的冗長化に使われます。
よくある誤解
- 「レプリケーション=バックアップ(アーカイブ)だ」
バックアップはデータを保存しておくことで復旧のために使います。レプリケーションは運用中にデータを複製して可用性やスケーラビリティを高める仕組みで、即時性や同期の仕方が異なります。 - 「レプリケーションすれば書き込み性能も必ず向上する」
読み取り(SELECT)性能は向上しますが、書き込み(INSERT/UPDATE)は複製先へ伝播する必要があり、設定次第では遅延が発生したり逆に負荷が増えたりします。書き込みスケールアウトは難しい点を覚えておきましょう。 - 「レプリケーションは常に最新の状態を保証する」
同期方法には同期レプリケーション(書き込み時に複製先の承認を待つ)と非同期レプリケーション(承認を待たずに進める)があり、非同期では遅延(レプリケーションラグ)が生じ、直後は複製先が最新でないことがあります。
補足コラム
- レプリケーションの典型的な構成例
- マスター(主)–スレーブ(従)方式:書き込みをマスターが受け、スレーブは複製を受けて読み取りに使う。設定が簡単で読み取り分散に向く。
- マルチマスター方式:複数ノードで書き込み可能。書き込み分散ができるが衝突処理や整合性管理が複雑。
- 同期(synchronous)と非同期(asynchronous)の違い
- 同期:書き込みが全レプリカに反映されるまで処理を完了しない → 強い整合性、遅延増の可能性。
- 非同期:まず主だけで処理を完了し、後で複製される → 高速だが整合性が一時的に弱い(遅延あり)。
- 実運用での使いどころ
- 高可用性(障害対策):フェイルオーバー先を用意する。
- 読み取り負荷分散:レポートや検索を複製先で処理する。
- 災害対策(地理的冗長化):別地域にデータを複製する。
FAQ
Q1. レプリケーションはバックアップの代わりになりますか?
A1. いいえ。レプリケーションは可用性や読み取り性能向上が目的です。誤操作やデータ破損があれば、そのまま複製されることもあるため、世代管理したバックアップも別途必要です。
A1. いいえ。レプリケーションは可用性や読み取り性能向上が目的です。誤操作やデータ破損があれば、そのまま複製されることもあるため、世代管理したバックアップも別途必要です。
Q2. レプリケーションで書き込み速度は速くなりますか?
A2. 一般に書き込み速度は改善されにくいです。特に同期レプリケーションでは遅くなることがあります。書き込み性能を上げるにはシャーディング(データ分割)など別手法が必要です。
A2. 一般に書き込み速度は改善されにくいです。特に同期レプリケーションでは遅くなることがあります。書き込み性能を上げるにはシャーディング(データ分割)など別手法が必要です。
Q3. レプリケーションが遅れるとどうなる?
A3. 非同期レプリケーションでは遅延(レプリケーションラグ)が発生し、最新データがレプリカに反映されていないことがあります。読み取りで古いデータが返るリスクを管理する必要があります。
A3. 非同期レプリケーションでは遅延(レプリケーションラグ)が発生し、最新データがレプリカに反映されていないことがあります。読み取りで古いデータが返るリスクを管理する必要があります。
Q4. 小規模システムでもレプリケーションは必要ですか?
A4. 必要な場合と不要な場合があります。高可用性や読み取り負荷分散を要求するなら有益です。一方で設定・運用コストもかかるため、要件に応じて判断します。
A4. 必要な場合と不要な場合があります。高可用性や読み取り負荷分散を要求するなら有益です。一方で設定・運用コストもかかるため、要件に応じて判断します。
関連キーワード: DBMS, レプリケーション, 冗長化, フェイルオーバー, 読み取り分散, 同期レプリケーション, 非同期レプリケーション, マスター・スレーブ, マルチマスター, レプリケーションラグ

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

