最新のエラスティック データベース クライアント ライブラリを使用するためのアプリのアップグレード

適用対象:Azure SQL Database

Elastic Database クライアント ライブラリの新しいバージョンが、NuGet と Visual Studio の NuGet パッケージ マネージャーのインターフェイスから利用できるようになりました。 アップグレードにはバグ修正が含まれており、クライアント ライブラリの新機能をサポートします。

最新バージョン:Microsoft.Azure.SqlDatabase.ElasticScale.Client に移動してください。

新しいライブラリを使用してアプリケーションをリビルドし、新しい機能をサポートするために、Azure SQL データベース内のデータベースに格納されている既存のシャード マップ マネージャーのメタデータを変更します。

これらの手順を順番に実行することで、メタデータ オブジェクトの更新時に古いバージョンのクライアント ライブラリが環境内に存在しないようにします。つまり、古いバージョンのメタデータ オブジェクトはアップグレード後は作成されなくなります。

アップグレードの手順

1.アプリケーションをアップグレードします。 Visual Studio で、最新のクライアント ライブラリのバージョンをダウンロードして、ライブラリを使用する開発プロジェクトのすべてに参照させます。その後、再構築してデプロイします。

  • Visual Studio ソリューションで [ツール] -->[NuGet Package Manager] -->[ソリューションの NuGet パッケージを管理] と選択します。
  • (Visual Studio 2013) 左側のパネルで [更新] を選択し、ウィンドウに表示される Azure SQL Database Elastic Scale Client Library パッケージの [更新] ボタンを選択します。
  • (Visual Studio 2015) [フィルター] ボックスで [アップグレード可能] を選択します。 アップグレードするパッケージを選択し、[アップグレード] ボタンを選択します。
  • (Visual Studio 2017) ダイアログの上部にある [更新プログラム] を選択します。 アップグレードするパッケージを選択し、[アップグレード] ボタンを選択します。
  • 構築してデプロイします。

2.スクリプトをアップグレードします。 シャードの管理に PowerShell スクリプトを使用している場合は、新しいライブラリ バージョンをダウンロードして、スクリプトを実行するディレクトリにコピーします。

3.Split-Merge サービスをアップグレードします。 Elastic Database 分割/マージ ツールを使用してシャード化されたデータを再編成する場合は、最新バージョンのツールをダウンロードしてデプロイします。 サービスの詳しいアップグレード手順については、こちらをご覧ください。

4.シャード マップ マネージャーのデータベースをアップグレードします。 Azure SQL Database でシャード マップをサポートするメタデータをアップグレードします。 これは、PowerShell か C# を使用して実行できます。 次に両方の方法について説明します。

オプション 1: PowerShell を使用してメタデータをアップグレードする

  1. こちら から NuGet の最新のコマンド ライン ユーティリティをダウンロードして、フォルダーに保存します。
  2. コマンド プロンプトを開き、同じフォルダーに移動して、次のコマンドを発行します。nuget install Microsoft.Azure.SqlDatabase.ElasticScale.Client
  3. ダウンロードした新しいクライアントの DLL バージョンを含むサブフォルダーに移動します。例: cd .\Microsoft.Azure.SqlDatabase.ElasticScale.Client.1.0.0\lib\net45
  4. スクリプト センターからエラスティック データベース クライアントのアップグレード スクリプトをダウンロードして、DLL が含まれる同じフォルダーに保存します。
  5. そのフォルダーのコマンド プロンプトから PowerShell .\upgrade.ps1 を実行し、画面の指示に従います。

オプション 2: C# を使用してメタデータをアップグレードする

または、次の例のように、メソッド UpgradeLocalStoreUpgradeGlobalStore を呼び出して、ShardMapManager を開き、すべてのシャードを反復し、メタデータのアップグレードを実行する Visual Studio アプリケーションを作成します。

    ShardMapManager smm =
       ShardMapManagerFactory.GetSqlShardMapManager
       (connStr, ShardMapManagerLoadPolicy.Lazy);
    smm.UpgradeGlobalStore();

    foreach (ShardLocation loc in
     smm.GetDistinctShardLocations())
    {
       smm.UpgradeLocalStore(loc);
    }

このメタデータのアップグレードの手法は問題なく何度も適用できます。 たとえば古いクライアント バージョンで、シャードをすでに更新した後に不注意にシャードを作成してしまった場合、すべてのシャードで再びアップグレードを実行し、最新のメタデータ バージョンがインフラストラクチャ全体に存在するようにできます。

注: 今まで公開されたクライアント ライブラリの新しいバージョンは、Azure SQL Database の古いバージョンのシャード マップ マネージャー メタデータで引き続き操作できます (逆の場合も同様です)。 ただし、最新のクライアントで一部の新機能を活用するには、メタデータをアップグレードする必要があります。 メタデータのアップグレードはユーザー データやアプリケーション固有のデータに影響することはありません。シャード マップ マネージャーで作成し、使用したオブジェクトのみに影響します。 アプリケーションは以下に説明するアップグレード シーケンスを通じて引き続き操作できます。

エラスティック データベース クライアントのバージョン履歴

バージョン履歴については、 Microsoft.Azure.SqlDatabase.ElasticScale.Client

その他のリソース

まだ弾力性データベース ツールを使用していない場合は、 ファースト ステップ ガイドを参照してください。 ご質問がある場合は、SQL Database に関する Microsoft Q&A 質問ページを参照してください。機能に関するご要望は、SQL Database に関するフィードバック フォーラムで新しいアイデアを追加したり、既存のアイデアに投票したりしてください。