No.1 からパスが来ていた、Automated Everything with SQL Server on IaaS VMs について少しまとめてみたいと思います。
「SQL Server も全部 No.1 のターンだ!!」っていう風にどうやって持っていくかが目下の課題です。
詳細については Automated Backup and Patching for SQL Server in Azure Virtual Machines が参考になります。
今回追加された機能については 2 種類有り、
- Automated Backup (自動バックアップ)
- Automated Patching (自動パッチ適用)
になります。
これらの機能は、VM Agent の Extension として動作しています。
最新の Azure PowerShell では、「Set-AzureVMSqlServerExtension」というコマンドレットがサポートされており、これを使用することで上記の 2 種類の設定をすることができます。
プレビューポータルからであれば、SQL Server 入りの仮想マシンのイメージを指定して、「オプションの構成」からこれらの設定をすることができます。
プレビューポータル以外を使用する場合は、手動で構成をする必要が出てきます。
VM エージェントについては以下を確認するとよいかと。
Azure VM 拡張機能とその機能
VM エージェントと VM 拡張機能の概要
VM エージェントと拡張機能 ? パート 1
VM エージェントと拡張機能 ? パート 2
Install the VM Agent on an existing Azure VM
VM Agent and Extensions ? Part 1
VM Agent and Extensions ? Part 2
Manually installing the VM Agent on your older Microsoft Azure Virtual Machines
手動での構成や設定変更は、PowerShell で実行する必要がありますので、構文については Automated Backup and Patching for SQL Server in Azure Virtual Machines を参照するとよいかと。
SQL Server 用のExtension の有効化は以下のようなコマンドレットで実行可能です。
注意点としては、「SQL Server Agent のサービスが起動していないと設定をしても管理対象バックアップの設定が行われない」という点かと。
Add-AzureAccount Select-AzureSubscription -SubscriptionName "<サブスクリプション名>" -Current Get-AzureVM -ServiceName "<サービス名>" -Name "<仮想マシン名>" | Set-AzureVMSqlServerExtension | Update-AzureVM
手動でインストールして正常に動作しない場合、「C:PackagesPluginsMicrosoft.SqlServer.Management.SqlIaaSAgent」配下のバージョンごとのディレクトリの「update.cmd」を実行したりしていたらうまくいくようになりました。
設定についてもこれらのディレクトリの「RuntiemSettings」から JSON を確認することができそうです。
■Automated Backup
サポートされているのは以下の環境になります。
- Windows Server 2012
- Windows Server 2012 R2
- SQL Server 2014 Standard
- SQL Server 2014 Enterprise
SQL Server 2014 しかサポートされていない理由ですが、これは、この機能が SQL Server 2014 で追加されたマネージバックアップ (管理対象バックアップ) により実装されているためです。
Windows Azure への SQL Server マネージ バックアップ
Automated Backup では
- バックアップの自動的な取得
- バックアップの暗号化
を実施することが出きますがマネージバックアップの以下の設定をしていることになります。
設定をすると、
- ストレージアカウントに「automaticbackup」のコンテナーが作成され、その配下に暗号化に使用する証明書のバックアップ (pvk/cer/マスターキー) が作成される
- ストレージアカウントに「<サーバー名>-mssqlserver」のコンテナーが作成され、その配下にバックアップが取得される
# 通常のマネージバックアップの動作
が行われます。
注意する点としては、「マネージバックアップを使用する場合には、SQL Server エージェントが開始されているいる必要がある」というところでしょうか。
Windows Azure への SQL Server マネージ バックアップの設定
SQL Server エージェント サービスが開始され、実行されていることを確認する: SQL Server エージェントを開始します (現在実行されていない場合)。 Windows Azure への SQL Server マネージ バックアップでバックアップ操作を実行するには、SQL Server エージェントがインスタンスで実行されている必要があります。 バックアップ操作を定期的に実行できるように、SQL Server エージェントの自動的な実行を設定できます。
SQL Server インストール済みの仮想マシンで展開した場合、SQL Server エージェントのサービスは自動で開始されるようにはなっていません。
そのため、サービスを自動的に開始するように設定しておく必要があります。
ストアドプロシージャ、smart_admin.sp_backup_on_demand を使用すると手動でマネージバックアップを実行することができますので、正常動作の確認はこちらを利用するとよいかと。
■Automated Patching
こちらは定期的にパッチ適用をするための設定ですので設定可能な項目通りかと。
# 通常の仮想マシンでも設定できて良い気がしますが…。
定期的に Windows Update を「更新プログラムはダウンロードするが、インストールを行うかどうかは選択する」で変更を蓄積し指定されたスケジュールでインストールする感じでしょうか。
SQL Server の拡張を入れた仮想マシンでは、「SQLIaasExtension」(Microsoft SQL Server IaaS Agent」がインストールされていますので、この辺のサービスを使用して良しなにやってくれているのでしょうか。
ちなみにこちらのサポートは、
- Windows Server 2012
- Windows Server 2012 R2
- SQL Server 2012
- SQL Server 2014
となっています。
Azure 連携を見ていると、SQL Server のクラウド アダプターとかあったな~とふと思い出しました。
とりあえずざっくり調べた内容を投稿してみました。