データベースのバックアップとリカバリの基礎知識【障害原因・バックアップ手法・復旧方法を解説】
データベースは、何らかの理由で破損したり失われたりするリスクを常にはらんでいます。そのため、バックアップを取得しておくことは不可欠です。バックアップがあれば、障害発生前の状態までデータベースを復旧させることができます。
データベースのバックアップとは、データベースの情報やデータの複製を作成し、安全のためにバックアップサーバーへ保存することを指します。データ本体に加えて、トランザクションログも一緒に保存するのが一般的です。トランザクションログがないと、復旧時にデータを正しく再現できず、バックアップが無意味になってしまうためです。
データベースで障害が発生する主な原因
データベースにはさまざまな原因で障害が発生する可能性があり、だからこそバックアップとリカバリ計画が必要になります。代表的な原因は以下の3つです。
- ユーザーエラー: データの消失や破損の原因として最も多いのが、人為的なミスです。誤操作によるデータ削除や誤った更新などが該当します。エラーを解消するには、問題が発生する前の時点までデータベースを復元する必要があります。
- ハードウェア障害: データベースは通常、複数のロケーションに分散した複数のハードディスクに保存されています。これらのディスクが経年劣化や故障によって誤作動すると、データベース全体が破損する恐れがあります。定期的なメンテナンスとディスクの交換が重要です。
- 災害・破壊行為: 洪水や地震などの自然災害のほか、ハッキングなどの意図的なサイバー攻撃も障害原因となります。いずれの場合もデータが破損する可能性が高く、バックアップからの復旧が求められます。
データベースのバックアップ手法
データベースのバックアップには、主に以下の3つの方法があります。
- フルバックアップ: データとトランザクション記録を含むデータベース全体のコピーを作成する方法です。完全なバックアップが得られる一方で、処理に時間がかかり、保存容量も大きくなるというデメリットがあります。
- トランザクションログバックアップ: トランザクションログのみをバックアップ対象とする方法です。バックアップファイルをできるだけ小さく保つため、新しいログのバックアップを作成した時点で、以前のログ情報は削除されます。
- 差分バックアップ: データとトランザクション記録の両方を保存する点はフルバックアップと同じですが、前回のフルバックアップ以降に変更された情報のみを保存します。そのため、ファイルサイズを抑えられ、バックアップ時間も短縮できます。
データベースのリカバリ(復旧)方法
障害が発生したデータベースを復旧する際に、主に使われる方法は次の2つです。
- ログベースのリカバリ: すべてのトランザクションログを安全な領域に保存しておき、システム障害が発生した場合にログを元にデータを復旧する方法です。トランザクションの実行時刻や操作内容などのログ情報は、トランザクションの実行前に必ず保存しておく必要があります。
- シャドウページング: トランザクションが完了した時点で、そのデータが自動的に安全な領域へ保存される仕組みです。トランザクションの途中でシステムがクラッシュしても、未完了の変更はデータベースに反映されないため、データの一貫性が保たれます。
まとめ
データベース障害は、人為的ミスからハードウェア故障、自然災害やサイバー攻撃まで、いつどこで発生するか予測できません。フルバックアップ・トランザクションログ・差分バックアップといった手法を組み合わせて適切なバックアップ体制を整え、ログベースのリカバリやシャドウページングによる復旧手段を準備しておくことで、障害発生時にも迅速かつ確実にデータベースを復旧させることができます。
-
Verticaデータベースのバックアップと復元方法を徹底解説
データ破損や誤操作による削除が発生した場合に備え、確実にデータを復旧できるようにするには、データベースのバックアップを日常的なメンテナンス作業として組み込むことが重要です。本記事では、Vertica®データベースのバックアップとリストア(復元)について詳しく解説します。 はじめに Verticaは、大量のデータを扱うために設計されたカラム型ストレージプラットフォームを採用する分析データベース管理システムです。従来はリソースを大量に消費していたシナリオにおいても、高速なクエリパフォーマンスを実現します。 Verticaには、次のようなメリットがあります。 従来のリレーショナルデータベース管理シ
-
Database-as-a-Service(DBaaS)とは?メリット・デメリットと導入判断のポイントを徹底解説
本記事は、2017年12月7日にObjectRocket.com/blogで公開された記事をもとにしています。業務を社内でまかなうか、外部にアウトソーシングするか――多くの企業が直面するこの判断は、データベース管理において特に悩ましい問題です。本記事では、Database-as-a-Service(DBaaS)の長所と短所を詳しく解説し、貴社にとってDBaaSが適切な選択肢となるかを見極めるためのポイントをご紹介します。特にテック系企業など創業期の会社によくある疑問が、「特定の機能を外注すべきか、それとも社内で行うべきか」という点です。自前でチームを雇うにも、外部企業に依頼するにも費用がかかる