大規模なコレクションのインポート

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

データ移行ツールが警告するデータベースが大きすぎる場合、Azure DevOps Servicesに移行するには別のデータ パッケージ化アプローチが必要です。 コレクションがサイズのしきい値を超えているかどうかわからない場合は、コレクションに対してデータ移行ツールの検証を実行する必要があります。 検証では、インポートにSQL Azure VM メソッドを使用する必要があるかどうかを確認できます。

コレクション サイズを小さくできるかどうかを判断する

先に進む前に、 古いデータをクリーンアップできるかどうかを確認することをお勧めします。 時間の経過と同時に、コレクションは大量のデータを構築できます。 この増加は DevOps プロセスの自然な部分ですが、すべてのデータを保持する必要がない場合があります。 関連しなくなったデータの一般的な例としては、古いワークスペースとビルド結果があります。

古くて関連性がなくなった成果物をクリーンアップすると、予想以上に多くの領域が削除される可能性があり、DACPAC インポート方法とSQL Azure VM のどちらを使用するかを決定できます。

重要

古いデータを削除した後は、コレクションの古いバックアップを復元しない限り、復元 できません

DACPAC しきい値を超えている場合は、手順に従ってインポート用 の DACPAC を生成 します。 まだ DACPAC しきい値の下にデータベースを取得できない場合は、Azure DevOps ServicesにインポートするSQL Azure VM を設定する必要があります。

Azure DevOps ServicesにインポートするSQL Azure VM を設定する

これを実現する方法を見てみましょう。 大まかに言うと、次の手順を実行します。

  • SQL Azure VM を設定します。
  • (省略可能)Azure DevOps Services IP のみにアクセスを制限します。
  • IP ファイアウォールの例外を構成します。
  • VM でデータベースを復元します。
  • インポート用にコレクションを構成します。
  • VM をターゲットにするようにインポート仕様ファイルを構成する

SQL Azure VM を設定する

数回クリックするだけで、Azure portalからSQL Azure VM を設定できます。 方法については、「Azure portalを使用してSQL Serverを使用して Windows 仮想マシンをプロビジョニングする」を参照してください。

注意

SQL Azure VM を設定するときに、VM と接続されているデータ ディスクのパフォーマンスがインポートのパフォーマンスに大きな影響を与える点に注意してください。 このため、次のことを 強くお 勧めします。

  • D8s_v5_* 以上のレベルでの VM サイズの選択
  • マネージド ディスクを使用する場合
  • 仮想マシンとディスクのパフォーマンスに関するコンサルティング。 VM IOPS とストレージ IOPS の両方がインポートのパフォーマンスのボトルネックにならないように、インフラストラクチャが構成されていることを確認してください。 たとえば、VM から IOPS をサポートするには、VM に接続されているデータ ディスクの数を確認するだけで十分です。

Azure DevOps Servicesは、世界中のいくつかの Azure リージョンで利用できます。 これらは次の表で確認できます。

重要

インポートが正常に開始されるようにするには、データを正しいリージョンに配置することが重要です。 次の表に示すリージョン以外の場所にSQL Azure VM を設定した場合、インポートは開始されません。

このインポート方法を使用している場合は、次の表を参照して、SQL Azure VM を作成する場所を決定します。 この一覧以外のリージョンでの VM の作成は、インポートの実行ではサポートされていません。

必要なインポート リージョン SQL AZURE VM リージョン
中央米国 米国中部
西ヨーロッパ 西ヨーロッパ
オーストラリア東部 オーストラリア東部
ブラジル南部 ブラジル南部
インド南部 インド南部
カナダ中部 カナダ中部
アジア太平洋 東南アジア (シンガポール)
英国南部 英国南部

Azure DevOps Servicesは米国内の複数のリージョンで使用できますが、新しい組織を受け入れるのは中央米国 リージョンのみです。 現時点では、企業は他の米国 Azure リージョンにデータをインポートできません。

Note

DACPAC のお客様は 、「手順 3: DACPAC ファイルをアップロードする」セクションのリージョン テーブルを参照する必要があります。 上記のガイドラインは、SQL Azure VM のみを対象としています。

