Windows Azure SQL VMへのデータベースの移行。 BLOBストレージ+ Azure SDK

前の例では、REST APIを使用してAzure StorageにファイルをアップロードするようにトレーニングしそこにAdventureWorks2012データベースのバックアップをアップロードしました。

クラウド仮想マシンにダウンロードし、インストールされているSQL Serverに復元するために残ります。 この点で、Azure Storageの操作は、クライアントのオンプレミス側からクラウド仮想マシンの側まで完全に対称的です。AzureStorageを介して相互にファイルを転送します。 1つはそこにダウンロードし、2つ目は読み取ります。



container1はパブリックコンテナとして作成されたため、デジタル署名を生成して、それに含まれるblobを一覧表示して読み取る必要はありません。

tststorage.blob.core.windows.net/container1/aaa.txt



コンテナがプライベートとして作成された場合、そこからBLOBを読み取るためにログインする必要があります。 思い出すように、このためには、プライマリまたはセカンダリアクセスキーをAzureストレージアカウントに転送するだけでは不十分です。 前の投稿のスクリプト2で行われたように、特定の形式の文字列を慎重に形成し、MD5ハッシュを練る必要があります。 REST APIを介したAzure Storageの操作は、追加のツールのインストールを必要とせず、本質的にHTTPリクエスト/レスポンスをバイパスするという点で便利ですが、手間がかかります。 この投稿では、Azure SDKを使用します。AzureSDKは、内部の準備作業をマスクし、BLOBの読み取り/書き込み、コンテナーの管理などのための人間が読めるインターフェイスを備えているため便利です 無料で、Windows Azure .NETデベロッパーセンターに付属しています。 Windows Azure SDKをインストールするには、Visual Studio 2010 SP1または2012が必要です。インストールプロセス中に、Webプラットフォームインストーラー4.0が起動し、さらにインストールが実行されます。 SDKの一部として、Windows Azureオーサリングツール-2012年6月リリース、Windows Azure Emulator、.NET 1.7用のWindows Azure Libraries、Microsoft Visual StudioおよびLightSwitch用のWindows Azure Toolsがインストールされています。 クラウドエミュレーターは、クラウドベースのアプリケーションをローカルで作成できる便利なツールで、デバッグ中に計算時間やAzureストーリーボードに配置するために余分なお金を払う必要がありません。 クラウドサービスを起動するためのエミュレーターと、テーブル、キュー、BLOB用のクラウドストレージエミュレーターで構成されます。 前の投稿で提供されたREST APIドキュメントへのリンクでは、GET、PUT、...メソッドのリクエストURIの指定とともに、エミュレートされたストレージサービスURI、およびストレージエミュレーターのみ最大2 GBのBLOBサイズをサポートします。

SDKをインストールすると、Visual Studioのサーバーエクスプローラーを使用して、クラウドに関連する情報を表示できるようになります。 Windows Azureストレージノードには、最初にストレージエミュレーターオブジェクトが表示されます。 Azure Storageに接続するには、ストレージアカウントを指定する必要があります



ここで、アカウントキーは、前の投稿の図10で見たプライマリ/スペアペアの1つです。 これで、コンテナとそのコンテンツのリストを、Azure管理ポータルと同様のVisual Studio環境から直接表示できるようになりました。

Blobを開くには、コンテキストメニューから[開く]アイテムを選択するか、一番上の行の[開く]ボタンをクリックするか、単にBlobをダブルクリックします。 同時に、ローカルの一時ディレクトリにダウンロードされます。 Blobは編集してローカルファイルに保存できます。 VS 2010のAzure Storageに(または他のローカルファイル)を保存するために、[Blobのアップロード]ボタンがありました。 2012年、私は彼女の主張が空白ではなく、私は一人ではありません

Azure SDKオブジェクトモデルを使用して、Azure Storageからファイルを読み取ります。 その助けにより、コードはREST APIと比較して短くなり、読みやすくなりました。



システムを使用して;

Microsoft.WindowsAzureを使用。

Microsoft.WindowsAzure.StorageClientを使用します。

System.IOを使用します。



クラスプログラム

{

static void Main(string [] args)

{

文字列storageAccount = "tststorage";

文字列accountPrimaryKey = "xws7rilyLjqdw8t75EHZbsIjbtwYDvpZw790lda0L1PgzEqKHxGNIDdCdQlPEvW5LdGWK / qOZFTs5xE4P93A5A ==";

string blobContainer = "container1";

string blobName = "AdventureWorks2012.bak"; // choiceaaa.txt ";



CloudStorageAccount acct =新しいCloudStorageAccount(新しいStorageCredentialsAccountAndKey(storageAccount、accountPrimaryKey)、true);

CloudBlobClient clnt = acct.CreateCloudBlobClient();

CloudBlobContainer cntr = clnt.GetContainerReference(blobContainer);

CloudBlob blob = cntr.GetBlobReference(blobName);



blob.DownloadToFile(@ "c:\ temp \ AdventureWorks2012.bak");

}

}

スクリプト1



最初に、ExtensionsプロジェクトにMicrosoft.WindowsAzure.StorageClientへのリンクを追加する必要があります。

ビルドと言います。結果の実行可能ファイルとMicrosoft.WindowsAzure.StorageClient.dllライブラリをBin \ Debugソリューションフォルダーから取得し、リモートアクセスセッションを介して、Visual StudioもWindows Azure SDKも存在しないクラウド仮想マシンにコピーし、exeとAdventureWorks2012ファイルを実行します.bakは、仮想マシン内のAzure Storageからダウンロードされます。 やがて約1分かかります。 次に、SSMSを開き、クラウド内の仮想マシン上のSQL Serverにバックアップを復元します。

説明したように、Azure Storageを介してローカルマシンからクラウド仮想マシンにバックアップを転送する上記の方法では、トラフィックの面でコストがかかりません。 定義上、クラウドへのアップストリームトラフィックは無料であり、中間バックアップストレージのストレージアカウントは仮想マシンと同じデータセンターに作成されました。 バックアップをtststorageから仮想マシンにダウンロードするのにも費用はかかりません。 ただし、占有スペースの観点から、AdventureWorks2012.bakは2回保存されました。最初にBlobストーリーにアップロードされ、次にvhdにダウンロードされました。これは実際にはBlobストーリーでもあります。 大規模なバックアップの場合、追加のスペースコストが発生する可能性があります。価格設定のストレージセクションを参照してください。 次の投稿では、これらのコストを最適化する方法を確認します。



All Articles