還原sql server 2000資料庫的坑,不同版本資料庫

myis55555發表於2021-01-22

標題: Microsoft SQL Server Management Studio

------------------------------


附加資料庫 對於 伺服器“XXXX”失敗。  (Microsoft.SqlServer.Smo)


------------------------------

其他資訊:


執行 Transact-SQL 語句或批處理時發生了異常。 (Microsoft.SqlServer.ConnectionInfo)


------------------------------


無法升級資料庫 'XXXDB',因為此版本的 SQL Server 不支援該資料庫的非釋出版本(539)。

不能開啟與此版本的 sqlservr.exe 不相容的資料庫。必須重新建立該資料庫。

無法開啟新資料庫 'XXXDB'。CREATE DATABASE 中止。 (Microsoft SQL Server,錯誤: 950)


------------------------------

還原資料庫的時候遇到如上問題,發現是因為將sql server 2000的備份檔案,在sql server2014版本上還原的結果。

經過檢索得知:原來539 是Sql Server2000資料庫的內部版本號,也就是說要附加的資料庫檔案是由Sql Server 2000建立的,但是我們知道Sql Server 2014 資料庫是不相容Sql Server 2000資料庫的。

檢視sql server的內部版本號

SELECT DATABASEPROPERTYEX('MASTER','VERSION');




要解決這個問題,需要藉助 sql server 2005或sql server 2008.


方法一:

如果電腦裡安裝了SQL2005或Sql server 2008的話,也可以先用SQL2005或Sql server 2008直接還原SQL2000的bak檔案,

然後在SQL2005或Sql Server 2008下備份後生成X.bak備份集,最後可以直接用SQL2008的SSMS還原,

或者是附加資料庫,附加方法同下面操作相同。


方法二:(mdf檔案也需要先借助sql server 2008以下版本還原。)

1.如果沒有就先將bak檔案用sql2000還原後就在C:\Program Files\Microsoft SQL Server 下面的一個data檔案裡就有了。

記得要同時考出兩個檔案x.mdf和x.ldf。

2,將檔案的屬性取消只讀屬性,然後確定。

3,開啟SSMS後連線好伺服器,然後附加資料庫,選中mdf檔案,記得mdf檔案必須和ldf檔案放在同一個位置, 否則可能會失敗。

4,最後一步就是點確定執行,只要沒有報錯就是成功了,重啟電腦後開啟ssms看見資料庫裡多了個剛還原的資料庫。


注意:

  • Sql server 2014 要還原Sql server2000的資料庫,必須透過 Sql server 2005 或 Sql server 2008做中介,

    先轉一次,再備份,再到Sql server 2014上面還原。

  • 將sql server2000的備份資料還原到sql server 2008中關鍵是一定不要建立一個新的資料庫檔案(還原會出錯),

    而是直接還原的時候在目標資料庫處給待還原的資料庫起個名字就可以了!

  • 直接將sqlserver2000的備份還原到sqlserver2014是不行的,你需要一個sqlserver2008來做中轉。

  • 將sqlserver2000的資料還原到sqlserver2008,再將sqlserver2008的備份還原到sqlserver2014。

  • 2008到2014,操作和2000到2008一樣,只是使用的bak檔案不同。


參考文獻:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69903557/viewspace-2752109/,如需轉載,請註明出處,否則將追究法律責任。

相關文章