トップ回答者
SQL2005サーバーオブジェクトのバックアップ先が保存できない

質問
-
Microsoft SQL Server Management Studioからサーバーオブジェクト-バックアップデバイスで「新しいバックアップデバイス」を選択して新規作成する際、デフォルトではバックアップ先のファイル名が"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup"となっていますが、こちらを任意のディレクトリに選択し直してOKをクリックし保存します。その後、この新しく作成したデバイス名を確認するため右クリックしてPropertiesからデバイス名のファイルを確認すると、自分で選択したディレクトリ名ではなく、デフォルトで入っていた"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup"に自動的に変更になってしまっています。
これはどのようにしたら自動的に変更にならないようにできるのでしょうか。
アドバイスよろしくお願いします。
回答
-
-
プロファイラを用いて確認したところ、SSMS にて "新しい バックアップデバイス" を作成すると sp_addumpdevice ストアドプロシージャにより、バックアップ デバイスの情報が sys.backup_devices カタログ ビューに登録されるようです。
私の環境では、"新しい バックアップデバイス" の作成時、ならびに "バックアップデバイス" のプロパティ表示時には、以下のステートメントが実行されていました。
--- "新しい バックアップデバイス" の作成時に実行されたステートメント (例) ---
EXEC master.dbo.sp_addumpdevice @devtype = N'disk', @logicalname = N'test', @physicalname = N'C:\test.bak'--- "バックアップデバイス" のプロパティ表示にて実行されたステートメント (例) ---
SELECT
'Server[@Name=' + quotename(CAST(serverproperty(N'Servername') AS sysname),'''') + ']' + '/BackupDevice[@Name=' + quotename(o.name,'''') + ']' AS [Urn],
o.name AS [Name],
o.physical_name AS [PhysicalLocation],
o.type AS [BackupDeviceType],
CAST(0 AS bit) AS [SkipTapeLabel]
FROM
sys.backup_devices o
WHERE
(o.name=N'test')
他に考えられる可能性は分かりかねますが、問題の切り分けとして、実際に SSMS 操作の際に、 sp_addumpdevice プロシージャのパラメータとして、指定した任意のディレクトリが渡されているかをプロファイラを用いて確認しても良いかと思います。ご参考までに。
- SQL Server Profiler の典型的な使用方法
<http://msdn.microsoft.com/ja-jp/library/ms173789(v=SQL.90).aspx>
すべての返信
-
-
プロファイラを用いて確認したところ、SSMS にて "新しい バックアップデバイス" を作成すると sp_addumpdevice ストアドプロシージャにより、バックアップ デバイスの情報が sys.backup_devices カタログ ビューに登録されるようです。
私の環境では、"新しい バックアップデバイス" の作成時、ならびに "バックアップデバイス" のプロパティ表示時には、以下のステートメントが実行されていました。
--- "新しい バックアップデバイス" の作成時に実行されたステートメント (例) ---
EXEC master.dbo.sp_addumpdevice @devtype = N'disk', @logicalname = N'test', @physicalname = N'C:\test.bak'--- "バックアップデバイス" のプロパティ表示にて実行されたステートメント (例) ---
SELECT
'Server[@Name=' + quotename(CAST(serverproperty(N'Servername') AS sysname),'''') + ']' + '/BackupDevice[@Name=' + quotename(o.name,'''') + ']' AS [Urn],
o.name AS [Name],
o.physical_name AS [PhysicalLocation],
o.type AS [BackupDeviceType],
CAST(0 AS bit) AS [SkipTapeLabel]
FROM
sys.backup_devices o
WHERE
(o.name=N'test')
他に考えられる可能性は分かりかねますが、問題の切り分けとして、実際に SSMS 操作の際に、 sp_addumpdevice プロシージャのパラメータとして、指定した任意のディレクトリが渡されているかをプロファイラを用いて確認しても良いかと思います。ご参考までに。
- SQL Server Profiler の典型的な使用方法
<http://msdn.microsoft.com/ja-jp/library/ms173789(v=SQL.90).aspx>