推奨される VM 構成SQL Azureいくつかを次に示します。

  • ドライブ C 以外のドライブを使用するように SQL 一時データベースを構成します。理想的には、ドライブには十分な空き領域が必要です。は、データベースの最大テーブルと少なくとも同等です。
  • サイズを縮小した後もソース データベースが 1 テラバイト (TB) を超える場合は、追加の 1 TB のディスクをアタッチし、それらを 1 つのパーティションに結合して VM にデータベースを復元する必要があります。
  • コレクション データベースのサイズが 1 TB を超える場合は、一時データベースとコレクション データベースの両方に SSD を使用することを検討してください。 また、16 個の仮想 CPU (vCPU) と 128 GB の RAM を備えた大規模な VM の使用も検討してください。
  • サービスがこのマシンに到達するには、パブリックに接続する IP アドレスが必要です。

Azure DevOps Services IP のみにアクセスを制限する

詳細については、「Azure DevOps Services IP のみにアクセスを制限する」ページを参照してください。

VM でデータベースを復元する

Azure VM を設定して構成したら、デタッチされたバックアップを Azure DevOps Server インスタンスから Azure VM に取り込む必要があります。 Azure には、このタスクを実行する方法に関するいくつかの 文書化された方法 があります。 コレクション データベースは SQL インスタンスに復元する必要があり、VM にAzure DevOps Serverをインストールする必要はありません。

インポート用にコレクションを構成する

Azure VM でコレクション データベースが復元されたら、sql ログインを構成して、Azure DevOps Servicesがデータベースに接続してデータをインポートできるようにします。 このログインでは、1 つのデータベースへの 読み取り アクセスのみが許可されます。

開始するには、VM でSQL Server Management Studioを開き、インポートするデータベースに対して新しいクエリ ウィンドウを開きます。

データベースの回復を単純に設定します。

ALTER DATABASE [<Database name>] SET RECOVERY SIMPLE;

データベースの SQL ログインを作成し、そのログインを 'TFSEXECROLE' に割り当てます。

USE [<database name>]
CREATE LOGIN <pick a username> WITH PASSWORD = '<pick a password>'
CREATE USER <username> FOR LOGIN <username> WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='<username>'

Fabrikam の例に従って、2 つの SQL コマンドは次のようになります。

ALTER DATABASE [Foo] SET RECOVERY SIMPLE;

USE [Foo]
CREATE LOGIN fabrikam WITH PASSWORD = 'fabrikamimport1!'
CREATE USER fabrikam FOR LOGIN fabrikam WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='fabrikam'

注意

VM でSQL Server Management StudioでSQL ServerモードとWindows 認証モードを有効にしてください。 認証モードを有効にしない場合、インポートは失敗します。

VM をターゲットにするようにインポート仕様ファイルを構成する

インポート仕様ファイルを更新して、SQL Server インスタンスへの接続方法に関する情報を含めます。 インポート仕様ファイルを開き、次の更新を行います。

  1. ソース ファイル オブジェクトから DACPAC パラメーターを削除します。

    変更前のインポート仕様を次のコードに示します。

    変更前のインポート仕様のスクリーンショット。

    変更後のインポート仕様を次のコードに示します。

    変更後のインポート仕様のスクリーンショット。

  2. 必要なパラメーターを入力し、ソース オブジェクト内の次の properties オブジェクトを仕様ファイルに追加します。

    "Properties":
    {
        "ConnectionString": "Data Source={SQL Azure VM Public IP};Initial Catalog={Database Name};Integrated Security=False;User ID={SQL Login Username};Password={SQL Login Password};Encrypt=True;TrustServerCertificate=True" 
    }
    

Fabrikam の例に従って、変更を適用すると、インポートの仕様は次のようになります。

SQL Azure VM を参照するインポート仕様のスクリーンショット。

インポート仕様が、インポートにSQL Azure VM を使用するように構成されました。 残りの準備手順に進み、Azure DevOps Servicesにインポートします。 インポートが完了したら、必ず SQL ログインを削除するか、パスワードをローテーションしてください。 インポートが完了した後も、Microsoft はログイン情報を保持しません。