Nếu bạn đang sử dụng phương pháp tiếp cận tập lệnh và có lỗi liên quan đến các tệp LDF và MDF, trước tiên bạn có thể truy vấn tệp sao lưu để biết tên logic (và các chi tiết khác) của các tệp trong bộ sao lưu, sử dụng như sau:
-- Queries the backup file for the file list in backup set, where Type denotes
-- type of file. Can be L,D,F or S
-- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO
Bạn sẽ nhận được kết quả tương tự như sau:
Và sau đó bạn có thể sử dụng các tên logic đó trong các truy vấn:
-- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
RESTORE DATABASE DB
FROM DISK='C:\Temp\DB_backup.bak'
WITH REPLACE,
MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.ldf'; -- "DB_log" is LDF logical name from query above
Thông tin thêm RESTORE FILELISTONLY
có thể được tìm thấy từ các tài liệu SQL Server .
WITH MOVE
và đã được khắc phục bằng cách sử dụngWITH REPLACE, MOVE
.