同じ場所にデータを復元する

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

バックアップから、そのデータのバックアップ元の Azure DevOps 用 SQL Server の同じサーバーとインスタンスにデータを復元できます。 たとえば、破損した一連のデータベースを最新の正常な状態に復元できます。

Note

Azure DevOps Server の同じサーバーでのデータの復元の概要についてはバックアップと復元の概念に関するページを参照してください。

SharePoint と Azure DevOps Server の統合は、TFS 2017 以降のバージョンでは非推奨となっています。

前提条件

この手順を実行するには、次のグループのメンバーであるか、次のアクセス許可を持っている必要があります。

  • Azure DevOps の管理コンソールを実行しているサーバー上の Administrators セキュリティ グループのメンバー。
  • SQL サーバー システム管理者セキュリティ グループのメンバー、または SQL Server Perform Back and Create Maintenance Plan アクセス許可を、データベースをホストする SQL Server のインスタンスで Allow に設定する必要があります。
  • Azure DevOps のデータベース インスタンスとウェアハウス データベースの Analysis Services インスタンスの sysadmin セキュリティ グループのメンバー。
  • TFS_Warehouse データベースの承認されたユーザー。
  • TFSEXECROLE データベース ロールのメンバー。
  • 展開で SharePoint 製品を使用する場合、SharePoint 製品データベースの復元先ファームの Farm Administrators グループのメンバー。

詳細については、「ユーザー アカウント制御」を参照してください。

手順 1: サービスを停止する

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

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

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

    TFSServiceControl quiesce
    

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

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

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

データベースを停止する

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

    Note

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

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

  2. [Server typeで、データベース エンジンを選択します。

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

    Note

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

    SQL Server Management Studio が開きます。

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

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

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

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

データベースの復元

  1. Azure DevOps Server の管理コンソールを開き、 Scheduled Backups に移動し、 Restore Databases ウィザードを起動します。

    復元ウィザードを開始する

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

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

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

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

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

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

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

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

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

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

    TfsConfig Accounts /add /AccountType:ApplicationTier /account: AccountName

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

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

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

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

Note

前のセクションで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 ページが開きます。

    Note

    Warehouse Control Web サービスを使用できるようにするには、Microsoft Azure DevOps Server アプリケーション プールが実行されている必要があります。

  5. GetProcessingStatus を選択し、Invoke を選択します。

    重要

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

  6. WarehouseControlWebService ページで、ProcessAnalysisDatabase を選択し、Invoke を選択します。

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

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

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

  8. Azure DevOps のアプリケーション層サーバーで、 Computer Management を開き、Visual Studio Team Foundation Background Job Service を開始します。

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

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

Note

データ キャッシュをクリアすることで、バージョン 管理で正しくないバージョンのファイルがダウンロードされるのを防ぐことができます。 復元の一環として展開内のすべてのハードウェアを交換しない限り、これを定期的に行う必要があります。 すべてのハードウェアを交換する場合は、この手順を省略できます。

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

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

  2. _tfs_data ディレクトリ内のすべてを削除します。

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

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

データを復元した後、サービスを再起動してサーバーを操作状態に戻す必要があります。

サービスをリセット

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

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

    TFSServiceControl unquiesce

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

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

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

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

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

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

    Note

    管理者の資格情報でログオンしている場合でも、管理者として Internet Explorer を起動する必要があり、資格情報の入力を求められる場合があります。

  3. StampWorkitemCache を選択し、Invoke を選択します。 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 コマンドを参照してください。