如何轉(zhuǎn)換SQL Server2008數(shù)據(jù)庫到SQL Server 2005?
當(dāng)前位置:點晴教程→點晴OA辦公管理信息系統(tǒng)
→『 安裝指引&開發(fā)建議 』
背景介紹: 公司一套系統(tǒng)使用的是SQL SERVER 2008數(shù)據(jù)庫,突然一天收到郵件,需要將這套系統(tǒng)部署到各個不同地方(海外)的工廠,需要在各個工廠部署該數(shù)據(jù)庫,等我將準(zhǔn)備工作做好,整理文檔的時候,坑爹的事情發(fā)生了,居然發(fā)現(xiàn)有兩三個工廠使用的還是SQL SERVER 2005數(shù)據(jù)庫,要命的是這幾個工廠沒有SQL SERVER 2008的數(shù)據(jù)庫服務(wù)器。而其中兩個正準(zhǔn)備做服務(wù)器的遷移升級,但是IBM的存儲還沒有到,沒辦法,這么”反人類,阻擋歷史進(jìn)程“的事情就發(fā)生了,我以為這種小概率的事情永遠(yuǎn)都不會發(fā)生在我身上。好在這個數(shù)據(jù)庫不大,才200M。于是才有下面文章的總結(jié)。 由于SQL Server 2008數(shù)據(jù)庫轉(zhuǎn)換到SQL Server 2005上,是不能通過備份還原、分離附加等操作來實現(xiàn)的,只能通過數(shù)據(jù)的導(dǎo)入導(dǎo)出實現(xiàn)。方法大致有幾種: 1:通過Generate Scripts(包括數(shù)據(jù)) ,這個方法呢,如果對于很小的數(shù)據(jù)庫,倒是一個非常方便的方法。注意前提是數(shù)據(jù)庫很小,如果數(shù)據(jù)庫很大,那你千萬別選這個方法,SQL導(dǎo)入數(shù)據(jù)的性能會折磨死你。 2:通過Generate Scripts(生成表、視圖等),然后使用SQL Server Import and Export Tool導(dǎo)入數(shù)據(jù) 3: Red Gate SQL Compare 工具 關(guān)于性能對比呢,這位老兄的文章"不同版本的SQL Server之間數(shù)據(jù)導(dǎo)出導(dǎo)入的方法及性能比較 " 已經(jīng)做了詳細(xì)的測試,下面只是介紹、總結(jié)轉(zhuǎn)換SQL Server 2008數(shù)據(jù)庫到SQL Server 2005的操作步驟。 Generate Scripts Step 1: 單擊某個需要轉(zhuǎn)換的數(shù)據(jù)庫,然后選擇任務(wù)(Tasks)——生成腳本(Generate Scripts) Step 2: 彈出生成腳本指導(dǎo)界面 Step 3:選擇需要導(dǎo)出的數(shù)據(jù)庫對象,有導(dǎo)出整個數(shù)據(jù)庫對象和選擇指定數(shù)據(jù)庫對象兩個選項 Step 4: 設(shè)置生成腳本選項,例如指定腳本位置,腳本文件的編碼等等選擇,最重要的是高級選項”Advanced“ 如下所示,優(yōu)選在”Script for Server Version“ 里面選擇”SQL Server 2005“等選項 測試服務(wù)器這個版本里面沒有''Script Data”(生成數(shù)據(jù)的腳本)選項,如下所示,如果你要通過腳本插入數(shù)據(jù),那么就必須選擇這個選項。 Step 5: Summray your selections, 點擊Next繼續(xù) Step 6: 執(zhí)行過程。完成后即生成了相應(yīng)腳本文件。 將生成的腳本在另外一臺測試服務(wù)器執(zhí)行,創(chuàng)建相應(yīng)的數(shù)據(jù)庫以及數(shù)據(jù)庫對象。然后點擊”SQL Server Import and Export“工具進(jìn)行數(shù)據(jù)導(dǎo)入,操作步驟如下所示: SQL Server Import and Export Step 1: 歡迎界面,點擊Next跳過。 Step 2: 選擇數(shù)據(jù)源(Data Source),我們需要選擇“SQL Server Native Client 10”, 輸入身份認(rèn)證信息,我選擇Windows 身份認(rèn)證。選擇 需要導(dǎo)出數(shù)據(jù)的數(shù)據(jù)庫,例如,我選擇一個測試數(shù)據(jù)庫TSL Step 3:配置需要導(dǎo)入的Destination,選擇對應(yīng)的服務(wù)器和數(shù)據(jù)庫 Step 4:兩個選擇,選項1是用于整個表或視圖導(dǎo)入導(dǎo)出,選項2用于書寫查詢SQL或?qū)雽?dǎo)出 Step 5: 勾選你需要導(dǎo)數(shù)的腳本,單擊Source旁邊的選項,即可選擇全部對象。有時候需要編輯“Edit Mappings"選項,勾選”Enable identity Insert“,否則會導(dǎo)致后面導(dǎo)入導(dǎo)出報錯 Step 6: 勾選立即執(zhí)行,點擊Next執(zhí)行下一步 Step 7 : 執(zhí)行過程,需要檢查是否執(zhí)行成功,查看相關(guān)出錯信息。 執(zhí)行完成后,然后在測試服務(wù)器將該數(shù)據(jù)庫備份壓縮后,通過FTP上傳到各個工廠,進(jìn)行還原。關(guān)于 Red Gate SQL Compare的操作,也非常方便簡單,由于測試過程中沒有截圖,就此略過。 由于測試用的數(shù)據(jù)庫比較小,不知道比較大的數(shù)據(jù)庫,例如幾百G的數(shù)據(jù),操作起來是否會遇到性能等雜七雜八的問題。不過相信很多人是不會遇到這么奇葩的案例的。例如使用導(dǎo)入導(dǎo)出工具,其實就會遇到一些小問題(以前遇到的): 1:在驗證時出現(xiàn)錯誤,錯誤信息如下所示:
- Validating (Error) Messages * Error 0xc02020f4: Data Flow Task 1: The column "xxxx" cannot be processed because more than one code page (936 and 1252) are specified for it. (SQL Server Import and Export Wizard) * Error 0xc02020f4: Data Flow Task 1: The column "xxxx" cannot be processed because more than one code page (936 and 1252) are specified for it. (SQL Server Import and Export Wizard) 解決:檢查你源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的排序規(guī)則是否不一致,如果不一致,就會出現(xiàn)大量上面錯誤。 2:在驗證時出現(xiàn)下面錯誤信息 - Validating (Error) Messages * Error 0xc0202049: Data Flow Task 1: Failure inserting into the read-only column "xxxxx". (SQL Server Import and Export Wizard) * Error 0xc0202045: Data Flow Task 1: Column metadata validation failed. (SQL Server Import and Export Wizard) 解決:出現(xiàn)這個錯誤,是因為這一列是自動增長,需要在”Edite Mappings" 選項里面勾選“Enable Identity Insert”選項,如果數(shù)據(jù)庫里面有大量這類列,是個頭疼的問題。 該文章在 2017/4/5 9:56:32 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |