SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server On VM の自動管理機能について

leave a comment

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 入りの仮想マシンのイメージを指定して、「オプションの構成」からこれらの設定をすることができます。
image

image

プレビューポータル以外を使用する場合は、手動で構成をする必要が出てきます。
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 では

  • バックアップの自動的な取得
  • バックアップの暗号化

を実施することが出きますがマネージバックアップの以下の設定をしていることになります。

image

設定をすると、

  • ストレージアカウントに「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」がインストールされていますので、この辺のサービスを使用して良しなにやってくれているのでしょうか。

image

ちなみにこちらのサポートは、

  • Windows Server 2012
  • Windows Server 2012 R2
  • SQL Server 2012
  • SQL Server 2014

となっています。

 

Azure 連携を見ていると、SQL Server のクラウド アダプターとかあったな~とふと思い出しました。

とりあえずざっくり調べた内容を投稿してみました。

Share

Written by Masayuki.Ozawa

2月 2nd, 2015 at 12:10 pm

Leave a Reply