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