已备份数据库的磁盘结构版本为611,服务器支持版本为539,无法还原或升级数据库。RESTORE FILELIST 操作异常结束。(MicrosoftSQL Server,错误:3169)

来源:互联网 发布:软件测试原则包括 编辑:程序博客网 时间:2024/04/29 14:50

今天媳妇儿去维护用友的财务软件,在还原账套的时候,数据库报下面的错误

已备份数据库的磁盘结构版本为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上重建然后将数据导入。

 

MSDNDATABASEPROPERTYEX‘Version’选项的解释:用于创建数据库的 SQL Server 代码的内部版本号。仅供 SQLServer工具在内部用于升级处理


1 0
原创粉丝点击