2011-01-14 29 views
24

Stavo cercando di creare un backup per il mio database SQL Server utilizzando SQL Server Management Studio 2008 Express. Ho creato il backup ma viene salvato in un percorso che non riesco a trovare. Lo sto salvando sul mio HD locale e ho controllato in Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA> ma non è lì.Dove si trova il file .bak di database salvato da SQL Server Management Studio?

Qual è il percorso di salvataggio predefinito per questo DB .bak?

risposta

41

dovrebbe essere in

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

Nel mio caso è

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

Se si utilizza l'interfaccia grafica o T-SQL è possibile specificare dove si desidera che ad esempio 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 è anche possibile ottenere la posizione del backup, vedere qui 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

C'è qualcuno confuso dal '' ... nella risposta? Questo voleva indicare che la posizione della cartella * Programmi * non può essere la radice di un disco * C *. –

1

Utilizzare lo script di seguito, e passare il DatabaseName con l'allora nome del database che hai eseguito il backup. Sulla colonna di physical_device_name, avrete il percorso completo del database di backup:

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

Se il backup non è stato creato nel percorso predefinito, è possibile utilizzare questo T-SQL (eseguire questo in SSMS) per trovare il percorso del file per il backup più recente per tutti i DB sull'istanza di 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

Si consiglia di dare un'occhiata qui, questo strumento salva un file BAK da uno SQL Server remoto al vostro locale harddrive: FIDA BAK to local

1

Non penso al punto di backup predefinito l'azione è memorizzata all'interno del server SQL stesso. Le impostazioni sono memorizzate nel registro. Cerca la chiave "BackupDirectory" e troverai il backup predefinito.

Il "msdb.dbo.backupset" tavolo è costituito da elenco di backup presi, se non di backup è preso per un database, esso non mostrerà nulla

1

Come detto da Faiyaz, a ottenere il percorso di backup predefinito per l'istanza, non è possibile ottenerlo in msdb, ma è necessario esaminare il Registro.Si può ottenere in T-SQL utilizzando procedure xp_instance_regread memorizzati in questo modo:

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

La doppia barra rovesciata (\\) è perché gli spazi in quel nome elemento chiave (Microsoft SQL Server). La parte "MSSQL12.MSSQLSERVER" è per il nome di istanza predefinito per SQL 2014. È necessario adattarsi per inserire il proprio nome di istanza (controllare nel Registro di sistema).

0

Imposta l'elemento del registro per l'istanza del server. Per esempio:

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

Problemi correlati