[SQL]INF: SQL Server の災害復旧計画

文書翻訳 文書翻訳
文書番号: 169039 - 対象製品
この記事は、以前は次の ID で公開されていました: JP169039
すべて展開する | すべて折りたたむ

目次

概要

この資料では、重大な災害からのデータ復旧をプロアクティブに計画する際に、サイトが考慮に入れると思われる簡単な災害復旧計画の例を 2 つ提供します。1 つめの例は、システムメンテナンスのために利用可能な時間を持っているサイトをターゲットにしており、2 つめの例は、24 時間稼動サイト用に考案されています。

この資料の意図は、災害復旧計画を行うスタート地点を提供することです。この資料は、あなた自身の災害復旧計画ではありません。これは、自分自身の環境を考慮し、それに合わせて修正し、具体化し、確認を行うためのものです。

詳細

火災が発生し、24 時間稼動のデータ センターが消滅したとします。復旧できる確信はありますか ? 復旧してシステムを利用可能にするには、どのくらい時間がかかるでしょうか ? ユーザーが耐えられるデータ損失はどの程度でしょうか ? これらは、非常に貴重なシステム データの保守を担当しているシステム管理者 (SA) やデータベース管理者 (DBA) のだれもが考慮に入れていることでしょう。災害復旧とは、火災などの自然または人的災害や、RAID-5 における two-disk 障害などの技術的災害といった災害が起こったときに、情報システムを復旧させるプロセスのことです。災害復旧計画は、災害に応じて発生するすべての動作の準備に従事する作業です。災害復旧アセスメントは、大災害のシミュレーション、および、災害復旧計画が特定の復旧要件を達成する能力を持っているかどうかの評価を行うものです。

原則として、災害復旧計画では、復旧に要する時間およびユーザーが期待できるデータベースの最終的な状態を明らかにするべきです。たとえば、「特定のハードウェアを入手後、復旧は 48 時間以内に完了し、データは前週末までしか保証されない」といったようにです。業務管理側がこうした詳細をはっきりと知らされることは、通常は重要なことです。災害復旧アセスメントによって、こうした詳細を具体化することができるはずです。

災害復旧計画は多くの異なった方法で構成でき、多くの種類の情報 (ハードウェアをどのように入手するか、だれが何を連絡するか、災害時の連絡先はだれか、どのように連絡するか、だれが計画の管理をしているか、など) が含まれています。この資料では、SQL Server の技術的復旧への最初の道を切り開く方法を提供するだけです。

以下は、24 時間稼動以外のサイト (つまり、有効なメンテナンスの時間が確保されているサイト) の例です。

