還原數據庫失敗:設備上的媒體簇的結構不正確,錯誤:3241


在還原數據庫的時候,會遇到如下提示,設備 'D:\aaa.bak' 上的介質簇的結構不正確。SQL Server 無法處理此介質簇
產生的原因有3種:
一、備份bak文件和你要還原過去的程序版本不一致,可以通過select @@version查看2邊的具體版本。一般大版本一致就基本沒問題。
二、備份bak文件拷貝的過程中損壞了或者變小了,比如原來是5G,考過去變成了4.9G,那還原肯定就要報錯,解決辦法就是把bak打包考過去。(比如有時候通過堡壘機進行傳文件,或者共享傳文件容易出現)
三、備份的bak文件有多個,你考的時候少考了,考得不完整導致的。

 

針對版本不對導致的異常(一般是高版本的數據庫備份在低版本中還原,不兼容導致),可通過如下方式解決:

在備份的SQL Server 2012 數據庫上生成腳本語言,然后在SQL Server 2008R2上執行。

1、首先把要把sql2012中要備份的數據庫設置為兼容2008. 右鍵sql2012中的數據庫Test-屬性-選項  看到如下圖      
 
如何把高版本的sqlserver <wbr>還原到低版本的 <wbr>sqlserver?
2、右鍵Test-任務-生成腳本,下一步-下一步到達下圖,點 高級  選項。把script for sql  version 改成你要降級的那個版本 也就是sql2008.確定完成即可。會生成一個script.sql
腳本文件。

 

3、下一步要把sqlserver2012源文件復制到另外一個電腦上。由於SqlServer正在運行 是無法復制的。所以首先要停止sqlserver服務。
如何把高版本的sqlserver <wbr>還原到低版本的 <wbr>sqlserver?

4、找到你這個sql2012數據庫在電腦中的位置。 右鍵這個數據庫-文件 會有路徑,復制出這兩個文件來。 至此 sqlserver2012的電腦操作完成
     如何把高版本的sqlserver <wbr>還原到低版本的 <wbr>sqlserver?
 
 
 
5、把上面得到的script.sql 文件和兩個數據源文件復制到sql2008所在的電腦中。在sql2008中  新建-查詢管理器。把script.sql拖進去,會看到代碼。
如何把高版本的sqlserver <wbr>還原到低版本的 <wbr>sqlserver?

     注意綠色部分。此時顯示的數據庫文件位置是sql2012電腦的位置。我們需要把這兩個地址改為 sql2008R2 中 你復制過來的那兩個源文件的地址即可。運行F5執行  成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM