還原Sql Server數據庫BAK備份文件的3種方式以及常見錯誤總結
目錄
- 第一種方法,使用Sql Server Management Studio還原
- 常見錯誤:
- 第二種方法,使用sql server語句還原
- 常見錯誤:
- 第三種方法,使用Navicat還原
- 常見錯誤:
- 總結
第一種方法,使用Sql Server Management Studio還原
這是演示的是Sql Server 2008R2版本,不同版本可能有細微差別
右鍵點擊數據庫→還原數據庫
在還原的源中選擇源設備→點擊選擇框
在指定備份中點擊添加→選擇具體文件→確定→確定
勾選用于還原的備份集→這時目標數據庫中會自動生成目標數據庫名,在此選擇即可→確定
即可還原BAK數據庫備份文件
常見錯誤:
1.指定的轉換無效
在選擇具體文件的時候,我們可能會產生這個報錯,導致這個的原因是BAK文件備份中的版本和高于我們的版本,需要部署更高版本的SqlServer。
2.System.Data.SqlClient.SqlError: 尚未備份數據庫 "xxx" 的日志尾部
2005版本以上,在還原BAK備份文件時是不需要提前建好數據庫的。所以,先選源設備,再在下拉選項中選擇數據庫即可。
3.3154或3159報錯
原因和第二點一致,在選擇還原文件和文件組時才會出現這兩個報錯
第二種方法,使用sql server語句還原
ALTER DATABASE [test] SET OFFLINE WITH ROLLBACK IMMEDIATE --斷開其他用戶與數據庫的連接
USE MASTER --這里注意要使用MASTER,以免出現待還原庫被占用的情況
RESTORE DATABASE [test] --為待還原庫名
FROM
DISK = 'C:\Users\xxx\Desktop\exxx_zy.bak' --備份文件的位置
WITH
MOVE 'exxx_zy' --數據文件邏輯名字
TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\exxx_zy.mdf', --指定數據文件路徑
MOVE 'exxx_zy_LOG' --日志文件邏輯名字
TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\exxx_zy.ldf', --指定日志文件路徑
STATS = 10, REPLACE
GOALTER database [test] set online --重新上線數據庫
常見錯誤:
1.邏輯文件 'xxx' 不是數據庫 'test' 的一部分。
文件名不一定是實際的邏輯名,這個時候我們需要獲取文件的邏輯名替換后再執(zhí)行語句。此時執(zhí)行RESTORE FILELISTONLY FROM DISK ='C:\Users\xxx\Desktop\xxx.bak'獲取數據文件和日志文件的LogicalName。
2.設備'xxx.bak'上的介質簇的結構不正確。
出現這個錯誤代表bak文件版本高于目前Sql Server版本,需要升級
第三種方法,使用Navicat還原
這里演示的Navicat版本是16,部分版本可能不太相同
使用Navicat恢復BAK備份文件依舊需要有Sql Server,連接步驟這里省略。
選擇SqlServer任意數據庫→SQL Server備份→空白處鼠標右鍵→選擇從文件還原
選擇需要還原到的數據庫→添加設備→選擇備份文件→確定
勾選還原計劃
選擇高級→勾選WITH REPLACE→選擇數據文件和日志文件存放位置(這里不選擇會默認放置在之前服務器/電腦的地址)→生成SQL
點擊還原
稍等片刻就還原啦
常見錯誤:
1.需要密碼
其實當BAK文件版本高于當前SqlServer版本的時候,也會產生這個提示,這是因為SqlManagerUI的報錯被Navicat理解成了需要密碼。所以當使用Navicat還原BAK文件的時候可以和對方確認一下版本信息,避免造成誤解。
總結
到此這篇關于還原Sql Server數據庫BAK備份文件的3種方式以及常見錯誤總結的文章就介紹到這了,更多相關還原Sql Server數據庫BAK備份文件內容請搜索以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持!