災害に備えるには次のことを毎日 (またはメンテナンスの時間があるときはいつでも行ってください。
  1. SQL Server をシャット ダウンします。
  2. すべてのデータベース デバイス ファイルを、できれば、別の建物の別のコンピュータにコピーし (ただし、ネットワーク ロードには気をつけてください)、さらに、テープ デバイスにもコピーします (サーバーが停止している時は、デバイス ファイルは、その他のファイルとまったく同じようにコピーできます)。
  3. システム ログを安全な方法で保守します。すべての SQL Server ファイル、特に Master.dat ファイルの置かれているディレクトリを記録します。Windows NT Server と SQL Server の両方にインストールされているすべてのサービス パックの記録をとります。使用されている Net-Library、セキュリティ モード、SA パスワードの記録をとります。
  4. 最小限の機能をすばやく評価するために、ベース ファンクショナリティ スクリプトを保守します (この資料の終わりにある注釈をご覧ください)。
  5. 日中のデータ損失量を最小限にするために、システムが稼働中に、データベースとトランザクション ログをダンプします。ダンプ、ロード、復旧手順に関する詳細は、SQL Server Books Online を参照してください。
  6. 事前に別のサーバーで、以下の災害復旧手順を評価して、必要に応じて手順を修正します。
災害発生後の復旧では、適切な代わりのハードウェアを確保してから次のことを行います。
  1. Windows NT Server をインストールし、適切なサービス パックをインストールします。適切なドメイン機能が存在することを確認します。たとえば、ファイル共有が適切に動作することを確認します。
  2. SQL Server をインストールし、適切なサービス パックをインストールします。マスタ データベース デバイスを、最初のインストール時と同じディレクトリに配置します。さらに、以前と同じ Net-Library、セキュリティ モード、SA パスワードを選択します。
  3. SQL Server が正常に動作していることを確認します。Windows NT Server 名が変更された場合は、sp_dropserver および sp_addserver を使って、Windows NT Server 名に一致させます。
  4. SQL Server を停止します。
  5. Master.dat ファイルを含め、すべてのデータベース デバイス ファイルを、元の場所に戻します。
  6. SQL Server を再起動します。
  7. この後に、データベースまたはトランザクション ログのどれかが利用できる場合は、それをロードします。
  8. システムが利用可能かどうかを確認します。ファンクショナリティ スクリプトを実行して、適切な操作が確実に行われることを確認します。理想では、システムがユーザーに開放される前に、各データベース上で DBCC CHECKDB および NEWALLOC を実行し、かつそれらデータベースと TEXT フィールドを含むテーブル上で DBCC TEXTALL および TEXTALLOC を実行するべきです。これは、移行プロセスにより、ファイルが望ましくない形に変わっていないことを確認するためです。
  9. DBCC ステートメントの実行でデータベースの一貫性が確認でき、かつ、ファンクショナリティ テスト スクリプトが成功したら、ユーザーにシステムの使用を許可します。
以下は、24 時間稼動サイト (つまり、オンライン保守のための時間がなく、1 日 24 時間、週 7 日稼動しているサイト) の例です。

災害に備えるには、次のことを行います。
  1. すべてのデータベースを、できれば別の建物の別のコンピュータ上のディスクに定期的にダンプし (ただし、ネットワーク ロードに気をつけてください)、さらに、テープ デバイスにもダンプします。トランザクション ログも、同様に処理できます。
  2. システム ログを安全な方法で保守します。すべての SQL Server ファイル、特に Master.dat ファイルが置かれているディレクトリを記録します。Windows NT Server と SQL Server の両方にインストールされているすべてのサービス パックを記録します。使用されている Net-Library、セキュリティ モード、SA パスワードを記録します。指定されているデータベース オプションを記録します。
  3. すべてのデバイスおよびデータベースのすべてのサイズ変更をスクリプトとして記録します。これは、この状態で復旧を簡単にするためにきわめて重要です。
  4. 最小限の機能をすばやく評価するために、ベース ファンクショナリティ スクリプトを保守します (この資料の終わりにある注釈をご覧ください)。
  5. 事前に、別のサーバーで以下の災害復旧手順を評価し、必要に応じて手順を修正します。
災害発生後の復旧では、適切なハードウェアを確保してから、次のことを行います。
  1. Windows NT Server をインストールし、適切なサービス パックをインストールします。適切なドメイン機能が存在することを確認します。たとえば、ファイル共有が適切に動作することを確認します。
  2. SQL Server をインストールし、適切なサービス パックをインストールします。マスタ データベース デバイスは必ず以前と同じディレクトリに配置します。さらに、以前と同じ Net-Library、セキュリティ モード、SA パスワードを選択します。
  3. SQL Server が正常に動作していることを確認します。Windows NT Server 名が変更された場合は、sp_dropserver と sp_addserver を実行して Windows NT Server 名に一致させます。
  4. 前節の手順 3 で作成したスクリプトからのすべてのデバイスおよびデータベースを作成します。データベースは、FOR LOAD で作成できます。
  5. すべてのデバイス ファイルおよびデータベースが、最後にダンプした時と同じサイズでの作成が完了した後、ダンプされているマスタ データベースのユーザー ログオン情報またはリモート サーバー ログオン情報が重要である場合は、手順 5a に進みます。そうでなければ、これらが重要でない場合、手順 6 に進みます。

    1. SQL Server を停止します。
    2. コマンド ライン "SQLSERVR -c -m" から SQL Server をシングル ユーザーモードで起動します。
    3. マスタ データベースを、災害が発生する前の最後のダンプからロードします。
    4. 成功したら、SQL Server を通常どおりに停止、再起動します。手順 6 に進みます。
  6. ユーザー データベースを、それぞれ、ダンプされたファイルからロードします。(場合によっては、トランザクション ログ ダンプもロードします。)
  7. SQL Server を停止、再起動します。
  8. システムが利用可能かどうかを確認します。マスタ データベースが手順 5c で再ロードされていない場合は、各データベースに対して、データベース オプションを設定します。ファンクショナリティ スクリプトを実行して、SQL Server の適切な操作が確実に行われるようにします。理想では、システムがユーザーに開放される前に、各データベース上で DBCC CHECKDB および NEWALLOC を、それらのデータベースおよび TEXT フィールドを含むテーブル上で DBCC TEXTALL および TEXTALLOC を、それぞれ実行する時間が提供されるべきです。これは、移行プロセスにより、ファイルが望ましくない形に変わっていないことを確認するためです。
  9. DBCC ステートメントの実行でデータベースの一貫性が確認でき、かつ、ファンクショナリティ テスト スクリプトが成功したら、ユーザーにシステムの使用を許可します。
災害復旧アセスメントは計画の確認であり、十分なハードウェアの確保、文書化された災害復旧ガイドラインの提供、そして、バックアップ SA または DBA (計画の開発に関わっていない人) にこのコンピュータ上のシステムを復旧してもらうことで達成されます。定期的に災害復旧アセスメントを行って、現在の災害復旧計画の有効性を確認してください。

データが貴重なものであれば、災害復旧アセスメントの重要性はいくら強調しても強調しすぎることはありません。データを取り戻すことができない場合のビジネスリスクはどのようなものでしょうか ? システムをバックアップして実行する際に、1 時間毎にどのくらいコストがかかるでしょうか ? 自分のデータがすばやく復旧可能であるということは、「仮定する」のではなく、確認するものです。手順を事前に完全に理解しておけば、将来、大災害が起こった際に課せられるストレスや不安を最小限にとどめることができます。

この資料は、Microsoft SQL Server 6.5 Deployment Guide の 48 ページにある Database Recovery の節を拡張したものとして書かれています。DUMP、LOAD、SQLSERVR、マスタ データベースに関する詳細は、SQL Server Books Online および Microsoft Knowledge Base にあります。

注釈:

'ベース ファンクショナリティ スクリプト (base functionality script)' はデータベースの正常な機能を、特定のアプリケーションの見地からすばやくデモンストレートするために使用できるコードです。最も一般的には、これは、ISQL からサーバーに対して実行される SQL コマンドを含む .sql ファイルです。その他のアプリケーションに関しては、BCP および ISQL の各コマンドを含むことのできる .bat ファイルのほうが適切です。このベース ファンクショナリティ スクリプトは、それぞれのアプリケーションに合わせて、多ような形式を取る可能性があります。たとえば、意思決定/リポーティング システム上では、このスクリプトは、単に、キー リポーティング クエリーのうちの 2、3 個がコピーされたものである場合があります。オンライン トランザクション処理 (OLTP) アプリケーションに関しては、挿入、更新、削除を行うためのストアド プロシージャのバッチの実行である場合があります。目標は、総合的な見地から、すべてが意図した通りに動作していることを確認することです。ベース ファンクショナリティ スクリプトにより、SA または DBA がエンド ユーザーに確認を依頼することなく、データベースが使用可能な状態であることを確認できる便利なツールが提供されます。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 169039 (最終更新日 1999-01-28) をもとに作成したものです。

プロパティ

文書番号: 169039 - 最終更新日: 2004年3月29日 - リビジョン: 6.0
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
キーワード:?
kbinfo KB169039
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com