2011-01-14 45 views
24

Estaba intentando crear una copia de seguridad para mi base de datos de SQL Server utilizando SQL Server Management Studio 2008 Express. He creado la copia de seguridad pero se está guardando en alguna ruta que no puedo encontrar. Lo estoy guardando en mi HD local y lo registré en Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA> pero no está allí.¿Dónde se guarda el archivo .bak de la base de datos desde SQL Server Management Studio?

¿Cuál es la ruta de guardado predeterminada para este DB .bak?

Respuesta

41

debe estar en

Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>BACKUP> 

En mi caso es

C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup 

Si utiliza la interfaz gráfica de usuario o T-SQL se puede especificar dónde desea que ejemplo 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 

Con T-SQL también puede obtener la ubicación de la copia de seguridad, consulte aquí Getting the physical device name and backup time for a SQL Server database

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 
0

...\Program Files\Microsoft SQL Server\MSSQL 1.0\MSSQL\Backup

+0

Hay alguien confundido por el '' ... en la respuesta? Eso estaba destinado a indicar que la ubicación de su carpeta * Archivos de programa * podría no ser la raíz de una unidad * C *. –

1

Uso debajo del guión, y conmutar el DatabaseName entonces con el nombre de la base de datos que haya una copia de seguridad. En la columna de physical_device_name, tendrá la ruta completa de la base de datos de copia de seguridad:

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 
10

Si la copia de seguridad no se crea en la ubicación predeterminada, puede utilizar este T-SQL (ejecutar esto en SSMS) para encontrar la ruta del archivo de la última copia de seguridad de todos los DBs de instancia de 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; 
0

Es posible que desee echar un vistazo aquí, esta herramienta guarda un archivo BAK desde un servidor SQL Server remoto a su local de disco duro: FIDA BAK to local

1

No creo que la copia de seguridad predeterminada loc ation se almacena dentro del servidor SQL. La configuración se almacena en el Registro. Busque la clave "BackupDirectory" y encontrará la copia de seguridad predeterminada.

El "msdb.dbo.backupset" tabla consiste en lista de copias de seguridad realizadas, si ninguna copia de seguridad se da por una base de datos, no te va a mostrar nada

1

Según lo dicho por Faiyaz, a obtener la ubicación de copia de seguridad predeterminada para la instancia, no puede acceder a msdb, pero debe buscar en el Registro.Se puede conseguir en T-SQL en el uso de procedimiento almacenado xp_instance_regread así:

EXEC master.dbo.xp_instance_regread 
     N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer',N'BackupDirectory' 

La doble barra invertida (\\) se debe a que los espacios en que parte del nombre de clave (Microsoft SQL Server). La parte "MSSQL12.MSSQLSERVER" es para el nombre de instancia predeterminado para SQL 2014. Debe adaptarse para poner su propio nombre de instancia (busque en el Registro).

0

Establezca el elemento de registro para su instancia de servidor. Por ejemplo:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL.2 \ MSSQLServer \ BackupDirectory

Cuestiones relacionadas