it-swarm.dev

SQL Server Management Studio에서 데이터베이스 .bak 파일은 어디에 저장됩니까?

SQL Server Management Studio 2008 Express를 사용하여 SQL Server 데이터베이스에 대한 백업을 만들려고했습니다. 백업을 만들었지 만 찾을 수없는 경로에 저장됩니다. 로컬 HD에 저장하고 있으며 Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA> 그러나 거기에 없습니다.

이 DB .bak의 기본 저장 경로는 무엇입니까?

29
Cipher

에 있어야

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

내 경우에는

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

Gui 또는 T-SQL을 사용하는 경우 원하는 위치를 지정할 수 있습니다. 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

T-SQL을 사용하면 백업 위치를 확인할 수도 있습니다. 여기를 참조하십시오 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
48
SQLMenace

백업이 기본 위치에서 생성되지 않은 경우이 T-SQL (SSMS에서 실행)을 사용하여 SQL Server 인스턴스의 모든 DB에 대한 최신 백업의 파일 경로를 찾을 수 있습니다.

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

서버 인스턴스의 레지스트리 항목을 설정하십시오. 예를 들면 다음과 같습니다.

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

2
Hink

Faiyaz가 말했듯이 인스턴스의 기본 백업 위치를 얻으려면 msdb로 가져올 수 없지만 Registry를 찾아야합니다. 다음과 같이 xp_instance_regread 저장 프로 시저를 사용하여 T-SQL에서 가져올 수 있습니다.

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

이중 백 슬래시 (\\)는 해당 키 이름 부분에 공백이 있기 때문입니다 (Microsoft SQL Server). "MSSQL12.MSSQLSERVER"부분은 SQL 2014의 기본 인스턴스 이름입니다. 고유 한 인스턴스 이름 (레지스트리 참조)을 넣으려면 적응해야합니다.

2
Matt Roy

기본 백업 위치가 SQL 서버 자체에 저장되어 있다고 생각하지 않습니다. 설정은 레지스트리에 저장됩니다. "BackupDirectory" 키를 찾으면 기본 백업을 찾을 수 있습니다.

"msdb.dbo.backupset" 테이블은 데이터베이스에 대한 백업이 수행되지 않은 경우 수행 된 백업 목록으로 구성됩니다. 그것은 당신에게 아무것도 보여주지 않을 것입니다

1
Faiyaz

아래 스크립트를 사용하여 DatabaseName를 전환 한 다음 백업 한 데이터베이스의 이름을 바꾸십시오. physical_device_name 열에는 백업 된 데이터베이스의 전체 경로가 있습니다.

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

당신이 시도 했습니까?

C :\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\백업

지난 주에 모든 백업을 가져 오는 스크립트는 다음에서 찾을 수 있습니다.

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

거기에 더 많은 백업 SQL 스크립트가 있습니다.

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

0
WraithNath

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

0
Kenny Evitt