已備份資料庫的磁碟結構版本為611,伺服器支援版本為539,無法還原或升級資料庫

來源:互聯網
上載者:User

大家都知道進階版本的資料庫檔案無法還原或者附加到低版本,因為高版本和低版本檔案格式會有不同。如果嘗試將低版本的資料庫附加或者還原到低版本的資料庫會看到類似下面的錯誤:

 

已備份資料庫的磁碟結構版本為611,伺服器支援版本為539,無法還原或升級資料庫。RESTORE FILELIST 操作異常結束。MicrosoftSQL Server,錯誤:3169)

 

大家可以看到這裡有兩個版本號碼,不是我們平時看到的伺服器版本號碼(select @@version),而是SQLServer內部資料庫版本號碼。這些版本號碼是沒有官方文檔的。不過我們可以使用DATABASEPROPERTYEX ‘Version’選項獲得這個版本號碼。

 

select DATABASEPROPERTYEX('master','version')

 

這裡我從網上找到了所有SQLServer版本對應的內部資料庫版本號碼的配置表(ternal SQL Server Database Version Numbers):

 

 

Target SQL Server Version

 

Source SQL Server Version

 

Internal Database Version

 

SQL Server 2008 R2

 

SQL Server 2008 R2

 

665

 

SQL Server 2008

 

661

 

SQL Server 2005 with vardecimal enabled

 

612

 

SQL Server 2005

 

611

 

SQL Server 2000

 

539

 

SQL Server 2008

 

SQL Server 2008

 

661

 

SQL Server 2005 with vardecimal enabled

 

612

 

SQL Server 2005

 

611

 

SQL Server 2000

 

539

 

SQL Server 2005 SP2+

 

SQL Server 2005 with vardecimal enabled

 

612

 

SQL Server 2005

 

611

 

SQL Server 2000

 

539

 

SQL Server 7

 

515

 

SQL Server 2005

 

SQL Server 2005

 

611

 

SQL Server 2000

 

539

 

SQL Server 7

 

515

 

SQL Server 2000

 

SQL Server 2000

 

539

 

SQL Server 7

 

515

 

SQL Server 7

 

SQL Server 7

 

515

 

通過這張配置表可以看到出錯原因是嘗試將2005的備份檔案還原到2000。如果沒有2005版本的話,只能將2005的資料庫指令碼匯出在2000上重建然後將資料匯入。

 

MSDN上DATABASEPROPERTYEX‘Version’選項的解釋:

用於建立資料庫的 SQL Server 代碼的組建號。僅供 SQLServer工具在內部用於升級處理。

本文出自 “關注SQL Server技術” 部落格,請務必保留此出處http://lzf328.blog.51cto.com/1196996/1096020

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.