王娟 沈麗娟 王慧
(山東省水文局,山東濟南 250002)
SQL Server7.0是SQL Server的早期版本,雖然微軟近期推出了最新版的SQL Server 2019,但是由于服務器設備更新緩慢及使用數據庫的應用系統升級滯后等各種原因,仍然有相當數量的單位和部門在使用低版本的SQL Server數據庫管理系統。隨著硬件設備性能的不斷提升,計算機操作系統的更新迭代,低版本的數據庫管理系統已出現了很多與操作系統的兼容性問題,甚至無法在新的操作系統上安裝運行,因此低版本SQL Server的升級更新終將是數據庫用戶需要面對的問題[1]。筆者目前就遇到了這樣的問題,通過查閱資料和分析操作,最終實現了數據庫由SQL Server7.0至SQL Server 2008 R2的遷移升級,現將操作過程記錄下來以供面臨同樣問題的技術人員參考。
筆者部門內運行維護著一個十多年前開發的信息系統,功能十分專業、實用,在多年的業務工作中發揮了重要的作用[2]。該系統基于C/S架構體系開發,數據庫管理系統最初應用的是SQL Server 6.5,后來升級至7.0,一直在Windows系列32位平臺上運行,由于受到系統數據源所用的另外一個軟件系統的制約,且存在專業模型更新等問題,該信息系統尚無法升級,導致與目前主流的W i ndows 7以上操作系統、SQL Server 2000以上版本的數據庫管理系統等存在很多不兼容的地方。近期由于硬件故障,該信息系統需要遷移到新的計算機上運行,新計算機只能運行64位Windows 7以上操作系統,而系統所用的SQL Server 7.0無法安裝到該版本的操作系統上,為了該信息系統能繼續運行,筆者通過查閱資料,決定在64位Wi nd ow s7 專業版上安裝版本較新且穩定性好的S Q L Server 2008 R2,然后再將數據從SQL Server 7.0遷移到SQL Server 2008 R2上。
SQL Server 2008 R2是SQL Server 2008的一個版本升級,R2標志表示這是SQL Server的一個中間版本,而不是一個主版本,共享 SQL Server 的同一主版本[3]。SQL Server 2008 R2相比SQL Server 2008功能更為完善穩定,從安裝包的大小和安裝容易程度都是R 2 更勝一籌,因此該版本的用戶眾多。
當前已知的SQL Server 2008 R2版本是:企業版,標準版,工作組版,Web版,開發人員版,Express版和Compact 3.5版。該順序也是根據功能的從高到低的排序。使用哪個版本,不是功能越強大越好,而是適當的版本。其中,SQL Server 2008 Express Edition是具有核心數據庫功能的SQL Server的免費版本,但它是SQL Server的微型版本。SQL Server Compact是為開發人員設計的免費嵌入式數據庫。該版本可以在所有Microsoft Windows平臺上運行。標準版是一個完整的數據管理和商業智能平臺,為部門級應用程序提供了最佳的易用性和可管理性。企業版是全面的數據管理,而商業智能平臺提供了全面的高端數據中心功能,并為關鍵業務應用程序提供了企業級可伸縮性,數據倉庫,安全性,高級分析和報告支持。此版本是功能最強大的版本,它具有最強大的功能和最佳性能,適用于大型企業生產應用程序環境;開發人員版本支持開發人員構建和測試基于SQL Server的任何類型的應用程序。此版本具有企業版的所有功能,但僅用于開發,測試和演示,基于此版本開發的應用程序和數據庫可以輕松升級到企業版。
經查閱資料和安裝嘗試,發現在Win7專業版上可以安裝SQL Server 2008 R2開發者版本,既能解決兼容性問題又可獲得強大的數據庫功能,能夠滿足筆者部門所運維的信息系統的應用需求。
安裝SQL Server 2008 R2之前在操作系統上必須先安裝.NET Framework 3.5,和Windows Installer 4.5 Redistributable這兩個組件,在安裝過程中由于操作系統不同(64位與32位)和可能安裝的環境不一樣,或者在安裝SQL Server 2008 R2之前已經安裝過SQL Server的其他版本,可能會導致安裝遇到問題,排除上述情況,在干凈的Win7專業版上,按照安裝提示一步步操作基本上都能順利安裝[4]。
由于版本跨度大,SQL Server7.0的備份不能在SQL Server 2008 R2上直接還原,因此需要一個中間版本作為過渡,該版本需要滿足既能還原SQL Server7.0的備份,且在其上導出的備份又能被SQL Server 2008 R2還原這兩個條件。經查閱資料和試驗,發現SQL Server 2000能夠滿足這一要求[5]。SQL Server 2000版本繼承了SQL Server 7.0 版本的優點,同時又比它增加了許多更先進的功能。具有使用方便、可伸縮性好、與相關軟件集成程度高等優點,可跨越從運行Microsoft Windows 98 的小型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用[6]。同樣的,SQL Server 2000也存在與高版本操作系統的兼容性問題,只能在W i nd o w s X P 或者更低的操作系統上正常安裝和使用,在Windows 7或者更高版本的操作系統上需要經過很多復雜的設置后才能安裝和使用,因此選擇在Windows 7以下版本的操作系統上安裝SQL Server 2000 標準版作為過渡版本[7]。數據庫遷移使用了完全備份和還原的方式進行,這是最基本和安全可靠的數據遷移方式,步驟如下:
第1步:將SQL Server 7.0的數據庫進行備份,形成bak文件;
第2步:在SQL Server 2000中將SQL Server 7.0的數據庫備份文件還原;
第3步:在SQL Server 2000中將第2步還原好的數據庫進行備份,形成bak文件;
第4步:在SQL Server 2008 R2 Management Studio資源管理器窗口中右鍵選擇任務->還原->數據庫,“還原數據庫”菜單如圖1所示;
第5步:在出現的窗口中輸入目標數據庫名稱,并選擇“源設備”,點擊瀏覽按鈕找到第3步中生成的備份文件,點擊確定,還原成功。還原數據庫具體操作內容如圖2所示。

圖1 SQL Server 2008 R2 Management Studio 中“還原數據庫”菜單Fig.1 "Restore database" menu in SQL Server 2008 R2 Management Studio

圖2 SQL Server 2008 R2 Management Studio 中還原數據庫具體操作內容Fig.2 Specific operation contents of restoring database in SQL Server 2008 R2 Management Studio
要注意的一點是,將SQL Server 2000的備份還原到SQL Server 2008 R2中一定不要建立一個新的數據庫文件,而是直接在還原的時候在目標數據庫處給待還原的數據庫起個名字就可以了。
至此,已經完成了將數據庫從SQL Server 7.0升級和遷移到SQL Server 2008 R2的整個過程,并且已經實現了從早期版本的SQL Server 7.0到SQL Server 2008 R2 的完整數據遷移。數據庫管理系統的較低版本和較高版本的操作系統的兼容性問題已解決。