使用SSMA將Oracle數(shù)據(jù)庫轉(zhuǎn)成SQL Server 2008
本文我們主要介紹SSMA的安裝和授權(quán)以及使用SSMA將Oracle數(shù)據(jù)庫轉(zhuǎn)成SQL Server 2008的過程,接下來我們開始介紹。
SSMA的安裝與授權(quán)
步驟1: 先安裝Oracle 11g 和Sql Server 2008。
步驟2:下載SSMA,或者向我勒索,然后安裝……。
步驟3: 打開各種所需的服務(wù)(怎么打??????Win+R-------->>>services.msc---------->>>Enter)。
步驟4: 如果你有一個 dmp 文件(這是從Oracle導(dǎo)出來的一個 備份的文件) ,先將他導(dǎo)入到Oracle中。
怎么導(dǎo)入呢????
先創(chuàng)建一個用戶Create user 用戶名 identified by 密碼。
2.授權(quán)
接著,可以打開命令行,可不是打開Sqlplus 哦。
如圖imp userid=(上面創(chuàng)建的)用戶名/ 密碼 full=y file=文件路徑
步驟5:你導(dǎo)入完成了沒? 不知道你數(shù)據(jù)量多少哦! 反正我話個把小時轉(zhuǎn)完了……
步驟6:打開SSMA
新建一個項目
步驟7:就此,基本完成了,然后就是 Click Connect to Oracle。
步驟8:接下來看看SQL中國研發(fā)中心的Blog:http://blogs.msdn.com/b/sqlcrd/ 你會懂的;
#p#
數(shù)據(jù)庫的轉(zhuǎn)化
這里我們選擇SSMA for Oracle 5.0為例介紹一下SSMA如何幫助您從Oracle遷移到SQL Server 2008 R2。首先我們從這里下載SSMA for Oracle 5.0的壓縮包,解壓縮后有兩個exe文件,SSMA for Oracle 5.0.exe是工具的安裝包,SSMA for Oracle 5.0 Extension Pack.exe必須安裝在SQL Server 2008 R2所在服務(wù)器,用來創(chuàng)建一些輔助運行需要的數(shù)據(jù)庫表和存儲過程等。
首次運行SSMA for Oracle需要一個License,如圖1所示,你可以點擊鏈接,然后根據(jù)提示填寫個人信息后免費申請,下載保存之后返回這個對話框選擇你保存License的目錄然后點擊Refresh License按鈕即可運行SSMA for Oracle了。
圖1 License Management對話框
在主窗口File菜單中選擇New Project…菜單項將顯示圖2所示的對話框,輸入項目的名字,選擇SQL Server 2008作為遷移的目標(biāo)數(shù)據(jù)庫版本。
圖2 New Project對話框
我們將使用Oracle XE的HR schema為例(下文稱之為HR數(shù)據(jù)庫以避免歧義,但其實Oracle并沒有SQL Server數(shù)據(jù)庫類似的概念)。SSMA為提高性能,缺省情況下不加載某些示例數(shù)據(jù)庫(包括HR數(shù)據(jù)庫),這個缺省設(shè)置可以通過Project Settings來修改,選擇Tools菜單的Project Settings菜單項,在彈出的對話框里點擊General再選擇Loading System Objects,然后勾選HR,如圖3所示。
圖3 Project Settings對話框
然后我們連接Oracle服務(wù)器,點擊工具條上的Connect to Oracle,輸入Server名稱、SID和用戶名/密碼,如圖4所示。連接后會有個警告對話框告訴你hr用戶沒有足夠的權(quán)限。由于我們只需要遷移HR數(shù)據(jù)庫,這里可以點擊Continue忽略它。如果你的Oracle服務(wù)器上有很多數(shù)據(jù)庫,數(shù)據(jù)加載可能需要比較長的時間,請耐心等待
圖4 連接到Oracle服務(wù)器
連接上Oracle后我們首先評估一下遷移HR數(shù)據(jù)庫會不會碰到問題,如果碰到問題大約需要多長時間來解決。評估并不需要連接目標(biāo)SQL Server,只需要在左上方的樹里展開Oracle服務(wù)器名稱,然后展開Schemas,右鍵點擊HR并選擇Create Report,如圖5所示。
圖5 評估HR數(shù)據(jù)庫
SSMA運行一段時間后會打開一個評估報告的對話框,如圖6所示。這個評估報告很有用,里面會列出HR數(shù)據(jù)庫里各種對象(包括函數(shù)、包、存儲過程、表和視圖等)能夠成功遷移的比例,你可以在左邊的樹里選擇你需要查看的某個對象,比如存儲過程,比較Oracle的PL/SQL語法和遷移后的TSQL語法。
圖6 評估報告
圖7是一個包含有錯誤的評估報告,當(dāng)包含錯誤時,SSMA會估算手工做轉(zhuǎn)換大約需要多少時間,這樣你就可以使用評估報告來幫助你做數(shù)據(jù)庫遷移的時間規(guī)劃。
圖7 一個包含錯誤的評估報告
首先我們需要連接目標(biāo)數(shù)據(jù)庫,點擊工具條上的Connect to SQL Server,輸入Server name,在Database里輸入HR,如圖1所示。如果你的SQL Server里不存在HR數(shù)據(jù)庫,點擊Connect后SSMA會提示錯誤,問你是否創(chuàng)建HR數(shù)據(jù)庫,選擇Yes。HR數(shù)據(jù)庫創(chuàng)建后SSMA可能會提示SQL Server Agent未運行,這僅在使用服務(wù)器端數(shù)據(jù)遷移時才會用到,默認(rèn)情況下我們使用的是客戶端數(shù)據(jù)遷移,所以可以點擊Continue忽略。
圖1 連接到SQL Server服務(wù)器
連接上SQL Server服務(wù)器后我們就可以遷移Schema了,這里的Schema指數(shù)據(jù)以外的數(shù)據(jù)庫定義,比如表結(jié)構(gòu)、視圖定義、存儲過程等等。右鍵單擊Oracle Metadata Explorer里的HR數(shù)據(jù)庫,選擇Convert Schema,如圖2所示。SSMA運行一段時間后會在最下方的Output欄里顯示轉(zhuǎn)換是否有錯誤、警告或信息。這時你可以展開SQL Server Metadata Explorer里HR數(shù)據(jù)庫的dbo schema,在Procedures文件夾下會發(fā)現(xiàn)ADD_JOB_HISTORY等存儲過程,Tables文件夾下會發(fā)現(xiàn)COUNTRIES等表,說明Schema的遷移已經(jīng)成功。
圖2 轉(zhuǎn)換Schema
如果這時你使用SQL Server客戶端工具SQL Server Management Studio或者Visual Studio的Server Explorer查看SQL Server上的HR數(shù)據(jù)庫,你會發(fā)現(xiàn)找不到前面所說的存儲過程、表或者視圖。這是因為Convert Schema菜單項只是在SSMA的Project里進(jìn)行了轉(zhuǎn)換,并未轉(zhuǎn)換到數(shù)據(jù)庫。這么設(shè)計為了讓你可以在同步到SQL Server之前再做些其他修改,比如REGIONS表里的REGION_ID列在Oracle里是NUMBER類型,它被SSMA轉(zhuǎn)換成了最安全的float(53)類型,如果你知道REGION_ID就是個整形,你可以把它修改為int類型,當(dāng)然你最好對COUNTRIES表的REGION列也做同樣的修改。
在確認(rèn)Schema遷移沒有問題后,你可以同步到SQL Server數(shù)據(jù)庫了,在SQL Server Metadata Explorer里右鍵點擊HR數(shù)據(jù)庫,選擇Synchronize with Database,如圖3所示。
圖3 同步HR數(shù)據(jù)庫到SQL Server
這時可能會再次彈出SQL Server連接對話框和SQL Server Agent未運行的警告,確認(rèn)后會顯示Synchronize with the Database對話框,如圖4所示。對話框里列出了SQL Server數(shù)據(jù)庫和SSMA的樹結(jié)構(gòu)的差別,可以選擇Hide Equal Objects來過濾掉兩邊相同的對象。由于我們連接的是新創(chuàng)建的HR數(shù)據(jù)庫,所以左側(cè)顯示的都是 [Not Found] 狀態(tài),如果你之前做過同步這里會顯示不同的狀態(tài),這里我們點擊OK繼續(xù)。等待右下角的進(jìn)度條走完,留意主窗口Output欄是否報錯,沒有報錯的話SQL Server里的對象應(yīng)該已經(jīng)創(chuàng)建好了。
圖4 Synchronize with the Database對話框
再次使用SQL Server Management Studio或者Visual Studio來查看HR數(shù)據(jù)庫中的對象,會發(fā)現(xiàn)一些$SSMA打頭的表或者存儲過程等,這些是遷移一些特殊對象(比如Oracle的Sequence對象)所創(chuàng)建出來的輔助對象。
在成功遷移了Schema之后,我們就可以來進(jìn)行遷移的最后一步:數(shù)據(jù)遷移。有了SSMA的幫助數(shù)據(jù)遷移也非常簡單,右鍵點擊Oracle Metadata Explorer里的HR數(shù)據(jù)庫,選擇Migrate Data,如圖5所示。SSMA會再次提示Oracle和SQL Server的連接信息,如果之前做過數(shù)據(jù)遷移可能會有數(shù)據(jù)覆蓋的警告信息,如果有點擊Continue繼續(xù)。
圖5 數(shù)據(jù)遷移
如果你的數(shù)據(jù)庫數(shù)據(jù)比較多,SSMA會運行較長一段時間,在這過程中你可以隨時點擊工具欄上的Stop按鈕來停止數(shù)據(jù)遷移。遷移結(jié)束后,SSMA會有一個數(shù)據(jù)遷移報告,如圖6所示。該報告描述了遷移過程中那些表的數(shù)據(jù)被成功遷移,多少行數(shù)據(jù)被遷移以及耗時多少等等。
圖6 數(shù)據(jù)遷移報告
本文簡單介紹了如何使用SSMA for Oracle 5.0來幫助我們把一個Oracle數(shù)據(jù)庫遷移到SQL Server數(shù)據(jù)庫,包括遷移評估、Schema遷移以及數(shù)據(jù)遷移。
關(guān)于使用SSMA將Oracle數(shù)據(jù)庫轉(zhuǎn)換成SQL Server 2008的操作就介紹完畢了,希望通過本文的介紹能夠帶給您一些收獲。
【編輯推薦】