📦 SQL Server 備份一直顯示「正在執行查詢」?
一、問題背景:為什麼備份看起來「永遠跑不完」?
很多工程師(甚至資深工程師)都遇過這種情況:
在 SQL Server 裡執行資料庫備份
畫面只顯示:「正在執行查詢」
沒有百分比、沒有進度、也沒有錯誤那它到底有沒有在跑?
對「剛接觸資料庫」的人來說,這個狀況會非常焦慮,因為你完全不知道該等、該停,還是該重來。
二、先講重點結論(給忙碌的人)
👉
畫面顯示「正在執行查詢」,不代表真的在備份
👉
真正的狀態,要看 SQL Server 內部,而不是看畫面
👉
有時候它卡在「開始前的檢查階段」,根本沒進入備份流程
三、為什麼 SQL Server 不會主動顯示進度?
這其實是設計問題,不是你的錯
在 SQL Server 裡,有兩種常見做法:
✅ 用圖形介面(右鍵 → 備份)
-
會顯示百分比
-
會跳出進度視窗
-
對新手友善
⚠️ 用「查詢視窗」執行備份指令
-
常常只顯示「正在執行查詢」
-
沒有進度條
-
沒有即時回饋
👉 但「沒有顯示」≠「沒有執行」
四、工程師真正判斷進度的方法(白話版)
💡 正確觀念
不要相信畫面,要相信資料庫本身
SQL Server 其實會在「系統內部表」記錄所有正在執行的工作,只是你要主動去查。
🛠 工程師常用的「內部狀態查詢」(概念版)
如果查詢結果是:
-
✅ 有資料 + 百分比會變
👉 真的在跑,放心等 -
❌ 完全查不到
👉 代表根本沒開始,畫面只是「假忙」
五、最常見的「卡住真兇」(超過 80% 都是它)
🚨 問題不是資料庫,而是「備份路徑」
很多人會這樣想:
「我指定一個電腦路徑,SQL Server 就會幫我存檔」
但實際上:
-
SQL Server 是用「服務帳號」在存檔
-
不是用你登入電腦的帳號
-
它可能根本沒權限寫那個資料夾
常見狀況包括:
-
資料夾不存在
-
沒有寫入權限
-
磁碟空間不足
-
路徑是系統碟(風險最高)
👉 結果就是:
畫面卡住很久,最後才噴錯,或乾脆沒反應
六、專業工程師會怎麼做?
✅ 作法一:使用資料庫「官方預設備份目錄」
-
不自己亂指定路徑
-
使用系統已授權、已驗證的備份資料夾
-
成功率最高
✅ 作法二:備份前先驗證環境
-
確認磁碟空間
-
確認服務帳號權限
-
確認備份位置存在
七、那如果已經卡住了,該不該中斷?
✔️ 可以中斷的情況
-
查不到任何備份進度
-
系統內部沒有對應工作
-
已經卡住很久(例如 20~30 分鐘)
❌ 不要中斷的情況
-
百分比有在跑
-
只是速度慢(大型資料庫很正常)
👉 重點不是「跑多久」,而是「有沒有在跑」
八、給完全沒 DBA 背景的人一句話總結
SQL Server 備份不是「看畫面」,而是「看內部狀態」
看不到進度不代表失敗,
但查不到內部工作,幾乎一定有問題。
九、這篇文章適合誰?
-
軟體工程師(非 DBA)
-
剛接觸資料庫維運的人
-
被交辦「幫忙備份 DB」的新手
-
不想亂停服務、又怕備份失敗的人
留言
張貼留言