如何從 Bak 文件中恢復(fù) SQL 數(shù)據(jù)庫(kù)?(3種方法)
如何從 Bak 文件中恢復(fù) SQL 數(shù)據(jù)庫(kù)?以下是您可以嘗試的 3 種方法,以及一種簡(jiǎn)單的替代方法,可幫助您靈活地從備份中恢復(fù)數(shù)據(jù)庫(kù)。
如何從 Bak 文件中恢復(fù) SQL 數(shù)據(jù)庫(kù)?以下是您可以嘗試的 3 種方法,以及一種簡(jiǎn)單的替代方法,可幫助您靈活地從備份中恢復(fù)數(shù)據(jù)庫(kù)。
成功備份SQL Server后,您將獲得一個(gè) bak 文件,可用于通過(guò) SSMS、Transact-SQL、命令行等方式從備份恢復(fù)sql數(shù)據(jù)庫(kù)。
在這篇文章中,我將介紹這些常用的方法,以及一種從 Bak 文件中恢復(fù) SQL 數(shù)據(jù)庫(kù)的簡(jiǎn)單替代方法。繼續(xù)閱讀并選擇您喜歡的方式。
“注意”:以下所有方法僅支持將數(shù)據(jù)庫(kù)從低版本還原到相同或更高版本,例如從SQL Server2012 到 2016。如果要將數(shù)據(jù)庫(kù)遷移到更低版本,請(qǐng)參考這里指導(dǎo).
與備份一樣,SSMS 還包括一個(gè)還原向?qū)В芍庇^地指導(dǎo)您完成整個(gè)過(guò)程。要使用它,請(qǐng)連接到您要將數(shù)據(jù)庫(kù)恢復(fù)到的實(shí)例。
1. 右鍵單擊??數(shù)據(jù)庫(kù)并在菜單中選擇恢復(fù)數(shù)據(jù)庫(kù)...。
2. 在彈出的窗口中,選擇“Source”作為Device,然后點(diǎn)擊...圖標(biāo)“添加”bak文件。如果找不到,請(qǐng)定位到它的保存路徑并輸入它的全名(包括.bak)來(lái)指定它。
3.如果沒(méi)有問(wèn)題,備份信息將顯示在Restore Database窗口中,然后您可以單擊“確定”從bak文件中恢復(fù)SQL數(shù)據(jù)庫(kù)。
除了按照向?qū)нM(jìn)行操作外,您還可以使用查詢?cè)赟QL Server中恢復(fù)數(shù)據(jù)庫(kù)。只要您了解 T-SQL 語(yǔ)句,這實(shí)際上是一種更簡(jiǎn)單的從bak文件命令行恢復(fù)sql數(shù)據(jù)庫(kù)的方法。
1. 單擊“新建查詢”打開(kāi) SQLQuery 窗口。在其中輸入恢復(fù)命令:
例如,如果我想從 D:\Backup 中的完整備份“example.bak”恢復(fù) SQL數(shù)據(jù)庫(kù)“example”,那么命令將是:
2. 點(diǎn)擊“執(zhí)行”按鈕運(yùn)行命令,您將在下面的“消息”中看到備份狀態(tài)。
要從差異備份中恢復(fù),您需要提前用 WITH NORECOVERY 恢復(fù)上一次完整備份,因此命令將如下所示:
“注意:”第一個(gè)bak文件應(yīng)該是完整備份文件,第二個(gè)應(yīng)該是差異備份文件。
在還原過(guò)程中,您可能會(huì)收到一條錯(cuò)誤消息“數(shù)據(jù)庫(kù)的日志尾部尚未備份。如果日志包含您不想丟失的工作,請(qǐng)使用 BACKUP LOG WITH NORECOVERY 備份日志。使用 RESTORE 語(yǔ)句的 WITH REPLACE 或 WITH STOPAT 子句來(lái)覆蓋日志的內(nèi)容”。
這是因?yàn)槟鷩L試還原的備份文件比目標(biāo)數(shù)據(jù)庫(kù)舊。要解決它,您可以按照消息中提到的提示進(jìn)行操作:
1. 事先用 WITH NORECOVERY 備份事務(wù)日志,然后再次嘗試恢復(fù) bak 文件。
2. 使用 WITH REPLACE 或 WITH STOPAT 子句恢復(fù)數(shù)據(jù)庫(kù)。
或者,您可以使用命令行恢復(fù) SQL 數(shù)據(jù)庫(kù),而無(wú)需啟動(dòng) SSMS - 這需要 SQLCMD,它在 2014 年及更低版本中隨SQL Server一起提供。如果您正在運(yùn)行更高版本,請(qǐng)下載它這里.
在上一篇文章中,我已經(jīng)解釋了如何使用命令行備份SQL Server數(shù)據(jù)庫(kù),您可以點(diǎn)擊鏈接以獲取更多詳細(xì)信息。這里我將重點(diǎn)介紹如何從 Bak 文件中恢復(fù) SQL 數(shù)據(jù)庫(kù)。
1、按Win+R,在輸入框中輸入“cmd”。單擊“確定”以打開(kāi)命令提示符。
2. 然后,將此命令與您自己的服務(wù)器名稱和文件路徑一起使用:
就我而言,它應(yīng)該是:
如果要使用命令行恢復(fù)差異備份,可以先用 WITH NORECOVERY 恢復(fù)完整備份,再用 WITH RECOVERY 恢復(fù)差異備份:
“注意:”第一個(gè)bak文件應(yīng)該是完整備份文件,第二個(gè)應(yīng)該是差異備份文件。
與上一種方法類似,如果遇到“數(shù)據(jù)庫(kù)的日志尾部沒(méi)有備份”錯(cuò)誤,可以提前 BACKUP LOG WITH NORECOVERY:
或者用 REPLACE 或 WITH STOPAT 恢復(fù)數(shù)據(jù)庫(kù):
從Bak 文件中恢復(fù) SQL 數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)主要是靈活性。例如,您可以備份 SQL數(shù)據(jù)庫(kù)并恢復(fù)到另一臺(tái)服務(wù)器. 但上述方法要么比較繁瑣,要么需要一定的 SQL 知識(shí)。作為補(bǔ)充,我想介紹一下傲梅企業(yè)備份網(wǎng)絡(luò)版,它可以在所有聯(lián)網(wǎng)的Windows PC或服務(wù)器之間集中備份和恢復(fù)SQL Server數(shù)據(jù)庫(kù)。
此軟件適用于 Windows 10/8.1/8/7/Vista/XP、Windows Server/2003/2008 (R2)/2012 (R2)/2016、Windows SBS 2003/2008/2011、Windows Home Server 2011 (32/64 -少量)。
其SQL Server備份功能支持SQL Server2005 至 2019,使您能夠一次備份或恢復(fù)多個(gè)數(shù)據(jù)庫(kù)。整個(gè)操作通過(guò)簡(jiǎn)單的點(diǎn)擊完成,無(wú)需專業(yè)知識(shí)。
這是一個(gè)180天的免費(fèi)試用期:
? 如何備份SQL Server數(shù)據(jù)庫(kù):
1.正確安裝軟件并獲得對(duì)您要管理的客戶端計(jì)算機(jī)的控制權(quán)(當(dāng)然,您可以控制自己的機(jī)器)。
然后在Home選項(xiàng)卡中選擇SQL Server 備份。
2.在步驟1中,單擊“+添加計(jì)算機(jī)”以檢測(cè)您控制的計(jì)算機(jī)(帶有SQL數(shù)據(jù)庫(kù)),然后選擇一臺(tái)進(jìn)行備份。
3.在步驟2中,點(diǎn)擊“+添加”,檢測(cè)計(jì)算機(jī)上的所有實(shí)例,并選擇一個(gè)或多個(gè)數(shù)據(jù)庫(kù)進(jìn)行備份。您甚至可以選擇整個(gè)實(shí)例。
4. 在步驟 3. 單擊“添加存儲(chǔ)”以指定共享或 NAS 設(shè)備作為存儲(chǔ)端。然后“開(kāi)始備份”。
? 如何從備份中恢復(fù) SQL數(shù)據(jù)庫(kù):
1. 創(chuàng)建備份任務(wù)后,它將顯示在“任務(wù)”選項(xiàng)卡中。找到你想要的,點(diǎn)擊右上角的“高級(jí)”,然后選擇“恢復(fù)”。
2. 選擇您要恢復(fù)的計(jì)算機(jī)及其數(shù)據(jù)庫(kù)。如果您已多次備份它們(完整或差異),您還可以在右上角選擇要恢復(fù)的特定備份。
3. 您可以將這些數(shù)據(jù)庫(kù)恢復(fù)到原始位置或新位置。使用第二個(gè)選項(xiàng),您可以直接將數(shù)據(jù)庫(kù)還原到另一個(gè) SQL Server。然后,單擊“開(kāi)始還原”以執(zhí)行它。
本文提供了 3 種從Bak 文件中恢復(fù) SQL 數(shù)據(jù)庫(kù)的方法。其實(shí),您也可以使用有效的第三方軟件——傲梅企業(yè)備份網(wǎng)絡(luò)版版,更直觀地管理SQL Server備份和恢復(fù)。
它適用于局域網(wǎng)內(nèi)的所有 PC 和服務(wù)器。而且它支持的數(shù)據(jù)類型不僅是SQL數(shù)據(jù)庫(kù),還包括計(jì)算機(jī)文件、操作系統(tǒng)、分區(qū)和磁盤。