SE の雑記

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

Windows Server 2008 R2 + SQL Server 2008 R2 の Azure VM の DB バックアップを Azure Backup で取得してみる

leave a comment

先月、パブリック プレビュー:Azure Virtual Machines での SQL Server 2008 および 2008 R2 に対する Backup のサポート でアナウンスされましたが、SQL Server 2008 / R2 の Azure VM の AzureBackup による SQL Server のデータベースバックアップがプレビューでサポートされました。

SQL Server 2008 / R2 のサポートは本日 (2019/7/9) で終了となり、今後、拡張セキュリティアップデート (ESU : Extended Security Updates) の対応として、Azure の仮想マシンで SQL Server を動作させることもあるのかもしれません。

そのような場合に、バックアップとして Azure Backup の利用は検討した方が良いのではないでしょうか。
それでは、実際に試してみたいと思います。
関連するドキュメントとしては Give SQL sysadmin permissions for SQL 2008 and SQL 2008 R2 になります。

今回は、Market Place のイメージではなく、Recovery Service コンテナーのレプリケートで移行した日本語版の Windows Server 2008 R2 + SQL Server 2008 R2 を使用しています。

このような Market Place 以外の方法で構築した SQL Server を利用する場合、最初に Azure Backup が動作できる環境を整えておく必要があります。
Azure VM 上の SQL Server のバックアップを取得する場合、バックアップのアイテムとしては「Azure MV 内の SQL Server」を選択する必要があるのですが、これを使用するためには環境に条件があります。
image
前提を満たしていない状態で、データベースを検出しようとすると、次のような「GuestAgentStatusUnavailableUserError」のエラーとなります。
image
Azure Backup を使用するために、Azure VM 上に ゲストエージェント? (Azure VM Agent) をインストールしておく必要があります。
(ゲストエージェントの前提条件として、OS は Windows Server 2008 R2 以降が必要となりますので、残念なが Windows Server 2008 だと使用できないかと。)

ゲストエージェント自体は こちら からダウンロードできますが、この後の作業を含めて、.NET Framework 4.x が必要となり、Azure Backup では、.NET Framework 4.5.2 が前提として必要となりますので、インストールをしておきます。

.NET Framework 4.5.2 のインストールが終わったらゲストエージェントをインストールします。
これでデータベースを検出できるようになります。
しかし、これだけでは環境の準備は不足しています。
この状態で、データベースを検出しようとしすると、エラーが次の内容 (UserErrorOSVersionNotSupported) に変わります。
image
標準の状態では、SQL Server のバックアップは Windows Server 2012 以降にしか対応していません。
そのため、Add registry key to enable registration の作業を実施し、レジストリに値を追加する必要があります。

New-Item HKLM:\SOFTWARE\Microsoft\WorkloadBackup
New-Item HKLM:\SOFTWARE\Microsoft\WorkloadBackup\TestHook
New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WorkloadBackup\TestHook -Name AzureBackupEnableWin2K8R2SP1 -Value $true

これでもエラーが発生するのですが、最後のエラー (BMSUserErrorRegistrationAlreadyInProgress) がこちらです。
image
ここまでの作業で「AzureWLBackupPluginSvc」がインストールされた状態になっているはずなのですが、このサービスが SQL Server にアクセスすることができず、エラーとなっています。
SQL sysadmin 権限を修正する の作業を実施し、適切な権限を付与します。

CREATE LOGIN [NT SERVICE\AzureWLBackupPluginSvc] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
EXEC master..sp_addsrvrolemember @loginame = N'NT Service\AzureWLBackupPluginSvc', @rolename = N'sysadmin'
GO

image
これで、Windows Server 2008 R2 + SQL Server 2008 / R2 の環境のデータベースのバックアップを設定できるようになります。

Market Place からインストールした環境であれば、さほど手間はかからず設定ができると思いますが、自分で作ったイメージについてはいくつかの手順が必要となりますので、作業の流れは覚えておくと良いのではないでしょうか。

Share

Written by Masayuki.Ozawa

7月 9th, 2019 at 11:17 pm

Leave a Reply