データベース障害復旧の基礎 「バックアップファイル」「変更履歴」の仕組みを理解する:ゼロからのリレーショナルデータベース入門(9)(1/3 ページ)
本連載は、企業の成長に不可欠な「データ活用」を推進していくために必要なデータ基盤の基礎を“あらためて”解説していきます。今回は、「データベース障害対策」の基礎を解説します。【更新版】
目次
データベースのデータはさまざまな業務で利用されています。データベースに障害が発生すると多くの業務やサービスが止まり、ビジネスに大きな影響を及ぼしてしまいます。しかし、どのようなデータベースシステムであれ、障害が発生する可能性はゼロではありません。このリスクを最小限にとどめるためには、「障害は起こり得る」と想定した対策が必要です。
そこで今回は、データベース障害対策の基礎として、障害の備えと、復旧(リカバリー)の仕組みをおさらいします。
データベース障害の種類
データベースシステムには、以下のような障害が発生する可能性があります。
- サーバ障害によるメモリ上のデータ損失
- ネットワーク障害によるトランザクションの異常終了
- ユーザーの誤操作によるデータ損失
- 自然災害による物理的な破損 など
このように、データベースシステムに発生し得る障害と、その原因や影響範囲は多岐にわたります。本稿では、障害の中でも影響の大きい「データベース構成ファイルが破損した障害」を想定して説明していきます。
データベースファイル障害の復旧対策に必要なデータ
データベースの構成ファイルが破損すると、ファイルに新しくデータを書き込めなくなるだけでなく、格納されていたデータも失われてしまい、大変深刻な被害を受けます。
しかし、「備え」があれば、この障害からデータを復旧することが可能です。障害が発生してからでは遅いため、データベースが正常に稼働しているときに、リカバリーに備えた準備をしておくことが重要です。
正しくリカバリーするには、以下の2つのデータが必要です。
- バックアップファイル
- バックアップファイル取得後の変更履歴
(1)バックアップファイル
バックアップファイルは、「データベースを構成するファイル」のコピーです。
データベースを構成するファイルが破損した場合、破損前の正常なファイル(=バックアップファイル)と置き換えることでリカバリーを行います。このバックアップファイルを、「システムが正常な状態のとき」に取っておくのが基礎中の基礎となる対策です(図1)。
また、バックアップファイルは定期的に取得するようにします。バックアップファイルがあまりにも古いと、後述する変更履歴が多くなり、ファイルを置き換えたあとリカバリー作業に時間がかかってしまうことがあるためです。
(2)バックアップファイル取得後の変更履歴
バックアップファイルは、“過去のある時点”のコピーとなります。そのためにバックアップ以降に変更されたデータは含まれません。
しかし障害が発生したら、「障害発生直前」までリカバリーしたいでしょう。そこで、バックアップ取得から障害までの変更履歴を履歴として記録しておくのです。障害によってデータが失われてしまっても、残っている履歴で変更操作を再実行することによってデータを復旧できます(図2)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQLの基礎 「SELECT」文を覚えよう
- SQLとはどういう言語か
「SQLは何となく苦手」という人は意外と多いものです。すでに何らかのプログラミング言語を習得している人を見ても、SQLを苦手としている人は少なくありません。そこで、実際にSQLを入力して結果を見ながら学習する連載を始めます。用意するのはインターネットにつながったWebブラウザだけ。気軽に始めてみてください。(編集部) - RDBMS製品のビッグ3、それぞれの“癖”をつかもう
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局) - NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部)