sqlserver安裝后沒有指定日志存儲路徑或者還原庫指定的日志存儲位置不理想想要更改,都可以按照這種方式來更換;
1.前提準備:數據庫的備份bak文件
2.查看自己當前數據庫的日志文件和數據文件存儲路徑是否理想
選中當前數據庫,右鍵屬性-文件(這是我已經更改好了的位置,正常應該是位于C盤目錄下)
3.找到自己的備份bak文件路徑,執行查詢命令
RESTORE FILELISTONLY
FROM DISK = 'D:\yunshu\databak\WithinHospReview_backup_2025_07_14_150853_7181956.bak'
輸出如下:
4:執行數據替換和遷移命令;(該命令是執行數據庫還原命令,同時把這個備份庫中的日志文件和數據文件遷移到我們的目標路徑文件)
RESTORE DATABASE WithinHospReview
FROM DISK = 'D:\yunshu\databak\WithinHospReview_backup_2025_07_14_141827_2041194.bak'
WITH MOVE 'WithinHospReview' TO 'D:\yunshu\SQLData\WithinHospReview.mdf',MOVE 'WithinHospReview_log' TO 'D:\yunshu\SQLLogs\WithinHospReview_log.ldf',REPLACE;
?WithinHospReview是我的數據庫名字,D:\yunshu\databak\WithinHospReview_backup_2025_07_14_141827_2041194.bak是我都數據庫備份bak文件路徑;WithinHospReview_log和WithinHospReview名字就是對應我執行步驟三所查詢出來的名字,一定要對應哦,D:\yunshu\SQLData\WithinHospReview.mdf和'D:\yunshu\SQLLogs\WithinHospReview_log.ldf'就是我要的目標路徑了,新的日志文件和數據會存儲到這個新文件中;
附:
如果當前數據庫在使用中,執行步驟4會報錯:
執行時報錯:消息 3102,級別 16,狀態 1,第 10 行
RESTORE 無法處理數據庫 'WithinHospReview',因為它正由此會話使用。建議在執行此操作時使用 master 數據庫。
消息 3013,級別 16,狀態 1,第 10 行
RESTORE DATABASE 正在異常終止。
可以依次執行
//切換到master數據庫
USE master;//把目標數據庫切換到單用戶模式,強制斷開其他連接
ALTER DATABASE WithinHospReview SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
//執行還原語句
RESTORE DATABASE WithinHospReview
FROM DISK = 'D:\yunshu\databak\WithinHospReview_backup_2025_07_14_141827_2041194.bak'
WITH MOVE 'WithinHospReview' TO 'D:\yunshu\SQLData\WithinHospReview.mdf',MOVE 'WithinHospReview_log' TO 'D:\yunshu\SQLLogs\WithinHospReview_log.ldf',REPLACE;
//還原完成后,切換回多用戶模式ALTER DATABASE WithinHospReview SET MULTI_USER;