2011-01-14 9 views
24

Próbowałem utworzyć kopię zapasową dla mojej bazy danych SQL Server przy użyciu SQL Server Management Studio 2008 Express. Utworzono kopię zapasową, ale jest ona zapisywana pod pewną ścieżką, której nie mogę znaleźć. Zapisuję ją w lokalnej pamięci HD i sprawdziłem w Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA>, ale jej tam nie ma.Gdzie jest przechowywany plik bazy danych .bak z SQL Server Management Studio?

Jaka jest domyślna ścieżka zapisu dla tego pliku DB .bak?

Odpowiedz

41

powinny być

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

W moim przypadku jest to

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

Jeśli używasz GUI lub T-SQL można określić, gdzie chcesz go T-SQL przykład

BACKUP DATABASE [YourDB] TO DISK = N'SomePath\YourDB.bak' 
WITH NOFORMAT, NOINIT, NAME = N'YourDB Full Database Backup', 
SKIP, NOREWIND, NOUNLOAD, STATS = 10 
GO 

Za pomocą T-SQL można również uzyskać lokalizację kopii zapasowej, patrz tutaj 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

Czy ktoś mylone przez '...' odpowiedź? Oznaczało to, że lokalizacja folderu * Program Files * może nie być źródłem dysku * C *. –

1

użyć skryptu poniżej i przełączyć DatabaseName z ówczesnego nazwy bazy danych, które zostały zarchiwizowane. Na physical_device_name kolumny, będziesz miał pełną ścieżkę swojej kopii zapasowej bazy danych:

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

Jeśli kopia zapasowa nie została utworzona w domyślnej lokalizacji, można użyć tego T-SQL (run to w SSMS), aby znaleźć ścieżkę do ostatniej kopii zapasowej dla wszystkich DB na swojej instancji 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; 
1

Nie sądzę, że domyślna lokalizacja kopii zapasowej acja jest przechowywana w samym serwerze SQL. Ustawienia są przechowywane w rejestrze. Wyszukaj klucz "BackupDirectory", a znajdziesz domyślną kopię zapasową.

„msdb.dbo.backupset” tabela składa się z listy kopii zapasowych wykonanych, jeśli kopia zapasowa nie jest brane do bazy danych, nie będzie pokazać niczego

1

Jak powiedział przez Faiyaz, aby uzyskaj domyślną lokalizację kopii zapasowej dla instancji, nie możesz jej pobrać do msdb, ale musisz zajrzeć do rejestru.Można go pobrać w T-SQL w użyciu procedury xp_instance_regread zapisane tak:

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

Podwójny lewy ukośnik (\\) dlatego przestrzenie do tego klucza nazwa części (Microsoft SQL Server). Część "MSSQL12.MSSQLSERVER" jest dla domyślnej nazwy instancji dla SQL 2014. Musisz dostosować, aby umieścić własną nazwę instancji (zajrzyj do Rejestru).

0

Ustaw element rejestru dla swojej instancji serwera. Na przykład:

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

Powiązane problemy