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