SQL Azure

Azure SQL Database で2つの目玉機能が発表されました!

  • Self-Service Restore
    過去の任意の時点のデータを復元することが可能になります
  • Active Geo-Replication
    大切なデータを遠隔地にレプリケーションしてデータ保護しましょう

Self-Service Restore

プログラムバグなどで誤ってデータを削除てしまったり、更新してしまった時にデータを復旧するためのソリューション(英語だと、「oops recovery」って言うんですね笑)です。

  • Point-in-time Restore:任意の日時に戻せます
  • 最大過去35日までのデータを保護しています
  • サイドバイサイドでデータベースをコピーし、データの整合性を担保
  • REST API、PowerShell、Azure Portalから操作可能
  • プレミアムエディションで提供

image
build 2014:Azure SQL database: Under the hoodから抜粋

Active Geo-Replication

ミッションクリティカルなビジネス継続性を担保するためのソリューションです。

  • セルフサービスでアクティブにできます
  • 最大4箇所の読み取り専用セカンダリレプリカを作成できます
  • 複数のAzureリージョンにレプリカできます
  • 自動的に非同期にデータをレプリケーションします
  • REST API、PowerShell、Azure Portalから操作できます。
  • プレミアムエディションで提供されます。

image
build 2014:Azure SQL database: Under the hoodから抜粋

モニタリング用の動的管理ビューが提供されています。

  • sys.dm_database_copies:is_interlink connected(yes/no)
  • sys.databases:Database state(ONLINE/COPYING)
  • sys.dm_database_copies:Replication state(SEEDING/CATCH_UP)
  • sys.dm_continuous_copy_status:Replication lag(秒)
  • sys.dm_continuous_copy_status:Last replication(タイムスタンプ)

AzureVM

Windows Azure Virtual Machine上のSQL ServerのTempDBのデータファイル数とディスク数はいくつにするのがベストなのかをWindows Azure CATチームがBlogに「Scaling-out SQL Server disks and data files on Windows Azure Virtual Machines…a real-world example」投稿してくれています。詳細や検証データは、元記事を参照してください。

前提条件

使用する仮想マシンは、エクストララージ(XL / 8コア)でWindows Server 2008 R2とSQL Server 2012の組み合わせの仮想マシンです。ストレージアカウントは、デフォルト設定でジオレプリケーションを有効にしたままにしています。

制限事項

Windows Azure Storage Scalability and Performance Targets]によると、Windows Azure ストレージBlobは、書き込み性能として、[最大60MB/秒、最大500トランザクション/秒]と定義されています。

結論

データファイル数は8個に分割し、4つのディスクに2つずつ配置するのがベストなDisk I/O性能となります。

この設定でDisk以外のところに性能ボトルネックが発生するので、Disk数を増やしても効果が無いことがわかりました。

intro, SQL Azure

連載:Windows Azure SQL Databases入門

Windows Azure CLI tool for Windows, Mac and LinuxでAzure SQLサーバーを作成する

Windows Azure CLI tool for Windows, Mac and Linuxを使用して、Windows Azure SQL Databasesサーバーを作成してみましょう。

Windows Azure CLI tool for Windows, Mac and Linuxでサブスクリプション情報を取得する

Windows Azure CLI tool for Windows, Mac and Linuxで、Azureを操作するには、操作対象のWindows Azureサブスクリプション情報を設定する必要があります。

1.Windows Azureサブスクリプションファイル(.publishSettings)をダウンロードする

azure account download

image

コマンドを実行すると、ブラウザが起動しサブスクリプションファイル生成ページにアクセスします。ファイルをダウンロードします。GUIを有効にしていない場合は、ブラウザが起動しません。ブラウザが使用できる環境で、自分でダウンロードして操作環境に配置する必要があります。

2.ダウンロードしたサブスクリプションファイルをインポートする

azure account import sqlazure.jp-credentials.publishsettings

image

3.インポートされたサブスクリプション情報を確認する

azure account list

インポートされたサブスクリプション情報が表示されます。
複数のサブスクリプションを持っている場合は、複数のサブスクリプションが表示されます。

image

Windows Azure CLI tool for Windows, Mac and LinuxでAzure SQLサーバーを作成する

Windows Azure SQL DatabasesサーバーをWindows Azure CLI tool for Windows, Mac and Linuxで作成しましょう。

Windows Azure SQL Databasesサーバーを作成するには、[azure sql server create]コマンドを使用します。

azure sql server create [options] <administratorLogin> <administratorPassword> <location>

image

実際にサーバーを作成してみましょう。

azure sql server create norayuni P@ssqord1 "East Asia"

image

作成が完了すると、サーバー名が表示されます。

ちなみに、[—json]オプションをつけるとレスポンスがjsonで返ってきます。

azure sql server create norayuni P@ssqord1 "East Asia"  –json

image

9

SQL Azure

1.仮想マシンのエンドポイントの設定

仮想マシンのエンドポイントを設定し、1433ポートを空ける必要があります。

1.仮想マシンを選択し、上部メニューから[エンドポイント]を選択します。

image

2.画面下部の[追加]ボタンを押すと、エンドポイント追加ダイアログが表示されます。

image

[名前]フィールドを選択すると、ドロップダウンで一覧が表示されるので、[MSSQL]を選択します。

image

選択すると、画面内に項目が追記されて表示されます。

image

追記ボタンをクリックすると、完了です。
エンドポイント一覧に、MSSQL用のエンドポイントが表示されます。

2.Windwos Firewallの設定

仮想マシン内のWindowsマシンのWindows Firewallを設定します。
[wf.msc]を起動し、TCPポート1433のアウトとインバウンドのトラフィックを許可します。

intro, SQL Azure

連載:Windows Azure SQL Databases入門

VagrantでWindows Azure CLI tools for Linuxをプロビジョニング

次のBoxイメージを使用して、CentOSを作成し、VagrantでプロイジョニングでWindows Azure CLI tools for Linuxのインストールと自動補完を有効にするところまでを実施する。

使用するBoxファイルの取得

vagrant box add centos64 https://dl.dropboxusercontent.com/u/3657281/centos64_ja.box

vagrantfileの例

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos64"
  config.vm.network :private_network, ip: "192.168.33.10"
  config.vm.provision :shell, :inline => <<-EOT
    curl -O http://download-i2.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    sudo rpm -ivh epel-release-6-8.noarch.rpm
    sudo yum -y install npm –enablerepo=epel
    sudo npm install -g azure-cli
    azure –completion >> /usr/local/etc/azure.completion.sh
    echo ‘source /usr/local/etc/azure.completion.sh’ >> .bash_profile
  EOT
end