SE の雑記

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

SQL Server が VSS ライターを使用してバックアップが取得されているかを確認

leave a comment

SQL Server をインストールすると、「SqlServerWriter」(SQL Server VSS Writer サービス) がインストールされ、VSS と連携が行われます。
詳しくは SQL ライター サービス / How to: VSS Tracing を確認していただくとよいかと。

いろいろなバックアップソリューションがあるかと思いますが、VSS を使用しているバックアップで SQL Server の VSS ライターが動いているかを確認する方法をざっくりと。
VSS のトレースのレジストリ設定が Windows Server 2012 R2 で動作しなかったので、この辺については時間があるときにでも調べたいものですね。

よくおこなわれていると思うのは、バックアップが行われている際に、「vssadmin list writers」を実行して、ライターが動作しているかを確認する方法でしょうか。

ライターが動作していれば、バックアップを実行した場合、以下のようなステータスとなっているはずです。
image

ほかの方法としては、イベントビューアーのアプリケーションから確認するという方法もあります。
ライターが動作した場合、SQL Server としてはバックアップがとられたと認識されます。
そのため、イベントビューアーのアプリケーションに以下のようなイベント (イベント ID  18264) が出力されます。
image

また、SQL Server に対して、プロファイラー等でトレースを取得すると、アプリケーションが 「Microsoft SQL Server VSS Writer」として、クエリが実行されていることが確認できます。
image

select rtrim(physical_name),rtrim(type_desc),rtrim(state_desc), is_name_reserved from sys.master_files where DB_ID(N'TESTDB') = database_id
go
BACKUP DATABASE [TESTDB] TO VIRTUAL_DEVICE='{B0F334E6-D37C-42FC-96A8-ED213BE61190}3' WITH SNAPSHOT,BUFFERCOUNT=1,BLOCKSIZE=1024,COPY_ONLY
go

この際には、BACKUP DATABASE が 「WITH SNAPSHOT」という通常は使用しないオプションで実行されているのが確認できます。

# RDS for SQL Server でスナップショットを取得した場合なども、WITH SNAPSHOT オプションによる VSS を使用したバックアップが行われているようでした。

VSS を使用したバックアップも SQL Server としてはバックアップのエントリーが作成されますので、msdb のバックアップ関連のテーブル から情報を取得することができます。

サンプルとしては以下のようなクエリでしょうか。

SELECT
	[bs].[database_name], 
	[bs].[backup_set_id],
	[bs].[name], 
	[bf].[logical_device_name],
	[bf].[device_type],
	[bs].[software_major_version], 
	[bs].[software_minor_version], 
	[bs].[software_build_version], 
	[bs].[database_creation_date], 
	[bs].[backup_start_date], 
	[bs].[backup_finish_date],
	[bs].[backup_size],
	[bs].[compressed_backup_size],
	[bs].[type]
FROM
	[msdb]..[backupset] bs
	LEFT JOIN
	[msdb]..[backupmediafamily] bf
	ON
	bf.media_set_id = bs.media_set_id
ORDER BY
	[database_name] ASC

 

VSS により取得されたバックアップは「device_type」が「7」(仮想デバイス) として認識が行われているかと思います。

これらの情報を確認することで、VSS と SQL Server が連携しているかは確認ができるかと。

Written by masayuki.ozawa

3月 1st, 2015 at 1:27 pm

Posted in SQL Server

Tagged with

Leave a Reply

*