restaurar - ¿Dónde se guarda el archivo.bak de la base de datos de SQL Server Management Studio?
restaurar base de datos sql server query (9)
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 una ruta que no puedo encontrar. Lo guardo en mi disco duro local y verifiqué Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA>
pero no está allí.
¿Cuál es la ruta de guardado predeterminada para este DB .bak?
Como dijo Faiyaz, para obtener la ubicación de copia de seguridad predeterminada para la instancia, no puede obtenerla en msdb, pero debe buscar en el Registro. Puede obtenerlo en T-SQL utilizando el procedimiento almacenado xp_instance_regread de la siguiente manera:
EXEC master.dbo.xp_instance_regread
N''HKEY_LOCAL_MACHINE'', N''SOFTWARE/Microsoft//Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQLServer'',N''BackupDirectory''
La doble barra diagonal inversa (//) se debe a los espacios en esa parte del nombre 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 (buscar en el Registro).
Debería 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 usa la interfaz gráfica de usuario o T-SQL, puede especificar dónde lo desea. Ejemplo de 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í Cómo obtener el nombre del dispositivo físico y el tiempo de copia de seguridad para una base de datos de 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
Es posible que desee echar un vistazo aquí, esta herramienta guarda un archivo BAK de un servidor SQL remoto en su disco duro local: FIDA BAK en local
Establecer elemento de registro para su instancia de servidor. Por ejemplo:
HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Microsoft SQL Server / MSSQL.2 / MSSQLServer / BackupDirectory
No creo que la ubicación de copia de seguridad predeterminada se almacene dentro del propio servidor SQL. Los ajustes se almacenan en el registro. Busque la clave "BackupDirectory" y encontrará la copia de seguridad predeterminada.
La tabla "msdb.dbo.backupset" consiste en una lista de copias de seguridad realizadas, si no se realiza una copia de seguridad para una base de datos, no le mostrará nada.
Si la copia de seguridad no se creó en la ubicación predeterminada, puede usar este T-SQL (ejecutar esto en SSMS) para encontrar la ruta del archivo para la copia de seguridad más reciente de todas las bases de datos en su 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;
Use la secuencia de comandos a continuación y cambie el nombre de la base de DatabaseName
con el nombre de la base de datos que ha respaldado. En la columna physical_device_name, tendrá la ruta completa de su base de datos respaldada:
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
has probado:
C: / Archivos de programa / Microsoft SQL Server / MSSQL10.SQL2008 / MSSQL / Backup
El script para obtener todas las copias de seguridad de la última semana se puede encontrar en:
http://wraithnath.blogspot.com/2010/12/how-to-find-all-database-backups-in.html
Tengo muchos más scripts SQL de copia de seguridad allí también en
.../Program Files/Microsoft SQL Server/MSSQL 1.0/MSSQL/Backup