同じ場所へのデータの復元
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
バックアップから、そのデータのバックアップ元の Azure DevOps のSQL Serverの同じサーバーとインスタンスにデータを復元できます。 たとえば、破損した一連のデータベースを最新の正常な状態に復元できます。
注意
Azure DevOps Serverのために同じサーバー上のデータを復元する方法の概要については、バックアップと復元の概念に関するページを参照してください。
SharePoint と Azure DevOps Server の統合は、TFS 2017 以降のバージョンでは非推奨です。
前提条件
この手順を実行するには、次のグループのメンバーであるか、次のアクセス許可が付与されている必要があります。
- Azure DevOps の管理コンソールを実行しているサーバー上の Administrators セキュリティ グループのメンバー。
- SQL Server システム管理者セキュリティ グループのメンバー、またはデータベースをホストするSQL Serverのインスタンスで、SQL Serverの [バックアップとメンテナンス プランの作成] アクセス許可を [許可] に設定する必要があります。
- Azure DevOps のデータベース インスタンスとウェアハウス データベースの Analysis Services インスタンスの sysadmin セキュリティ グループのメンバー。
- TFS_Warehouse データベースの承認ユーザー。
- TFSEXECROLE データベース ロールのメンバー。
- 展開で SharePoint 製品を使用する場合、SharePoint 製品データベースの復元先ファームのファーム 管理者 グループのメンバー。
詳細については、「ユーザー アカウント制御」を参照してください。
手順 1: サービスを停止する
サービスを停止すると、特にデータベースの名前を変更した場合に、復元プロセス中のデータの損失や破損を回避できます。
Azure DevOps のアプリケーション層サービスを実行しているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Tools に変更します。
次のコマンドを入力します。
TFSServiceControl quiesce
詳細については、「 TFSServiceControl コマンド」を参照してください。
手順 2: データベースの名前を変更する
復元ウィザードを使用してAzure DevOps Serverデータベースを復元するには、まずデータベースをオフラインにしてから、名前を変更する必要があります。
データベースの停止
SQL Server Management Studio を開きます。
注意
データベースを復元する方法の詳細については、「SQL Server データベースの復元シナリオを実装する」を参照してください。
[サーバーへの接続] ダイアログ ボックスが開きます。
[ サーバーの種類] で、[ データベース エンジン] を選択します。
[ サーバー名] で、データ層サーバーとデータベース インスタンスの名前を入力または選択し、[ 接続] を選択します。
注意
SQL Serverがクラスターにインストールされている場合、サーバー名はクラスターの名前であり、コンピューター名ではありません。
SQL Server Management Studio が開きます。
[ データベース ] ノードを展開して、Azure DevOps のデータ層を構成するデータベースの一覧を表示します。
SQL Serverのバージョンのガイダンスに従って、復元する各データベースの名前を変更してから停止します。 復元されたバージョンに置き換えるデータベースの古いバージョンであることを示す名前をデータベースに付けます。 たとえば、TFS_DefaultCollectionの名前を TFS_DefaultCollection_Old に変更できます。
手順 3: Azure DevOps データベースを復元する
Azure DevOps Serverの管理コンソールで復元ウィザードを使用して、Azure DevOps Serverのデータを復元できます。 復元ウィザードでは、レポートに使用される暗号化キーも復元されます。
データベースを復元する
Azure DevOps Serverの管理コンソールを開き、[スケジュールされたバックアップ] に移動して、データベースの復元ウィザードを開始します。
バックアップ セットへのパスを指定し、復元に使用するセットを選択します。
ウィザードを完了し、データベースを復元します。
手順 4: すべてのサービス アカウントを更新する
Azure DevOps Server (TFSService) とデータ ソース アカウント (TFSReports) のサービス アカウントを更新する必要があります。 これらのアカウントが変更されていない場合でも、アカウントの ID と形式が確実に適した ID と形式になるように、情報を更新する必要があります。
サービス アカウントを更新する
SQL Server Reporting Servicesを実行しているサーバーで、[コンピューターの管理] を開き、次のコンポーネントがまだ起動していない場合は起動します。
- ReportServer または ReportServer$InstanceName (アプリケーション プール)
- SQL Server Reporting Services (TFSINSTANCE)
アプリケーション層サーバーでコマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Tools に変更します。
コマンド プロンプトで、次のコマンドを入力して Azure DevOps のサービス アカウントを追加します。 DatabaseName は構成データベースの名前です (既定ではTFS_Configuration)。
TfsConfig アカウント /add /AccountType:ApplicationTier /account:AccountName
詳細については、「 Accounts コマンド」を参照してください。
[ アカウント ] コマンドを使用して、レポート サーバーのデータ ソース アカウントと Azure DevOps プロキシ サーバーのプロキシ アカウントを追加します (デプロイでこれらのリソースが使用されている場合)。
手順 5: データ ウェアハウスを再構築する
TFS_Warehouse データベースと TFS_Analysis データベースを復元するのではなく、データ ウェアハウスをリビルドできます。 デプロイに大量のデータが含まれている場合は、ウェアハウスの再構築にかなりの時間がかかる場合があります。 ただし、この戦略は、すべてのデータが正しく同期されるようにするのに役立ちます。 ウェアハウスを再構築すると、Azure DevOps Serverによってそのインスタンスが作成されます。その後、運用ストアのデータを使用してデータを設定するように処理する必要があります。
注意
前のセクションで TFS_Warehouse データベースと TFS_Analysis データベースを復元している場合は、次の手順を実行する必要はありません。
倉庫を再構築する
Azure DevOps のアプリケーション層サービスを実行しているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを に
Drive:\\%programfiles%\\Azure DevOps Server 2019\\Tools
変更します。次のコマンドを入力します。
TFSConfig rebuildwarehouse /all /ReportingDataSourcePassword:Password
ここで、Password は、Reporting Services (TFSReports) のデータ ソース アカウントのパスワードです。
コマンドが完了するまで待ちます。
レポート サーバーで Internet Explorer を開き、アドレス バーに次の文字列を入力します。
http://localhost:8080/>VirtualDirectory/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
[VirtualDirectory] には、Azure DevOps Serverのインストール時に指定されたインターネット インフォメーション サービス (IIS) の仮想ディレクトリを入力します。 既定では、このディレクトリの名前は tfs です。
WarehouseControlWebService ページが開きます。
注意
Warehouse Control Web サービスを使用できるようにするには、Microsoft Azure DevOps Server アプリケーション プールが実行されている必要があります。
[ GetProcessingStatus] を選択し、[ 呼び出し] を選択します。
重要
サービスは、キューブが処理されていないことを示す、すべてのジョブに対して Idle の値を返す必要があります。 別の値が返された場合は、すべてのジョブに対して Idle が返されるまで、この手順を繰り返します。
[ WarehouseControlWebService ] ページで、[ ProcessAnalysisDatabase] を選択し、[ 呼び出し] を選択します。
ブラウザー ウィンドウが開きます。 サービスは、キューブの処理が正常に開始されると True を返し、成功しなかった場合は False、 キューブが現在処理されている場合は False を返します。
キューブがいつ処理されたかを確認するには、 WarehouseControlWebService ページに戻り、[ GetProcessingStatus] を選択し、[ 呼び出し] を選択します。
GetProcessingStatus サービスがすべてのジョブに対して Idle の値を返すと、処理が完了します。
Azure DevOps 用のアプリケーション層サーバーで、[ コンピューターの管理] を開き、Visual Studio Team Foundation バックグラウンド ジョブ サービスを開始します。
手順 6: アプリケーション層サーバー上のデータ キャッシュをクリアする
Azure DevOps のデプロイ内の各アプリケーション層サーバーはファイル キャッシュを使用するため、ユーザーはデータ層サーバーからファイルをすばやくダウンロードできます。 配置を復元する場合は、各アプリケーション層サーバーでこのキャッシュをクリアする必要があります。 そうしないと、ユーザーがバージョン管理からファイルをダウンロードするときに、ファイル ID が一致しない場合に問題が発生する可能性があります。 デプロイで Azure DevOps プロキシ サーバーを使用する場合は、プロキシとして構成されている各サーバー上のデータ キャッシュもクリアする必要があります。
注意
データ キャッシュをクリアすると、不適切なバージョンのファイルがバージョン コントロールからダウンロードされるのを防ぐことができます。 この処理は、復元の一環として配置のすべてのハードウェアを置き換える場合を除いて、定期的に実行する必要があります。 すべてのハードウェアを置き換える場合は、この手順を省略できます。
データ キャッシュをクリアする
Azure DevOps のアプリケーション層サービスを実行しているサーバー、または Azure DevOps プロキシ サーバーで構成されているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Application Tier\Web Services\_tfs_data に変更します。
_tfs_data ディレクトリを空にします。
デプロイで Azure DevOps プロキシ サーバーを実行している各アプリケーション層サーバーと各サーバーについて、これらの手順を繰り返します。
手順 7: サービスを再起動する
データを復元したら、サーバーを操作可能な状態に戻すためにサービスを再起動してください。
Restart services
Azure DevOps のアプリケーション層サービスを実行しているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Tools に変更します。
次のコマンドを入力します。
TFSServiceControl の不一致
詳細については、「 TFSServiceControl コマンド」を参照してください。
手順 8: クライアント コンピューター上のキャッシュを更新する
クライアント コンピューター上の作業項目を追跡するためにキャッシュを更新する
新しいサーバーで、Internet Explorer を開きます。
[アドレス] バーに、次のアドレスを入力して ClientService Web サービスに接続します。
http://PublicURL/VirtualDirectory:8080/WorkItemTracking/v3.0/ClientService.asmx
注意
管理者資格情報を使用してログオンしている場合でも、管理者としてインターネット エクスプローラーを起動する必要があり、資格情報の入力を求められる場合があります。
[ StampWorkitemCache] を選択し、[ 呼び出し] を選択します。 StampWorkitemCache メソッドはデータを返しません。
クライアント コンピューターのバージョン管理キャッシュを更新する
クライアント コンピューターで、管理アクセス許可を持つコマンド プロンプト ウィンドウを開き、ディレクトリを に
Drive:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
変更します。コマンド プロンプトで、次のコマンドを入力し、新しいサーバーのサーバー名とポート番号を含むコレクションの URL を指定します。
tf workspaces /collection:http://ServerName:Port/VirtualDirectoryName/CollectionName
このデプロイ例では、開発者は、Azure DevOps Serverの FabrikamPrime 展開でホストされている DefaultCollection コレクションのメンバーであるプロジェクトのバージョン管理キャッシュを更新する必要があります。
tf workspaces /collection:http://FabrikamPrime:8080/tfs/DefaultCollection
詳細については、「 Workspaces コマンド」を参照してください。