Где хранится файл базы данных .bak из SQL Server Management Studio?
Я пытался создать резервную копию для своей базы данных SQL Server с помощью SQL Server Management Studio 2008 Express. Я создал резервную копию, но она сохраняется на каком-то пути, который я не могу найти. Я сохраняю его на своем локальном HD, и я проверил Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA>
, но его там нет.
Каков путь сохранения по умолчанию для этого DB.bak?
Ответы
Ответ 1
Должно быть в
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
Ответ 2
Если резервная копия не была создана в местоположении по умолчанию, вы можете использовать этот T-SQL (запустите это в SSMS), чтобы найти путь к файлу для последней резервной копии для всех БД на вашем экземпляре SQL Server:
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;
Ответ 3
Используйте script ниже и переключите DatabaseName
с именем базы данных, которую вы скопировали. В столбце имя_файла_файла вы получите полный путь к резервной базе данных:
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
Ответ 4
Я не думаю, что местоположение резервного копирования по умолчанию хранится в самом SQL-сервере.
Настройки сохраняются в реестре. Найдите "BackupDirectory" , и вы найдете резервную копию по умолчанию.
Таблица "msdb.dbo.backupset" состоит из списка сделанных резервных копий, если резервная копия не используется для базы данных, она ничего не покажет
Ответ 5
Вы пробовали:
C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Backup
Script, чтобы получить все резервные копии за последнюю неделю, можно найти по адресу:
http://wraithnath.blogspot.com/2010/12/how-to-find-all-database-backups-in.html
У меня есть еще больше резервных сценариев SQL, которые также есть в
http://wraithnath.blogspot.com/search/label/SQL
Ответ 6
...\Program Files\Microsoft SQL Server\MSSQL 1.0\MSSQL\Backup
Ответ 7
Вы можете посмотреть здесь, этот инструмент сохраняет файл BAK с удаленного SQL Server на локальный жесткий диск: FIDA BAK на локальный
Ответ 8
Как сказал Faiyaz, чтобы получить место для резервного копирования по умолчанию для экземпляра, вы не можете получить его в msdb, но вам нужно посмотреть в реестр. Вы можете получить его в T-SQL при использовании хранимой процедуры xp_instance_regread следующим образом:
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. Вам нужно адаптироваться, чтобы разместить свое собственное имя экземпляра (загляните в реестр).
Ответ 9
Задайте элемент реестра для экземпляра сервера. Например:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.2\MSSQLServer\BackupDirectory