it-swarm.com.de

Wo wird die .bak-Datei der Datenbank in SQL Server Management Studio gespeichert?

Ich habe versucht, mit SQL Server Management Studio 2008 Express eine Sicherung für meine SQL Server-Datenbank zu erstellen. Ich habe das Backup erstellt, aber es wird auf einem Pfad gespeichert, den ich nicht finden kann. Ich speichere es auf meiner lokalen Festplatte und habe Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA> aber es ist nicht da.

Wie lautet der Standardspeicherpfad für diese DB .bak?

29
Cipher

Sollte in sein

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

In meinem Fall ist es das

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

Wenn Sie die GUI oder T-SQL verwenden, können Sie angeben, wo Sie es möchten. T-SQL-Beispiel

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

Mit T-SQL können Sie auch den Speicherort der Sicherung abrufen, siehe hier Abrufen des physischen Gerätenamens und der Sicherungszeit für eine SQL Server-Datenbank

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
48
SQLMenace

Wenn die Sicherung nicht am Standardspeicherort erstellt wurde, können Sie mit diesem T-SQL-Code (in SSMS ausführen) den Dateipfad für die letzte Sicherung für alle DBs auf Ihrer SQL Server-Instanz ermitteln:

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;
14
Kenny Evitt

Legen Sie das Registrierungselement für Ihre Serverinstanz fest. Beispielsweise:

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

2
Hink

Wie von Faiyaz erwähnt, können Sie den Standard-Sicherungsspeicherort für die Instanz nicht in msdb abrufen, sondern müssen sich mit der Registrierung befassen. Sie können es in T-SQL erhalten, indem Sie die gespeicherte Prozedur xp_instance_regread wie folgt verwenden:

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

Der doppelte Backslash (\\) ist auf die Leerzeichen in diesem Schlüsselnamen zurückzuführen (Microsoft SQL Server). Der Teil "MSSQL12.MSSQLSERVER" ist der Standardinstanzname für SQL 2014. Sie müssen ihn anpassen, um Ihren eigenen Instanznamen zu verwenden (siehe Registrierung).

2
Matt Roy

Ich glaube nicht, dass der standardmäßige Sicherungsspeicherort im SQL Server selbst gespeichert ist. Die Einstellungen werden in der Registrierung gespeichert. Suchen Sie nach "BackupDirectory" und finden Sie das Standard-Backup.

Die Tabelle "msdb.dbo.backupset" enthält eine Liste der durchgeführten Sicherungen, wenn für eine Datenbank keine Sicherung durchgeführt wird. es wird dir nichts zeigen

1
Faiyaz

Verwenden Sie das folgende Skript und wechseln Sie das DatabaseName mit dem Namen der Datenbank, die Sie gesichert haben. In der Spalte physical_device_name finden Sie den vollständigen Pfad Ihrer gesicherten Datenbank:

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
1
Pascal

hast du es versucht:

C:\Programme\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Backup

Ein Skript, um alle Backups der letzten Woche zu erhalten, finden Sie unter:

http://wraithnath.blogspot.com/2010/12/how-to-find-all-database-backups-in.html

Ich habe dort auch viel mehr Backup-SQL-Skripte

http://wraithnath.blogspot.com/search/label/SQL

0
WraithNath

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

0
Kenny Evitt