SQL Azure

Avkash氏のBlogに投稿されたエントリをざっくり意訳した投稿です。

新しいSQL Azure用のエクスポート/インポートサービスをすべてのWindows Azure データセンターにおいて、公開CTP版での提供を開始しました。

このサービスは、SQL AzureデータベースとWindows Azure Blob間で直接インポート/エクスポートすることができるサービスです。BACPACファイルフォーマットを使用するツールと本サービスを補完するクライアントツールも提供しています。Database Import and Export for SQL Azure

インポート/エクスポートサービスは、公開RESTエンドポイントを提供しています。私たちが提供しているEXEのリファレンスは、http://sqldacexamples.codeplex.com/releases/view/72388で提供しています。

サービスの使用シナリオ

直接Blobストレージに保存する

SQLエンジンを使用せずに、データにアクセスすることができるBACPACファイルフォーマットを使用できます。

マイグレーション

クライアントサイドのDAC Frameworkを使用することで、オンプレミスのデータベースからBACPACファイルにエクスポートすることができます。エクスポート後は、BACPACからBLOBストレージアカウントに転送することができ、本サービスを使用してSQL Azureにデータをインポートすることができます。

BLOBストレージと「大容量のDACPACまたは、多数のDACPAC」の相互移動させるのに、間もなく提供予定の転送サービスを使用することができます。

サポートされたフォーマットでのBLOBストレージのバックアップ

今のところ、データ整合性を担保したトランザクション制御をしたエクスポートには対応していません。データ整合性を担保するには、Database Copyを使用して複製したデータベースからエクスポートする必要があります。エクスポートすることでオフライン環境に圧縮した状態でファイルに格納することができます。

ディザスターリカバリ

データベースのデータ保護を冗長化させるために、データベースオフライン環境にコピーするために別のデータセンター上のストレージアカウントにエクスポートできるか確認をされます。

参考

RedGateが提供するSQL Azure Backup BETA は、自動的にトランザクション制御によるデータ整合性を担保したエクスポート機能を提供しています。試用期限制限がありますが、http://www.red-gate.com/products/dba/sql-azure-backup/から入手して使用することができます。

SQLAzureMWは、同様のことができるとてもポピュラーなツールです。
http://sqlazuremw.codeplex.com/

SQL Azure

Windows Azure Toolkits for Devices – Now With Android!の一部をざっくり意訳した投稿です。

Windows Azure と連携するモバイルアプリケーションを簡単に構築できるようにするWindows Azure Toolkit for Windows Phoneの新バージョンがリリースされました!

リリースノート

  • メンバシッププロバイダーがSQL Azureをサポート
  • SQL Azureへデータを格納するODあたサービスのサンプル
  • BabelCamサンプルのすべてのソースコード
  • ASP.NET MVC3へのアップグレード
  • Windows Azure Tools for Visual Studio 1.4を使用できるようにアップグレード
  • Windows Phone Developer Tools 7.1 RCを使用できるようにアップグレード
  • バグフィックス

SQL Azureに対応

新しいプロジェクトウィザードで、Windows Azureのどこにデータを格納したいかを選択できるようになりました。Windows AzureストレージとSQL Azureの両方を選択することもできます。

ウィザードで、SQL Azureへの接続情報を入力するか、ローカル開発用にSQL Serverインスタンスを使用するかのどちらかを選択できます。

ウィザードを完了させても、すぐには以前との違いに気が付かないかもしれません。

しかし、裏側でSQL Azureデータベースにすべてのメンバーシップ情報を格納しています。

また、アプリケーションには、Odataサービスを使用したSQL Azureデータ用の新しいタブがあります。

注意事項

今回のリリースでは、Windows Phone Developer Tools 7.1を対象にしております。

しかし過去の7.0用のサンプルは当面ツールキットに含まれます。WP7.0とWP7.1の2つのディレクトリが作成されます。

SQL Azure

image

TechNet Wikiに公開されていた「How to Manage SQL Azure Servers using Windows PowerShell」をざっくりと意訳して、「Windows PowerShellを使用してSQL Azureを管理する方法(ja-JP)」を公開しました。

PowerShellを使用して、SQL Azureを更新するための手順と、PowerShellのコードが掲載されていましたので、日本語版ページを作成しました。

SQL Azure

Handling Error 40552 IN SQL Azureをざっくりと日本語訳した投稿です。

エラー40552が発生する理由

SQL Azureは、サーバを複数ユーザで共有するクラウドデータベースサービスです。
全ユーザが等しくSQL Azureを快適に使えるように、一部のユーザがリソースを占有しないように幾つかのセーフ機能を持っています。

セーフ機能の1つに、トランザクションで大量にアクティブトランザクションログを生成していないか監視しています。
大量のトランザクションログ容量を使用するトランザクションを実行しているアプリケーションは、SQL Azureから次のエラーを受け取ることになります。

Msg 40552, Level 20, State 1, Line 1
The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.

インデックスの作成、再構築、削除をする際に40552を回避する方法

インデックスの削除、再構築、作成は、大量のトランザクションログレコードを生成するので、大きなテーブル上でこのエラーメッセージを受け取る可能性があります。

この問題を回避する為に、新しいテーブルを作成しインデックスのレイアウトを完成され、その新しいテーブルに小さな粒度でデータを移行します。
しかし、たいていの場合、ONLINEオプションを使用してインデックス操作をするほうが、必要なトランザクションログスペースを少なくすることができます。
ONLINE=ONを指定して、CREATEやALTER、DROP INDEX操作をすると、実行方法が変わります。
一つの大きなトランザクションに変わって、長時間広いロックを取得することなく、裏側で複数の小さなトランザクションを実行する操作になります。

どちらの方法でも、操作に必要なトランザクションログ容量を減らすことができ、操作を実行している間でも、対象テーブルの使用を継続できます。