SQL Server Management Studio 2008 Expressを使用して、SQL Serverデータベースのバックアップを作成しようとしていました。バックアップを作成しましたが、見つけられないパスに保存されています。ローカルHDに保存して、Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA>
しかし、そこにはありません。
このDB .bakのデフォルトの保存パスは何ですか?
である必要があります
Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>BACKUP>
私の場合は
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup
GuiまたはT-SQLを使用する場合、T-SQLの例の場所を指定できます
BACKUP DATABASE [YourDB] TO DISK = N'SomePath\YourDB.bak'
WITH NOFORMAT, NOINIT, NAME = N'YourDB Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
T-SQLを使用すると、バックアップの場所も取得できます。こちらを参照してください SQL Serverデータベースの物理デバイス名とバックアップ時間の取得
SELECT physical_device_name,
backup_start_date,
backup_finish_date,
backup_size/1024.0 AS BackupSizeKB
FROM msdb.dbo.backupset b
JOIN msdb.dbo.backupmediafamily m ON b.media_set_id = m.media_set_id
WHERE database_name = 'YourDB'
ORDER BY backup_finish_date DESC
バックアップが既定の場所に作成されなかった場合、このT-SQL(SSMSでこれを実行)を使用して、SQL Serverインスタンス上のすべてのDBの最新のバックアップのファイルパスを見つけることができます。
SELECT DatabaseName = x.database_name,
LastBackupFileName = x.physical_device_name,
LastBackupDatetime = x.backup_start_date
FROM ( SELECT bs.database_name,
bs.backup_start_date,
bmf.physical_device_name,
Ordinal = ROW_NUMBER() OVER( PARTITION BY bs.database_name ORDER BY bs.backup_start_date DESC )
FROM msdb.dbo.backupmediafamily bmf
JOIN msdb.dbo.backupmediaset bms ON bmf.media_set_id = bms.media_set_id
JOIN msdb.dbo.backupset bs ON bms.media_set_id = bs.media_set_id
WHERE bs.[type] = 'D'
AND bs.is_copy_only = 0 ) x
WHERE x.Ordinal = 1
ORDER BY DatabaseName;
サーバーインスタンスのレジストリアイテムを設定します。例えば:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.2\MSSQLServer\BackupDirectory
Faiyazによると、インスタンスのデフォルトのバックアップ場所を取得するには、msdbに取得することはできませんが、レジストリを調べる必要があります。次のようなxp_instance_regreadストアドプロシージャを使用して、T-SQLで取得できます。
EXEC master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer',N'BackupDirectory'
二重バックスラッシュ(\\)は、そのキー名部分(Microsoft SQL Server)にスペースがあるためです。 「MSSQL12.MSSQLSERVER」の部分は、SQL 2014のデフォルトのインスタンス名です。独自のインスタンス名を入れるように調整する必要があります(レジストリを調べます)。
デフォルトのバックアップ場所はSQLサーバー自体に保存されているとは思わない。設定はレジストリに保存されます。 "BackupDirectory"キーを検索すると、デフォルトのバックアップが見つかります。
"msdb.dbo.backupset"テーブルは、データベースのバックアップが取られていない場合、取られたバックアップのリストで構成されます。何も表示されません
以下のスクリプトを使用し、DatabaseName
をバックアップしたデータベースの名前に切り替えます。 physical_device_name列には、バックアップされたデータベースの完全なパスがあります。
select a.backup_set_id, a.server_name, a.database_name, a.name, a.user_name, a.position, a.software_major_version, a.backup_start_date, backup_finish_date, a.backup_size, a.recovery_model, b.physical_device_name
from msdb.dbo.backupset a join msdb.dbo.backupmediafamily b
on a.media_set_id = b.media_set_id
where a.database_name = 'DatabaseName'
order by a.backup_finish_date desc
やってみました:
C:\ Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Backup
先週のすべてのバックアップを取得するスクリプトは、次の場所にあります。
http://wraithnath.blogspot.com/2010/12/how-to-find-all-database-backups-in.html
そこにも多くのバックアップSQLスクリプトがあります。
...\Program Files\Microsoft SQL Server\MSSQL 1.0\MSSQL\Backup