2011-01-14 67 views
24

Tôi đã cố tạo bản sao lưu cho Cơ sở dữ liệu SQL Server của mình bằng SQL Server Management Studio 2008 Express. Tôi đã tạo bản sao lưu nhưng nó đang được lưu ở một số đường dẫn mà tôi không thể tìm thấy. Tôi đang lưu nó trên HD địa phương của mình và tôi đã đăng ký Program Files>Microsoft SQL Server>MSSQL 1.0>MSSQL>DATA> nhưng không có ở đó.Tệp .bak cơ sở dữ liệu được lưu từ SQL Server Management Studio ở đâu?

Đường dẫn lưu mặc định cho DB này là gì.

Trả lời

41

Nên trong

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

Trong trường hợp của tôi nó là

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

Nếu bạn sử dụng gui hoặc T-SQL bạn có thể chỉ định nơi bạn muốn nó dụ 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 

Với T-SQL bạn cũng có thể lấy vị trí sao lưu, xem tại đây 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ó ai nhầm lẫn bởi các '... 'trong câu trả lời? Điều đó có nghĩa là để chỉ ra rằng vị trí của thư mục * Program Files * của bạn có thể không phải là thư mục gốc của ổ đĩa * C *. –

1

Sử dụng đoạn mã dưới đây, và chuyển đổi các DatabaseName với sau đó tên của cơ sở dữ liệu mà bạn đã sao lưu. Trên physical_device_name cột, bạn sẽ có đường dẫn đầy đủ của cơ sở dữ liệu sao lưu của bạn:

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

Nếu sao lưu không được tạo ra trong vị trí mặc định, bạn có thể sử dụng T-SQL (chạy trong SSMS) để tìm đường dẫn tập tin cho các sao lưu gần đây nhất đối với tất cả các DBS trên SQL server dụ của bạn:

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

bạn có thể muốn có một cái nhìn ở đây, công cụ này giúp tiết kiệm một file BAK từ một SQL server từ xa đến địa phương của bạn đĩa cứng: FIDA BAK to local

1

Tôi không nghĩ rằng bản sao lưu mặc định ation được lưu trữ trong chính máy chủ SQL. Các cài đặt được lưu trong Registry. Tìm kiếm khóa "BackupDirectory" và bạn sẽ tìm thấy bản sao lưu mặc định.

Các "msdb.dbo.backupset" bảng bao gồm danh sách các bản sao lưu được thực hiện, nếu không có dự phòng được thực hiện cho một cơ sở dữ liệu, nó sẽ không hiển thị bất cứ điều gì bạn

1

Như đã nói bởi Faiyaz, để lấy vị trí sao lưu mặc định cho cá thể, bạn không thể lấy nó vào msdb, nhưng bạn phải nhìn vào Registry.Bạn có thể nhận được nó trong T-SQL trong việc sử dụng xp_instance_regread lưu trữ thủ tục như thế này:

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

Các dấu chéo ngược kép (\\) là do không gian vào tên phần quan trọng (Microsoft SQL Server). Phần "MSSQL12.MSSQLSERVER" là tên mặc định cho SQL 2014. Bạn phải thích ứng với việc đặt tên dụ của riêng bạn (xem trong Registry).

0

Đặt mục đăng ký cho phiên bản máy chủ của bạn. Ví dụ:

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

Các vấn đề liên quan