如何使用 SQL Server Management Studio還原 .bak 備份文件
在日常運(yùn)維或開發(fā)過程中,我們經(jīng)常需要將 SQL Server 數(shù)據(jù)庫的 .bak 備份文件 恢復(fù)到新的環(huán)境或本地測試環(huán)境。無論你是數(shù)據(jù)庫管理員、后端開發(fā)工程師,還是剛開始接觸 SQL Server,本篇文章都將教你如何通過 SQL Server Management Studio(SSMS) 進(jìn)行 .bak 文件的完整還原。
下面將以最常見的 SSMS 圖形界面操作為例,詳細(xì)說明整個(gè)恢復(fù)流程,以及常見問題的解決辦法。
? 適用版本
- SQL Server 2008 / 2012 / 2014 / 2016 / 2017 / 2019 / 2022
- SSMS 各版本(18.x / 19.x)
一、準(zhǔn)備工作
在開始操作之前,你需要:
- 一個(gè) SQL Server 數(shù)據(jù)庫實(shí)例(本地或遠(yuǎn)程)
- 已安裝的 SQL Server Management Studio(SSMS)
- 一份
.bak備份文件
提示:
如果你的 .bak 文件來自其他服務(wù)器,它內(nèi)部記錄的物理文件路徑(MDF/LDF)可能與本機(jī)不一致,這點(diǎn)在后文會(huì)講到。
二、通過 SSMS 還原 .bak 文件(核心步驟)
以下為圖形化界面操作步驟,簡單易上手。
步驟 1:打開 SSMS 并連接數(shù)據(jù)庫
啟動(dòng) SSMS,輸入你的 SQL Server 地址與賬號(hào)密碼,連接到目標(biāo)實(shí)例。
步驟 2:右鍵 Databases → Restore Database…
在左側(cè)對(duì)象資源管理器中:
Databases(數(shù)據(jù)庫) → 右鍵 → Restore Database…(還原數(shù)據(jù)庫)
進(jìn)入還原界面。
步驟 3:選擇備份來源(Source)
在 Source 中選擇:
? Device(設(shè)備)
然后點(diǎn)擊右側(cè)的 […] 按鈕。
步驟 4:添加 .bak 文件
在彈出的窗口中:
- 點(diǎn)擊 Add(添加)
- 找到你的
.bak文件路徑 - 添加后點(diǎn)擊 OK
你會(huì)看到備份集被列在下方表格里。
步驟 5:選擇還原目標(biāo)數(shù)據(jù)庫(Destination)
在 “Destination” 部分:
- 如果你是恢復(fù)一個(gè)新數(shù)據(jù)庫,可以輸入一個(gè)新的數(shù)據(jù)庫名稱;
- 如果你要覆蓋已有數(shù)據(jù)庫,保持名稱一致即可。
步驟 6:進(jìn)入 Options(重要設(shè)置)
左側(cè)選擇 Options,幾個(gè)常用且重要的選項(xiàng)如下:
? Overwrite the existing database (WITH REPLACE)
如果你要覆蓋現(xiàn)有數(shù)據(jù)庫,一定要勾選。
? Close existing connections
如果某個(gè)數(shù)據(jù)庫正在被占用(常見于生產(chǎn)庫或多人環(huán)境),必須勾選此項(xiàng)才能關(guān)閉連接。
? Restore As(文件路徑修正)
如果恢復(fù)時(shí)報(bào)錯(cuò) ...cannot open the physical file…,這里可以修改 MDF/LDF 的路徑到你本地存在的目錄。
步驟 7:點(diǎn)擊 OK 開始恢復(fù)
等待數(shù)秒到數(shù)分鐘即可看到:
Database restored successfully
至此,你已經(jīng)成功通過 SSMS 完整恢復(fù)了一個(gè) .bak 數(shù)據(jù)庫!
三、還原數(shù)據(jù)庫常見錯(cuò)誤與解決辦法
以下是經(jīng)常遇到的問題及解決方法。
1. 無法訪問備份文件(錯(cuò)誤 3201)
原因是 SQL Server 服務(wù)賬號(hào)沒有權(quán)限訪問你放 .bak 文件的目錄。
解決方法:
把 .bak 文件移動(dòng)到 SQL Server 默認(rèn)的 Backup 目錄,例如:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\
2. 數(shù)據(jù)庫正在使用,無法覆蓋
報(bào)錯(cuò)提示:
The tail of the log for the database has not been backed up...
解決方法:
? 勾選
- Close existing connections
- Overwrite (WITH REPLACE)
? 3. 邏輯路徑不一致導(dǎo)致報(bào)錯(cuò)(常見于不同機(jī)器遷移)
報(bào)錯(cuò)類似:
Cannot open the physical file “D:\DBDATA\xxx.mdf”
原因:備份文件內(nèi)部的 MDF/LDF 物理路徑與你本機(jī)不一致。
解決方案:
在 Options → Relocate all files 修改路徑為本機(jī)存在的路徑,例如:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\
四、T-SQL 命令行還原(可選)
如果你喜歡用腳本,也可以用命令行方式還原:
RESTORE DATABASE MyDB FROM DISK = 'D:\backup\mydb.bak' WITH REPLACE, MOVE 'MyDB' TO 'C:\SQLDATA\MyDB.mdf', MOVE 'MyDB_log' TO 'C:\SQLDATA\MyDB_log.ldf';
適用于自動(dòng)化腳本或批量操作。
五、總結(jié)
通過 SQL Server Management Studio 還原 .bak 文件的過程其實(shí)很簡單,只需幾分鐘即可完成。關(guān)鍵步驟在于:
- 選擇 Device 添加 .bak 文件
- 配置目標(biāo)數(shù)據(jù)庫
- Options 中處理文件路徑與覆蓋數(shù)據(jù)庫問題
- 解決權(quán)限和路徑不一致的常見錯(cuò)誤
無論你是在本地開發(fā)環(huán)境恢復(fù)數(shù)據(jù),還是在服務(wù)器遷移數(shù)據(jù)庫,相同的流程都非常適用。
到此這篇關(guān)于如何使用 SQL Server Management Studio還原 .bak 備份文件的文章就介紹到這了,更多相關(guān)SQL Server Management Studio還原.bak文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL Server中參數(shù)化SQL寫法遇到parameter sniff ,導(dǎo)致不合理執(zhí)行計(jì)劃重用的快速解決方法
這篇文章主要介紹了SQL Server中參數(shù)化SQL寫法遇到parameter sniff ,導(dǎo)致不合理執(zhí)行計(jì)劃重用的快速解決方法的相關(guān)資料,需要的朋友可以參考下2016-07-07
SQL Server 2005降級(jí)到2000的正確操作步驟分享
這篇文章主要和大家一起分享的是SQL Server 2005導(dǎo)入到SQL Server 2000的正確操作步驟,下面就是文章的主要內(nèi)容描述2014-04-04
清空MSSQL日志 與set recovery simple
清空MSSQL日志 與set recovery simple...2007-10-10
SQL Server 不刪除信息重新恢復(fù)自動(dòng)編號(hào)列的序號(hào)的方法
SQL Server 不刪除信息重新恢復(fù)自動(dòng)編號(hào)列的序號(hào)的方法...2007-11-11
sqlserver之datepart和datediff應(yīng)用查找當(dāng)天上午和下午的數(shù)據(jù)
這篇文章主要介紹了sqlserver之datepart和datediff應(yīng)用查找當(dāng)天上午和下午的數(shù)據(jù),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
SQL?server數(shù)據(jù)庫日志文件收縮操作方法
日常使用數(shù)據(jù)庫可能存在日志每天增長10G或以上,太恐怖了!數(shù)據(jù)量過大導(dǎo)致服務(wù)器卡死,內(nèi)存溢出,執(zhí)行Sql過慢等問題,這篇文章主要給大家介紹了關(guān)于SQL?server數(shù)據(jù)庫日志文件收縮操作的相關(guān)資料,需要的朋友可以參考下2024-02-02

