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