Microsoft SQL Serverのバックアップとリストア手法


MSSQLは、マイクロソフトが開発したWindowsプラットフォーム上で、最も一般的なリレーショナルデータベース管理システムです。このデータベースソフトウェア製品の主な機能は、他のソフトウェアアプリケーションによって要求されたデータを格納および検索することです。このブログでは、AWSでホストされているMSSQLを見て、Microsoftが提供するバックアップとリストアのプロセスに固有の3つのオプションを示します。このブログでは、MSSQL 2008 R2 Standard Editionを使用しました。ただし、MSSQLによって提供される同じバックアップおよびリストアメカニズムは、他のMSSQLバージョンにほとんど適用可能です。

MSSQLのビルトインバックアップおよびリストアプロセス

理想的な世界では、ハードドライブやその他のハードウェアは決して故障しません。ソフトウェアに欠陥はなく、ユーザーは間違いを犯さず、ハッカーは決して成功しません。しかし、私たちは完璧ではない世界に住んでおり、有害なイベントの処理を計画し準備する必要があります。

データベース環境では、その計画をデータリストア計画(DRP)と呼びます。DRPは、データベース管理者(DBA)がデータベース環境の可用性に影響を与える可能性がある有害なイベントを処理するために取る一連のアクションです。

バックアップとリストアの実行を検討する理由

バックアップおよびリストア操作を実行する主な理由は3つあります:

  1. 損失データのリストア:これは、バックアップ/リストア計画の最も明白な目的です。 イベントの場合、失われたデータをリストアすることができます。
  2. データの損失を最小限に抑制(RPOの目標を向上させるための目標を向上):計画では、失われたデータの量を最小限に抑える必要があります。たとえば、データベースを一日おきにバックアップすると、システムで最大24時間のデータが失われる可能性があります。一日中常に追加のバックアップを実行すると、潜在的な損失を減らすことができます。
  3. ダウンタイムの影響を最小限に抑制(目標時間の短縮 – RTO):考慮すべきもう一つの要素は、システムのリストアがいかに難しく時間がかかり、潜在的なダウンタイムのコストを削減するかです。場合によっては、フルバックアップと多数のトランザクションログを使用してデータベースをリストアすることもできます。1つの差分ログと少ないトランザクションログバックアップで1つの完全なデータバックアップをリストアするよりも、そのデータベースのダウンタイムコストが高くなる可能性があります。

以下のセクションでは、MSSQLのフルバックアップオプションと差分バックアップオプションについて説明します。

バックアップの種類

SQL Serverには、3種類の基本バックアップが用意されています:フルバックアップ、差分バックアップ、ログバックアップ

  1. フルバックアップ

フルデータバックアップには、特定のデータベース内のすべてのデータ、一連のファイルグループまたはファイル、およびすべてのデータをリストアできるログファイルがすべて含まれています。
フルデータベースバックアップは、トランザクションログの一部とともにデータベース全体をバックアップします。トランザクションログには、バックアッププロセス中に発生したすべてのオープントランザクションとトランザクションが含まれているため、データベース全体のバックアップをリストアした後で、フルデータベースをリカバリできます。フルデータベースバックアップは、バックアップが完了した時点のデータベースを表します。これにより、リストアプロセスでトランザクションの整合性を実現できます。

以下は、フルデータベースバックアップコマンドの例です:

BACKUP DATABASE efy

TO DISK = N’C:\Backup\efy.bak’

  1. 差分バックアップ

差分バックアップは、フルバックアップの実行に要する時間を短縮するように設計されています。差分バックアップは、データベース全体をコピーするのではなく、前回のフルバックアップ以降に変更されたデータのみをコピーします。フルバックアップと同様、差分バックアップは、バックアップがリストアされたときにトランザクションの整合性を維持するために、トランザクションログの一部をコピーします。

以下は、差分バックアップコマンドのコマンドの構文例です:

BACKUP DATABASE efy

TO DISK = N’C:\Backup\efy.bak’

WITH DIFFERENTIAL

  1. ログバックアップ

実際にデータベースページをコピーしない唯一のタイプのバックアップは、ログバックアップです。ログバックアップは、データベースのトランザクションログをコピーします。ログをコピーした後、バックアップはアクティブなトランザクションやトランザクションレプリケーションでは不要なログの部分を切り捨てます。

ログをバックアップする構文例を次に示します:

BACKUP LOG efy

TO DISK = N’C:\Backup\efy.bak’

メンテナンスプランを使用した日次データベースバックアップのスケジュール設定

日次データベースバックアップのスケジュール設定手順:

  1. スタートメニューから、Microsoft SQL Server 2008フォルダに移動します。
  2. SQLサーバー管理スタジオで、SQLサーバーマネージャーを開きます。
  3. Managementの下で、Maintenance Plansを右クリックし、New Maintenance Planを選択します。
  4. Back Up Database Taskダイアログボックス(下記参照)で、バックアップの種類とバックアップするデータベースの種類と、バックアップファイルを保存する場所のパスを指定します。
  5. カレンダーボタンをクリックしてタスクをスケジュールし、タスクを保存します。

上記の手順では、データベース自動バックアップのスケジュールを作成しました。

(注)この記事はあくまでも参考としての投稿で、それを保証するものではありません。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください