從舊版本SQL Server中重新存儲(chǔ)數(shù)據(jù)
SQL Server有幾個(gè)版本都在使用中——4.2, 6.0, 6.5, 7.0, 2000,現(xiàn)有又有了2005——你很有可能會(huì)需要從以前的版本中重新存儲(chǔ)數(shù)據(jù)庫(kù)到后面的版本中。
微軟在7.0版本中對(duì)數(shù)據(jù)庫(kù)引擎的工作方式和數(shù)據(jù)的存儲(chǔ)方式作了一些非常巨大的變化。這就使得從7.0版本之前的SQL Server中重新存儲(chǔ)數(shù)據(jù)的方式變得不那么直接。
7.0,2000和2005版本的SQL Server允許你將數(shù)據(jù)庫(kù)重新存儲(chǔ)到稍后的SQL Server版本中。7.0版本之前的任何東西都需要數(shù)據(jù)移植,在這個(gè)過(guò)程中你必須實(shí)際地將數(shù)據(jù)從原有的SQL Server版本中移動(dòng)出來(lái),再放入新的SQL Server版本中。
既然最新的版本是2005,那么我就討論一下如何將數(shù)據(jù)從原有的SQL Server版本中移動(dòng)到最新的數(shù)據(jù)庫(kù)管理系統(tǒng)發(fā)布版本中。無(wú)論如何,這些技術(shù)同樣也可以應(yīng)用在7.0或者2000版本上。
從7.0之前版本的SQL Server中重新存儲(chǔ)數(shù)據(jù)
我前面提到了,沒(méi)有這樣的一種直接方式可以將早于7.0版本之前的數(shù)據(jù)庫(kù)中的數(shù)據(jù)僅僅是備份然后就重新存儲(chǔ)這么簡(jiǎn)單直接。要將數(shù)據(jù)移動(dòng)到SQL Server 2005中,就必須完成某些類(lèi)型的數(shù)據(jù)移植,有可能是通過(guò)創(chuàng)建一個(gè)SSIS包,建立一個(gè)到你原有數(shù)據(jù)庫(kù)版本的ODBC源?;蛘撸憧梢允褂肂CP(塊拷貝程序)來(lái)將數(shù)據(jù)從原有的版本中移出來(lái),移入SQL Server 2005數(shù)據(jù)庫(kù)。
沒(méi)有一種方式可以直接從備份文件中抽取數(shù)據(jù)。所以如果你只有一個(gè)你的數(shù)據(jù)庫(kù)的備份拷貝,那么你就需要找到一個(gè)原有版本的SQL Server ,或者安裝磁盤(pán)來(lái)建立起那個(gè)版本的SQL Server來(lái)重新存儲(chǔ)數(shù)據(jù)。
SQL Server 7.0及其以后版本的重新存儲(chǔ)
只要簡(jiǎn)單地從你的備份中重新存儲(chǔ)數(shù)據(jù)庫(kù)。這項(xiàng)工作就像你曾經(jīng)作過(guò)的任何重新存儲(chǔ),要么使用GUI工具,要么是T-SQL命令。看看這些文章,了解如何執(zhí)行重新存儲(chǔ):
·使用企業(yè)管理器來(lái)重新存儲(chǔ) SQL Server
·使用T-SQL 命令來(lái)重新存儲(chǔ)SQL Server
·從事務(wù)日志中重新存儲(chǔ)SQL Server
·從另外一個(gè)SQL Server中重新存儲(chǔ)數(shù)據(jù)庫(kù)
用7.0之前的版本,你可以使用數(shù)據(jù)移植處理進(jìn)程將你的數(shù)據(jù)從原有版本的SQL Server中移動(dòng)到新的版本中。這種方式要求兩個(gè)數(shù)據(jù)庫(kù)都必須是在線的。
你還可以使用attach 和detach兩個(gè)選項(xiàng)來(lái)將你的數(shù)據(jù)庫(kù)從原有版本中移植到新的版本中。
重新存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(kù)
需要提出的一個(gè)說(shuō)明就是你可以重新存儲(chǔ)用戶(hù)數(shù)據(jù)庫(kù),但是你不能從先前的版本中重新存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(kù)到新的SQL Server版本中。當(dāng)SQL Server改善功能的時(shí)候,大多數(shù)的修改都是存儲(chǔ)在相同數(shù)據(jù)庫(kù)中。新表的創(chuàng)建和原有表的修改(為什么你不能使用直接使用系統(tǒng)表的原因)都讓重新存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(kù)變得不可能。
你可以使用SSIS或者BCP方式來(lái)移植數(shù)據(jù)或者你在這些數(shù)據(jù)庫(kù)中創(chuàng)建的新的對(duì)象,但是你不能移動(dòng)整個(gè)數(shù)據(jù)庫(kù)。
更新用戶(hù)和登錄信息
當(dāng)重新存儲(chǔ)數(shù)據(jù)庫(kù)到一個(gè)完全不同的SQL Server實(shí)例環(huán)境中需要時(shí)刻記住的一個(gè)問(wèn)題就是,用戶(hù)和登錄信息需要更新以確保數(shù)據(jù)庫(kù)認(rèn)證可以按照計(jì)劃工作。參考從其它的SQL Server中重新存儲(chǔ)數(shù)據(jù)庫(kù),學(xué)習(xí)如何進(jìn)行。
正如你看到的,從SQL Server 7.0開(kāi)始,微軟已經(jīng)開(kāi)始讓數(shù)據(jù)庫(kù)管理員感覺(jué)到,把數(shù)據(jù)從比較老版本的SQL Server中移植到較新的版本中是相當(dāng)簡(jiǎn)單的了。這個(gè)想法通常還包括一些向后的兼容。但是這個(gè)功能還會(huì)存在多久?它在SQL Server 2005中確實(shí)存在,但是下一個(gè)名為Katmai的SQL Server的發(fā)布版本會(huì)不會(huì)向后兼容,只有時(shí)間才知道了。
