次の方法で共有


同じ場所へのデータの復元

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: サービスを停止する

サービスを停止すると、特にデータベースの名前を変更した場合に、復元プロセス中のデータの損失や破損を回避できます。

  1. Azure DevOps のアプリケーション層サービスを実行しているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Tools に変更します。

  2. 次のコマンドを入力します。

    TFSServiceControl quiesce
    

    詳細については、「 TFSServiceControl コマンド」を参照してください。

手順 2: データベースの名前を変更する

復元ウィザードを使用してAzure DevOps Serverデータベースを復元するには、まずデータベースをオフラインにしてから、名前を変更する必要があります。

データベースの停止

  1. SQL Server Management Studio を開きます。

    注意

    データベースを復元する方法の詳細については、「SQL Server データベースの復元シナリオを実装する」を参照してください。

    [サーバーへの接続] ダイアログ ボックスが開きます。

  2. [ サーバーの種類] で、[ データベース エンジン] を選択します。

  3. [ サーバー名] で、データ層サーバーとデータベース インスタンスの名前を入力または選択し、[ 接続] を選択します。

    注意

    SQL Serverがクラスターにインストールされている場合、サーバー名はクラスターの名前であり、コンピューター名ではありません。

    SQL Server Management Studio が開きます。

  4. [ データベース ] ノードを展開して、Azure DevOps のデータ層を構成するデータベースの一覧を表示します。

  5. SQL Serverのバージョンのガイダンスに従って、復元する各データベースの名前を変更してから停止します。 復元されたバージョンに置き換えるデータベースの古いバージョンであることを示す名前をデータベースに付けます。 たとえば、TFS_DefaultCollectionの名前を TFS_DefaultCollection_Old に変更できます。

手順 3: Azure DevOps データベースを復元する

Azure DevOps Serverの管理コンソールで復元ウィザードを使用して、Azure DevOps Serverのデータを復元できます。 復元ウィザードでは、レポートに使用される暗号化キーも復元されます。

データベースを復元する

  1. Azure DevOps Serverの管理コンソールを開き、[スケジュールされたバックアップ] に移動して、データベースの復元ウィザードを開始します。

    復元ウィザードを開始

  2. バックアップ セットへのパスを指定し、復元に使用するセットを選択します。

    ネットワーク パスを選択し、復元セットを選択します

  3. ウィザードを完了し、データベースを復元します。

    データベースは新しいサーバーに復元されます

手順 4: すべてのサービス アカウントを更新する

Azure DevOps Server (TFSService) とデータ ソース アカウント (TFSReports) のサービス アカウントを更新する必要があります。 これらのアカウントが変更されていない場合でも、アカウントの ID と形式が確実に適した ID と形式になるように、情報を更新する必要があります。

サービス アカウントを更新する

  1. SQL Server Reporting Servicesを実行しているサーバーで、[コンピューターの管理] を開き、次のコンポーネントがまだ起動していない場合は起動します。

    • ReportServer または ReportServer$InstanceName (アプリケーション プール)
    • SQL Server Reporting Services (TFSINSTANCE)
  2. アプリケーション層サーバーでコマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Tools に変更します。

  3. コマンド プロンプトで、次のコマンドを入力して Azure DevOps のサービス アカウントを追加します。 DatabaseName は構成データベースの名前です (既定ではTFS_Configuration)。

    TfsConfig アカウント /add /AccountType:ApplicationTier /account:AccountName

    詳細については、「 Accounts コマンド」を参照してください。

  4. [ アカウント ] コマンドを使用して、レポート サーバーのデータ ソース アカウントと Azure DevOps プロキシ サーバーのプロキシ アカウントを追加します (デプロイでこれらのリソースが使用されている場合)。

手順 5: データ ウェアハウスを再構築する

TFS_Warehouse データベースと TFS_Analysis データベースを復元するのではなく、データ ウェアハウスをリビルドできます。 デプロイに大量のデータが含まれている場合は、ウェアハウスの再構築にかなりの時間がかかる場合があります。 ただし、この戦略は、すべてのデータが正しく同期されるようにするのに役立ちます。 ウェアハウスを再構築すると、Azure DevOps Serverによってそのインスタンスが作成されます。その後、運用ストアのデータを使用してデータを設定するように処理する必要があります。

注意

前のセクションで TFS_Warehouse データベースと TFS_Analysis データベースを復元している場合は、次の手順を実行する必要はありません。

