Visual Studio Team Foundation Server が依存するデータベースのバックアップを定期的に実行するようにスケジュールすることで、配置のデータが失われないように保護できます。 障害が発生した場合に、Team Foundation の配置全体を復元するには、まず Team Foundation Server のすべてのデータベースをバックアップする必要があります。 配置に SharePoint 製品または SQL Server Reporting Services が含まれている場合は、これらのコンポーネント内で Team Foundation Server が使用しているデータベースもバックアップする必要があります。 同期またはデータの不一致エラーを防ぐため、すべてのバックアップのタイム スタンプは同じになるようにしてください。 同期するための最も簡単な方法は、マークされたトランザクションを使用する方法です。 すべての Team Foundation データベースの関連トランザクションに定期的にマークを付けることにより、これらのデータベースに共通する一連の復旧ポイントが作成されます。
データベースのバックアップ
Team Foundation の配置を保護する重要な処理として、Team Foundation Server が使用するデータベースのバックアップを作成できます。 次の表とその関連図では、バックアップが必要なデータベースを示し、これらのデータベースが配置内で物理的にどのように分散しているかを例示します。
データベースの種類 |
[製品] |
オプションのコンポーネントかどうか |
---|---|---|
構成データベース |
Team Foundation Server |
X |
ウェアハウス データベース |
Team Foundation Server |
X |
チーム プロジェクト コレクションのデータベース |
Team Foundation Server |
X |
SharePoint 製品のデータベース |
SharePoint 製品 |
○ |
レポート データベース |
SQL Server Reporting Services |
○ |
分析データベース |
SQL Server Analysis Services |
○ |
配置トポロジ
配置の構成によっては、この例のトポロジのように、バックアップが必要なすべてのデータベースが同じ物理サーバー上にある場合があります。 この例では SharePoint 製品も Reporting Services も含まれていないため、レポート、分析、またはSharePoint 製品関連のデータベースをバックアップする必要はありません。
または、データベースが多数のサーバーやサーバー ファームに分散されている場合もあります。 このトポロジの例では、6 つのサーバーまたはサーバー ファームにある次のデータベースをバックアップする必要があります。
構成データベース
ウェアハウス データベース
SQL Server クラスター上にあるチーム プロジェクト コレクションのデータベース
SQL Server を実行するスタンドアロン サーバー上にあるコレクション データベース
両方の SharePoint Web アプリケーション用の SharePoint 製品管理データベースおよびサイト コレクション データベース
Reporting Services を実行するサーバー上のデータベース
Analysis Services を実行するサーバー上のデータベース
どちらの例でも、サーバーに接続するクライアントをバックアップする必要はありません。 ただし、クライアント コンピューターの Team Foundation Server のキャッシュを手動でクリアしないと、復元された配置に接続できない可能性があります。
バックアップ対象のデータベース
配置リソースに応じて、バックアップが必要になる項目についての詳細を次に示します。
ヒント
次に挙げるデータベースはすべて SQL Server データベースです。 SQL Server Management Studio を使用して個々のデータベースをいつでもバックアップできますが、このような個別のバックアップは可能であれば実行しないでください。個別のバックアップから復元を行った場合、予期しない結果になる可能性があります。これは、Team Foundation Server が使用するデータベースは、すべて関連しているからです。 1 つのデータベースしかバックアップしなかった場合、そのデータベースのデータは、他のデータベースのデータと同期がとられていない状態になります。
Team Foundation Server のデータベース Team Foundation Server の論理データ層には、構成データベース、ウェアハウス データベース、配置内のチーム プロジェクト コレクションのデータベースなど、いくつかの SQL Server データベースが含まれます。 これらのデータベースは、すべて同じサーバー上にあることも、同じ SQL Server 配置内の複数のインスタンスに分散していることも、複数のサーバーに分散していることもあります。 どのように物理的に分散していても、すべてのデータベースのバックアップは同じタイム スタンプになるようにし、データが失われることがないようにしてください。 データベースのバックアップは手動で実行することも、特定の時間や特定の間隔で実行するメンテナンス プランを使用して自動的に実行することもできます。
ヒント
Team Foundation Server のデータベースのリストは静的ではありません。 コレクションを作成するたびに新しいデータベースが作成されます。 コレクションを作成する場合、SQL Server に Team Foundation Server データベースをバックアップするためのメンテナンス プランにコレクションのデータベースを追加してください。
SharePoint 製品のデータベース 配置で SharePoint 製品を使用してチーム プロジェクト ポータルをホストしている場合は、いくつかのデータベースをバックアップする必要があります。 これらのデータベースには、配置で使用している各 SharePoint Web アプリケーションの管理データベースや、チーム プロジェクト ポータルをホストするサイト コレクション データベースが含まれます。配置内のチーム プロジェクト コレクションごとに個別のサイト コレクションを使用するように、配置が構成されていることが望ましいです。 Team Foundation Server でチーム プロジェクト コレクションを 1 ユニットにまとめてバックアップおよび復元できるように、サイト コレクションも SharePoint 製品でバックアップおよび復元できます。 配置内の 1 つ以上のコレクションが、ルート サイトにサイト コレクションではなく、サイトまたはサブサイトを使用している場合、コレクションを完全にバックアップおよび復元できない可能性があります。 詳細については、「チーム プロジェクト コレクションを使用したサーバーの整理」を参照してください。
注意
チーム プロジェクト ポータル ページのデータベースと Web サイトの両方のバックアップが必要ではないかと思われるかもしれません。 しかし、SharePoint 製品 では、データベースから Web サイトが動的に生成されます。 つまり、データベースをバックアップすると、Web サイトとして表示されるチーム プロジェクトのセクションもバックアップされます。 SharePoint 製品 で、Team Foundation の外部にカスタム サイト コレクション、サイト テンプレート、または Web パーツを作成した場合は、それらを個別にバックアップする必要があります。 詳細については、Microsoft Web サイトの「データの保護と復元に関する推奨事項 (Windows SharePoint Services)」を参照してください。
Reporting Services と Analysis Services のデータベース 配置で SQL Server Reporting Services または SQL Server Analysis Services を使用して Team Foundation Server のレポートを生成している場合は、レポート データベースと分析データベースもバックアップする必要があります。 ただし、この場合でも、復元後に特定のデータベースを生成し直す必要があります。
レポート サーバーの暗号化キー レポート サーバーには、バックアップが必要な暗号化キーがあります。 このキーは、レポート サーバーのデータベースに格納されている機密情報を保護するためのものです。 このキーは、Reporting Services 構成ツールまたはコマンド ライン ツールを使用して手動でバックアップできます。 詳細については、「Reporting Services の暗号化キーのバックアップ」を参照してください。
バックアップの事前準備
Team Foundation を配置するときに、作成するアカウント、すべてのコンピューター名、パスワード、および指定したセットアップ オプションを記録して保管します。 また、回復資料、ドキュメント、データベース、トランザクション ログのバックアップのすべてのコピーは、必ず安全な場所に保管してください。 火災や地震などの災害に対する保護手段として、サーバー バックアップの複製を、サーバーが設置されている場所とは異なる場所に保管します。 これにより、重要なデータの消失を防止できます。 ベスト プラクティスとしては、バックアップ メディアのコピーを 3 つ作成し、少なくとも 1 つのコピーを管理された別の環境に保管します。
重要
定期的に試験データの復元を実行し、ファイルが正常にバックアップされていることを検証します。 復元の試験を行うと、ソフトウェアの検査では見つからないハードウェアの問題を見つけることができます。
データベースのバックアップと復元を行う場合は、メディア (テープやディスクなど) にデータをバックアップする必要があります。 バックアップ計画には、次のようなメディア管理の準備を含める必要があります。
バックアップ セットの保存とリサイクルに対するトラッキング計画と管理計画。
バックアップ メディアの上書きに対するスケジュール。
マルチサーバー環境では、集中バックアップと分散バックアップのいずれを採用するかの決定。
メディアの耐用年数のトラッキング方法。
バックアップ セットまたはバックアップ メディア (テープなど) の消失による影響を最小限に抑える手順。
バックアップ セットを内部と外部のいずれで保管するかの決定、およびその決定が復元時間与える影響の分析。
Team Foundation のデータは SQL Server データベースに格納されているため、Team Foundation のクライアントがインストールされているコンピューターをバックアップする必要はありません。 メディア エラーまたはこれらのコンピューターが関係する障害が発生した場合、クライアント ソフトウェアを再インストールして、サーバーに再接続できます。 クライアント ソフトウェアを再インストールすることで、バックアップからクライアント コンピューターを復元するよりも、より明快で信頼性の高いシステムが得られます。
SQL Server のメンテナンス プランを使用して Team Foundation の配置に関連するデータベースをバックアップすることにより、サーバーをバックアップできます。 Team Foundation Server のデータベースは相互に関連して動作するため、同時にバックアップし、同時に復元する必要があります。 データベースのバックアップのストラテジの詳細については、Microsoft Web サイトの「SQL Server のバックアップと復元のストラテジの概要」を参照してください。
バックアップの種類
完全なデータ バックアップ (データベース) 配置を復元できるようにするには、完全なデータベース バックアップが必要です。 完全なバックアップには、完全なバックアップを復元できるようにするために、トランザクション ログの部分が含まれます。 完全なバックアップは、バックアップが完了した時点で存在していたデータベース全体に相当するデータを含んでおり、単体で使用できます。 詳細については、Microsoft Web サイトの「データベースの完全バックアップ」を参照してください。
差分データ バックアップ (データベース) 差分データベース バックアップでは、前回の完全データベース バックアップ (差分ベースと呼ばれます) 以降に変更されたデータのみが記録されます。 差分データベース バックアップは、完全データベース バックアップよりも、サイズが小さく、高速に実行できます。 このオプションを使用すると、処理は複雑になりますが、バックアップにかかる時間を短縮できます。 サイズの大きいデータベースには、データベース バックアップよりも差分バックアップの実行間隔を短くすることで、作業内容が失われる可能性を削減できます。 詳細については、Microsoft Web サイトの「データベースの差分バックアップ」を参照してください。
また、トランザクション ログも定期的にバックアップしてください 完全データベース バックアップ モデルを使用して、データを回復するときに、これらのバックアップが必要です。 トランザクション ログをバックアップすると、障害が発生した時点またはその他の特定の時点の状態にデータベースを復元できます。
トランザクション ログのバックアップ トランザクション ログは、実行されたそれぞれの変更のトランザクションに加え、データベースで発生したすべての変更を逐次的に記録したデータです。 トランザクション ログには、各トランザクションの開始およびデータに対する変更が記録されるほか、必要に応じて、各トランザクションの間に行われた変更を元に戻すのに必要な情報も記録されます。 データベースでログに記録する操作が発生するごとに、ログの容量が継続的に増加します。
トランザクション ログをバックアップすることで、データベースを以前の時点の状態に復元できます。 たとえば、不用なデータが入力される前や障害が発生した時点の状態にデータベースを復元できます。 データベースのバックアップの他に、トランザクション ログのバックアップを復元計画に加える必要があります。 詳細については、Microsoft Web サイトの「トランザクション ログのバックアップ」を参照してください。
通常、トランザクション ログのバックアップでは、完全なバックアップより少量のリソースが使用されます。 したがって、トランザクション ログのバックアップを完全なバックアップより頻繁に作成し、データが失われるリスクを軽減できます。 ただし、トランザクション ログのバックアップが完全なバックアップより大きくなる場合があります。 たとえば、データベースでのトランザクション発生率が高く、トランザクション ログが急速に増大するとします。 この状況では、トランザクション ログのバックアップをより頻繁に作成してください。 詳細については、Microsoft Web サイトの「満杯になったトランザクション ログのトラブルシューティング (エラー 9002)」を参照してください。
トランザクション ログのバックアップには、次の 3 種類があります。
ピュア ログ バックアップには、一括変更のない、間隔を置いたトランザクション ログ レコードのみが格納されます。
一括ログのバックアップには、一括操作によって変更されたログとデータ ページが格納されます。 時間を指定した復元はできません。
ログ末尾のバックアップは、損傷を受けた可能性のあるデータベースから取得され、バックアップされていないログ レコードを取り込みます。 ログ末尾のバックアップは、作業の無駄が発生するのを防ぐために、障害が発生した後で取得され、これにはピュア ログ データまたは一括ログのデータを格納できます。
データの同期が Team Foundation Server を正常に復元するために重要な要素の場合、マークされたトランザクションをバックアップ方法の一部として使用する必要があります。 詳細については、「Team Foundation Server のバックアップ」を参照してください。
サービスのバックアップ (アプリケーション層)
論理アプリケーション層で実行する必要があるバックアップは、Reporting Services の暗号化キーのバックアップだけです。 チーム プロジェクト ポータルとして使用される Web サイトのバックアップが必要であるようにも思われます。 SharePoint 製品を Team Foundation Server の配置の一部として統合している場合は、ポータルは Team Foundation Server および SharePoint 製品のデータベースのバックアップの一環としてバックアップされます。 ただし、統合された Web アプリケーションを使用して作成されていない Web サイトを指定した場合、これらのサイトは手動でバックアップおよび復元する必要があります。 また、SharePoint 製品またはサービスをカスタマイズしている場合、それらについてもバックアップするか記録して、新しいサーバーでも再現できるようにしてください。
アプリケーション層はデータ層よりもバックアップは簡単ですが、アプリケーション層を復元するときはより多くの手順を実行する必要があります。 Team Foundation 用に別のアプリケーション層をインストールして、新しいアプリケーション層を使用するようにチーム プロジェクト コレクションをリダイレクトし、さらにチーム プロジェクトのポータル サイトをリダイレクトする必要があります。