指導(dǎo)項(xiàng)目中項(xiàng)目工程中涉及到的由sql server 2000數(shù)據(jù)庫遷移到oracle
測試環(huán)境對應(yīng)情況如下表:
源數(shù)據(jù)庫 | Sql server 2000 Windows server 2003 |
目標(biāo)數(shù)據(jù)庫 | Oracle Windows server 2003、solaris 10 |
操作機(jī)要求 | Windows xp 、Oracle |
Oracle sql developer download | Sql server jdbc download | DMV download |
http://www.oracle.com/technology/global/cn/software/products/sql/index.html |
遷移的環(huán)境也就是配置與服務(wù)器連接和對遷移工具的配置過程。
此次遷移通過操作機(jī)的windows平臺分別連接到需要遷移的sql server 2000數(shù)據(jù)庫服務(wù)器和oracle
如下截圖所示為sql server 2000服務(wù)器網(wǎng)絡(luò)連接配置端界面,可根據(jù)實(shí)際需要啟用多種協(xié)議,在此我們選擇TCP/IP協(xié)議,并且選擇好需要連接的實(shí)例名,即遷移的數(shù)據(jù)庫所在的實(shí)例。
配置TCP/IP協(xié)議的過程如下圖所示,點(diǎn)擊啟用的協(xié)議后,選擇‘屬性’按鈕,即可彈出一個(gè)端口設(shè)置信息,這個(gè)端口號可以默認(rèn)或自己設(shè)置,需要記住這個(gè)端口號,在配置客戶端連接的時(shí)候需要用到。
在本地機(jī),也就是操作機(jī)上需要安裝sql server 2000客戶端,安裝好后選擇安裝后的程序菜單中的客戶端網(wǎng)絡(luò)實(shí)用工具,如下圖,根據(jù)服務(wù)器端配置協(xié)議信息及端口信息填寫好后,單擊確定,即完成客戶端網(wǎng)絡(luò)連接的配置工作。
配置完客戶端連接信息后,需要配置ODBC數(shù)據(jù)源管理器,在操作機(jī)選擇‘開始-〉管理工具-〉數(shù)據(jù)源’然后出現(xiàn)如下圖所示的界面,在系統(tǒng)DSN選項(xiàng)中選擇‘添加‘,即出現(xiàn)DSN配置自動(dòng)引導(dǎo)界面,根據(jù)提示填寫必要信息,單擊下一步;
按照要求填好相應(yīng)信息,點(diǎn)擊下一步
在此選擇網(wǎng)絡(luò)配置信息,點(diǎn)擊客戶端配置后出現(xiàn)如下界面
點(diǎn)擊確定,出現(xiàn)下圖,選擇需要連接的數(shù)據(jù)庫,單擊下一步
即可進(jìn)行測試。驗(yàn)證配置信息是否正確
最好能夠使用和服務(wù)器端相同的版本的客戶端,當(dāng)然這里使用oracle
(1) 進(jìn)入Oracle Net Manager配置界面如圖:
(2) 單擊“本地“出現(xiàn)下拉式菜單,選擇”服務(wù)命名“點(diǎn)擊左上綠色的添加符號”+“,出現(xiàn)如下圖所示的界面
(3) 輸入網(wǎng)絡(luò)服務(wù)名后,單擊下一步。出現(xiàn)下圖所示界面,選擇第一項(xiàng)的TCP/IP:
(4) 點(diǎn)擊下一步。進(jìn)入?yún)f(xié)議設(shè)置向?qū)?,輸入需要連接的服務(wù)器的主機(jī)名或IP地址,端口號可以默認(rèn)1521就行
(5) 進(jìn)入下一步,輸入服務(wù)名,一般就是全局?jǐn)?shù)據(jù)庫名或SID,與網(wǎng)絡(luò)服務(wù)名對應(yīng),選擇連接類型為“共享服務(wù)器“:
(6) 點(diǎn)擊下一步,即可測試連通性,如果測試不成功,就可以更改登錄用戶,因?yàn)槟J(rèn)的測試用戶是scott/scott,故可能已經(jīng)被修改:
測試成功的話,就已經(jīng)成功連接到oracle服務(wù)器端了。
對sql developer的配置需要去指定網(wǎng)站下載相應(yīng)的jdbc驅(qū)動(dòng)程序包,然后添加到sql developer 中即可建立相應(yīng)的環(huán)境。該過程如下:
該版本移植工作臺已使用需要針對特定遷移數(shù)據(jù)庫的 JDBC 驅(qū)動(dòng)程序,對于SQL Server 2000,需要下載一個(gè)名為 jtds-1.2-dist.zip 的存檔文件,二進(jìn)制驅(qū)動(dòng)程序 jar 文件位于該存檔內(nèi)的一個(gè)名為 jtds-1.2.jar 的文件中。安裝sql developer相對簡單,只需要下載sqldeveloper-
出現(xiàn)下圖所示界面。點(diǎn)擊
添加適合第三方的移植JDBC驅(qū)動(dòng)程序:點(diǎn)擊工具,選擇 <首選項(xiàng)〉,彈出的對話框選擇 <數(shù)據(jù)庫>->第三方驅(qū)動(dòng)程序,也就是下圖的界面
選擇第三方JDBC驅(qū)動(dòng)程序選項(xiàng),點(diǎn)擊添加條目,將指定的JDBC插件路徑添加進(jìn)去即可。
單擊確定,即完成,出現(xiàn)如上的圖形界面,可支持多種數(shù)據(jù)庫移植。
下圖,建立sql server 服務(wù)器的連接信息,按照上面的要求填寫好信息后可以測試,顯示連接成功后,可以單擊檢索數(shù)據(jù)庫按鈕即可以選擇需要連接的數(shù)據(jù)庫,也就是需要遷移的數(shù)據(jù)庫
成功后即可以通過樹形目錄查看該數(shù)據(jù)庫的結(jié)構(gòu)信息
完成了如上的操作,也就完成了遷移工作的大部分工作,由于該工具圖形化界面較強(qiáng),后期的遷移工作,很多都是自動(dòng)引導(dǎo)功能,故遷移也就是搞清這個(gè)過程即可。建立了數(shù)據(jù)庫的連接后即可進(jìn)入下一步計(jì)劃,就是遷移的過程,首先需要在遷移的目標(biāo)數(shù)據(jù)庫建立一個(gè)名為資料檔案庫,用戶sql server 2000數(shù)據(jù)庫信息捕獲功能的實(shí)現(xiàn)。操作如下:點(diǎn)擊目標(biāo)oracle數(shù)據(jù)庫連結(jié)名,鼠標(biāo)右鍵,會出現(xiàn)資料檔案庫的菜單,選擇創(chuàng)建資料檔案庫,出現(xiàn)如下所示的界面
選擇需要?jiǎng)?chuàng)建的目標(biāo)數(shù)據(jù)庫,也就是遷移到的數(shù)據(jù)庫連接名,即可單擊創(chuàng)建,進(jìn)入下圖所示的創(chuàng)建過程
安裝資料檔案庫完成后,即可開始捕獲數(shù)據(jù)庫的過程,單擊需要遷移的sql server 數(shù)據(jù)庫,右鍵即可出現(xiàn)捕獲sql server 服務(wù)器的選項(xiàng),選擇該項(xiàng),就開始sql server 2000捕獲數(shù)據(jù)庫,也就是對遷移數(shù)據(jù)庫的對象類型進(jìn)行一個(gè)分析,彈出一個(gè)捕獲數(shù)據(jù)庫的會話框,并顯示捕獲的進(jìn)度和過程。
捕獲完成后,關(guān)閉該對話框,即可在sql developer工具界面的左邊出現(xiàn)捕獲的數(shù)據(jù)庫的菜單欄,右鍵單擊該捕獲模型名,選擇轉(zhuǎn)換數(shù)據(jù)庫,即可彈出如下所示的對話框。
轉(zhuǎn)換數(shù)據(jù)庫的過程也就是對兩種不同類型的數(shù)據(jù)庫的分析和數(shù)據(jù)轉(zhuǎn)換關(guān)系得對應(yīng)過程,該過程會根據(jù)轉(zhuǎn)換過程中源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的不同類型關(guān)系,生成可以在oracle 數(shù)據(jù)庫中運(yùn)行和創(chuàng)建與源數(shù)據(jù)庫信息對應(yīng)的數(shù)據(jù)庫模型的腳本,默認(rèn)會出現(xiàn)在worksheet中,其sql 語句大體如下 :
選擇要遷移到的目標(biāo)oracle數(shù)據(jù)庫,直接點(diǎn)擊運(yùn)行,要注意的地方就是,在這個(gè)腳本起始部分會有一個(gè)創(chuàng)建用戶的sql 語句,如果不做改變的話,系統(tǒng)會默認(rèn)創(chuàng)建該用戶后,直接在該用戶下,運(yùn)行后面的數(shù)據(jù)庫的創(chuàng)建信息。所以需要在移植數(shù)據(jù)的時(shí)候重新使用這個(gè)創(chuàng)建的用戶建立連接。當(dāng)然這時(shí)可以根據(jù)需要對該腳本中部分語句做一些修改,可以把創(chuàng)建用戶信息的sql 語句去掉,那么系統(tǒng)就會默認(rèn)在此用戶下建立數(shù)據(jù)庫信息,運(yùn)行完該腳本語句后,即可進(jìn)行最后的工作,即數(shù)據(jù)移植功能。
以上面創(chuàng)建的用戶建立新的連接。鼠標(biāo)右擊轉(zhuǎn)換的 數(shù)據(jù)庫模型,選擇移植數(shù)據(jù),出現(xiàn)如下所示的會話窗口,選擇好源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的連接名。
點(diǎn)擊確定,彈出新的會話窗口,顯示數(shù)據(jù)移植過程的進(jìn)度信息,以及可以觀察移植中可能出現(xiàn)的錯(cuò)誤信息。
此移植過程完全智能化,不需要人工干預(yù),完成數(shù)據(jù)移植后,即可彈出完成對話信息,選擇關(guān)閉該會話框的按鈕,此時(shí),我們即可在目標(biāo)數(shù)據(jù)庫中找到移植數(shù)據(jù)的表信息
關(guān)于遷移后的對應(yīng)關(guān)系,在先前生成的腳本中創(chuàng)建了用戶,并指定默認(rèn)表空間為user,遷移完成后,利用該用戶登錄,即可查詢相應(yīng)的數(shù)據(jù)信息
1. 利用數(shù)據(jù)匯總查詢數(shù)據(jù):select count(*) from table_name ;對比源和目的數(shù)據(jù)庫。另外可以通過數(shù)據(jù)庫連接軟件連接到目的oracle 數(shù)據(jù)庫,可以查看相應(yīng)的數(shù)據(jù)信息。
2. oracle官方提供了DMV數(shù)據(jù)移植驗(yàn)證工具可以通過運(yùn)行程序,生成對比分析文件。目前支持的sql server 2000和sybase數(shù)據(jù)庫的功能,但需要建立JDBC連接。連接網(wǎng)址http://otn.oracle.com/tech/migration/dmv 下載DMV.ZIP工具包解壓后。確定如下信息:
- JDBC class path
- Source database URL, user name, and password
- Oracle Database URL, user name, and password
然后進(jìn)入提示符,運(yùn)行如下命令:
Prompt> java -jar dmv_install_dir\dmv.jar PropertiesFilePath 即可生成一個(gè)對比源數(shù)據(jù)庫和目的數(shù)據(jù)庫移植信息的report文本文件,可以通過此文本文件檢查移植的完整性。