倉庫を再構築する

  1. Azure DevOps のアプリケーション層サービスを実行しているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを に Drive:\\%programfiles%\\Azure DevOps Server 2019\\Tools変更します。

  2. 次のコマンドを入力します。

    TFSConfig rebuildwarehouse /all /ReportingDataSourcePassword:Password

    ここで、Password は、Reporting Services (TFSReports) のデータ ソース アカウントのパスワードです。

  3. コマンドが完了するまで待ちます。

  4. レポート サーバーで 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 アプリケーション プールが実行されている必要があります。

  5. [ GetProcessingStatus] を選択し、[ 呼び出し] を選択します。

    重要

    サービスは、キューブが処理されていないことを示す、すべてのジョブに対して Idle の値を返す必要があります。 別の値が返された場合は、すべてのジョブに対して Idle が返されるまで、この手順を繰り返します。

  6. [ WarehouseControlWebService ] ページで、[ ProcessAnalysisDatabase] を選択し、[ 呼び出し] を選択します。

    ブラウザー ウィンドウが開きます。 サービスは、キューブの処理が正常に開始されると True を返し、成功しなかった場合は False、 キューブが現在処理されている場合は False を返します。

  7. キューブがいつ処理されたかを確認するには、 WarehouseControlWebService ページに戻り、[ GetProcessingStatus] を選択し、[ 呼び出し] を選択します。

    GetProcessingStatus サービスがすべてのジョブに対して Idle の値を返すと、処理が完了します。

  8. Azure DevOps 用のアプリケーション層サーバーで、[ コンピューターの管理] を開き、Visual Studio Team Foundation バックグラウンド ジョブ サービスを開始します。

手順 6: アプリケーション層サーバー上のデータ キャッシュをクリアする

Azure DevOps のデプロイ内の各アプリケーション層サーバーはファイル キャッシュを使用するため、ユーザーはデータ層サーバーからファイルをすばやくダウンロードできます。 配置を復元する場合は、各アプリケーション層サーバーでこのキャッシュをクリアする必要があります。 そうしないと、ユーザーがバージョン管理からファイルをダウンロードするときに、ファイル ID が一致しない場合に問題が発生する可能性があります。 デプロイで Azure DevOps プロキシ サーバーを使用する場合は、プロキシとして構成されている各サーバー上のデータ キャッシュもクリアする必要があります。

注意

データ キャッシュをクリアすると、不適切なバージョンのファイルがバージョン コントロールからダウンロードされるのを防ぐことができます。 この処理は、復元の一環として配置のすべてのハードウェアを置き換える場合を除いて、定期的に実行する必要があります。 すべてのハードウェアを置き換える場合は、この手順を省略できます。

データ キャッシュをクリアする

  1. Azure DevOps のアプリケーション層サービスを実行しているサーバー、または Azure DevOps プロキシ サーバーで構成されているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Application Tier\Web Services\_tfs_data に変更します。

  2. _tfs_data ディレクトリを空にします。

  3. デプロイで Azure DevOps プロキシ サーバーを実行している各アプリケーション層サーバーと各サーバーについて、これらの手順を繰り返します。

手順 7: サービスを再起動する

データを復元したら、サーバーを操作可能な状態に戻すためにサービスを再起動してください。

Restart services

  1. Azure DevOps のアプリケーション層サービスを実行しているサーバーで、コマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\Azure DevOps Server 2019\Tools に変更します。

  2. 次のコマンドを入力します。

    TFSServiceControl の不一致

詳細については、「 TFSServiceControl コマンド」を参照してください。

手順 8: クライアント コンピューター上のキャッシュを更新する

クライアント コンピューター上の作業項目を追跡するためにキャッシュを更新する

  1. 新しいサーバーで、Internet Explorer を開きます。

  2. [アドレス] バーに、次のアドレスを入力して ClientService Web サービスに接続します。

    http://PublicURL/VirtualDirectory:8080/WorkItemTracking/v3.0/ClientService.asmx

    注意

    管理者資格情報を使用してログオンしている場合でも、管理者としてインターネット エクスプローラーを起動する必要があり、資格情報の入力を求められる場合があります。

  3. [ StampWorkitemCache] を選択し、[ 呼び出し] を選択します。 StampWorkitemCache メソッドはデータを返しません。

クライアント コンピューターのバージョン管理キャッシュを更新する

  1. クライアント コンピューターで、管理アクセス許可を持つコマンド プロンプト ウィンドウを開き、ディレクトリを に Drive:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE変更します。

  2. コマンド プロンプトで、次のコマンドを入力し、新しいサーバーのサーバー名とポート番号を含むコレクションの URL を指定します。

    tf workspaces /collection:http://ServerName:Port/VirtualDirectoryName/CollectionName

    このデプロイ例では、開発者は、Azure DevOps Serverの FabrikamPrime 展開でホストされている DefaultCollection コレクションのメンバーであるプロジェクトのバージョン管理キャッシュを更新する必要があります。

    tf workspaces /collection:http://FabrikamPrime:8080/tfs/DefaultCollection

    詳細については、「 Workspaces コマンド」を参照してください。