使用 Oracle 移植工作臺(tái)從 Microsoft SQL Server 移植到 Oracle 數(shù)據(jù)庫 10g
本模塊介紹了如何使用 Oracle 移植工作臺(tái)從 Microsoft SQL Server 數(shù)據(jù)庫移植到 Oracle 數(shù)據(jù)庫 10g。
大約 2 個(gè)小時(shí)
本教程將討論下列主題:
將鼠標(biāo)置于此圖標(biāo)上可以加載和查看本教程的所有屏幕截圖。(警告:因?yàn)榇瞬僮鲿?huì)同時(shí)加載所有屏幕截圖,所以網(wǎng)速較慢時(shí),響應(yīng)時(shí)間可能會(huì)比較長。)
注意:此外,您還可以在下列步驟中將光標(biāo)放在每個(gè)單獨(dú)的圖標(biāo)上,從而僅加載和查看與該步驟相關(guān)的屏幕截圖??梢酝ㄟ^單擊各個(gè)屏幕截圖來將其隱藏。
Oracle 移植工作臺(tái)是什么?
Oracle 移植工作臺(tái)是一種簡化從第三方數(shù)據(jù)庫系統(tǒng)到 Oracle 平臺(tái)(Oracle9i 和 Oracle 數(shù)據(jù)庫 10g)移植過程的工具。Oracle 移植工作臺(tái)在集成環(huán)境中移植整個(gè)數(shù)據(jù)庫模式(包括觸發(fā)器和存儲(chǔ)過程)。
通過 Oracle 移植工作臺(tái),您可以:
- 使用向?qū)Ш湍_本在各個(gè)階段進(jìn)行移植
- 使用聯(lián)機(jī)捕獲或脫機(jī)捕獲檢索源數(shù)據(jù)庫信息
- 自定義信息庫中的 Work In Progress 數(shù)據(jù)庫對(duì)象
- 分析存儲(chǔ)過程、觸發(fā)器以及視圖,并將它們轉(zhuǎn)換為 Oracle PL/SQL
- 通過報(bào)告和消息監(jiān)視移植的狀態(tài)。
Oracle 移植工作臺(tái)從源數(shù)據(jù)庫庫(如 SQL Server)提取信息,并創(chuàng)建 Oracle 目標(biāo)數(shù)據(jù)庫。為了移植不同的源數(shù)據(jù)庫,Oracle 移植工作臺(tái)針對(duì)其所能移植的每一個(gè)數(shù)據(jù)庫使用專門的插件。通過脫機(jī)捕獲方法,Oracle 移植工作臺(tái)從源數(shù)據(jù)庫檢索元數(shù)據(jù),并將它們存儲(chǔ)到您載入到工作臺(tái)信息庫的一組文件中。工作臺(tái)信息庫是 Oracle 數(shù)據(jù)庫中的一組表,包含有關(guān)移植的所有信息。工作臺(tái)信息庫由源模型(表示源數(shù)據(jù)庫)和 Oracle 模型(表示 Oracle 數(shù)據(jù)庫)組成。您可以在工作臺(tái)信息庫對(duì)源模型和 Oracle 模型進(jìn)行修改,而不會(huì)影響生產(chǎn)環(huán)境。
情景
在本教程中,您要將 SQL Server 2000(源數(shù)據(jù)庫)中的 HR 數(shù)據(jù)庫移植到 Oracle 數(shù)據(jù)庫 10g(目標(biāo)數(shù)據(jù)庫)中。本教程為您提供脫機(jī)捕獲文件,這些文件是從 Microsoft SQL Server 2000 源數(shù)據(jù)庫中提取的元數(shù)據(jù)。
創(chuàng)建和自定義源模型和 Oracle 模型后,您可以移植模式對(duì)象并使用 SQL*Loader 腳本移植表數(shù)據(jù)。
返回主題列表
開始本教程之前,您應(yīng)該:
1. |
在 Windows 資源管理器中,導(dǎo)航到 DVD 中的 Oracle_Migration_Workbench 文件夾,將 omwb_windows.zip 解壓縮到本地驅(qū)動(dòng)器上的文件夾中(如 c:\omwb)。
|
2. |
取消 offline_capture 子文件夾中文件的只讀屬性。
i) 定位 offline_capture_files 子文件夾,右鍵單擊并選擇屬性。
ii) 在“屬性”中,取消選擇“只讀”并單擊應(yīng)用。
iii) 接受默認(rèn)選項(xiàng)“將更改應(yīng)用于該文件夾、子文件夾及文件”,然后單擊確定。
iv) 單擊確定。
|
3. |
訪問 Oracle 數(shù)據(jù)庫 10g 第 2 版數(shù)據(jù)庫。 |
4. |
將 VMware Workstation 中的共享文件夾 vmware_shared 設(shè)置為主機(jī)文件夾中的 c:\vmware_shared。 |
返回主題列表
開始使用 Oracle 移植工作臺(tái)之前,您將在目標(biāo)數(shù)據(jù)庫中安裝工具、創(chuàng)建信息庫以及創(chuàng)建用戶及相關(guān)的表空間。
返回主題列表
安裝 Oracle 移植工作臺(tái)
執(zhí)行以下步驟:
1. |
導(dǎo)航到 c:\omwb 文件夾,雙擊 omwb_w2k.zip 將文件解壓縮到 c:\omwb 文件夾中。注意:創(chuàng)建了一個(gè) omwb 子文件夾(如 c:\omwb\Omwb)。
|
2. |
復(fù)制 c:\omwb\SQLServer2K.jar 文件并將其粘貼到 c:\omwb\Omwb\plugins 中。
|
返回主題
創(chuàng)建工作臺(tái)信息庫
執(zhí)行以下步驟:
1. |
要啟動(dòng) Oracle 移植工作臺(tái),打開命令提示符窗口并輸入:
cd c:\omwb\Omwb\bin
omwb.bat
|
2. |
打開 Oracle Workbench Repository Login 窗口。選擇 Default Repository 并單擊 OK。
|
3. |
首次登錄 Oracle 移植工作臺(tái)時(shí),將出現(xiàn)一個(gè)彈出窗口,提示信息庫不存在。單擊 Yes 創(chuàng)建信息庫。
|
4. |
Create Migration Repository 窗口顯示創(chuàng)建信息庫的進(jìn)度。出現(xiàn) "Repository successfully created." 消息時(shí),單擊 Close。
|
5. |
在 Select Migration Source 窗口中,單擊 OK 選擇 Microsoft SQL Server 2000 PlugIn。
|
6. |
打開兩個(gè)窗口:Oracle Migration Workbench 和 Capture Wizard:歡迎。在 Capture Wizard 中單擊 Cancel:歡迎窗口。
|
返回主題
在目標(biāo) Oracle 數(shù)據(jù)庫中創(chuàng)建 omwb_user
執(zhí)行以下步驟:
1. |
如果還未創(chuàng)建該用戶,登錄運(yùn)行 VMWARE、作為 oracle/oracle 的 Linux 操作系統(tǒng)。打開一個(gè)終端窗口,然后輸入以下命令:
cd /home/oracle/wkdir
sqlplus sys/oracle as sysdba
|
2. |
執(zhí)行 c_omwb_user.sql 腳本,在 Oracle 數(shù)據(jù)庫中創(chuàng)建 Oracle 移植工作臺(tái)用戶。
start c_omwb_user
該腳本執(zhí)行以下語句:
drop user omwb_user cascade;
CREATE USER omwb_user IDENTIFIED BY omwb_user;
GRANT CONNECT, RESOURCE, CREATE PUBLIC SYNONYM TO omwb_user WITH ADMIN OPTION;
GRANT ALTER ANY ROLE, ALTER ANY SEQUENCE, ALTER ANY TABLE,
ALTER TABLESPACE, ALTER ANY TRIGGER, COMMENT ANY TABLE, CREATE ANY SEQUENCE,
CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE,
CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE, DROP ANY TRIGGER, DROP TABLESPACE,
DROP USER, DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE, SELECT ANY TABLE,
UPDATE ANY TABLE TO omwb_user;
GRANT create view to omwb_user with admin option;
|
返回主題
在目標(biāo)數(shù)據(jù)庫中創(chuàng)建 SA 表空間
執(zhí)行以下步驟:
1. |
在運(yùn)行 VMWare 的 Linux 操作系統(tǒng)中,單擊桌面上的 Enterprise Manager Database Console 圖標(biāo),啟動(dòng)企業(yè)管理器數(shù)據(jù)庫控制臺(tái)。
|
2. |
在 Enterprise Manager Database Control Login 頁面中,輸入以下信息:
- Username:sys
- Password:oracle
- Connect As:sysdba
單擊 Login。
|
3. |
在 Home 頁面中單擊 Administration 選項(xiàng)卡。
|
4. |
在 Storage 標(biāo)題下面,單擊 Tablespaces 鏈接。
|
5. |
單擊 Create 按鈕。
|
6. |
在 General 選項(xiàng)卡中,輸入表空間名:sa 并單擊頁面底部的 Add 按鈕。
|
7. |
在 Add Datafile 頁面中,將 File Size 設(shè)置為 30 MB,然后單擊 Continue 按鈕。
|
8. |
在 General 選項(xiàng)卡中,單擊 OK 創(chuàng)建表空間。
|
9. |
注意:已創(chuàng)建 SA 表空間。該表空間將用于存儲(chǔ)所移植的對(duì)象。
|
10. |
單擊 Cluster Database:RACDB 鏈接返回到 Administration 頁面。
|
返回主題
現(xiàn)在,您將使用脫機(jī)捕獲文件創(chuàng)建源模型、檢查日志文件以及自定義源模型。
返回主題列表
使用脫機(jī)捕獲文件創(chuàng)建源模型
要使用脫機(jī)捕獲文件在工作臺(tái)信息庫中創(chuàng)建源模型,執(zhí)行以下步驟:
1. |
在 Oracle Migration Workbench 窗口中,選擇 Action > Capture Source Database。
|
2. |
檢查 Welcome 頁面并單擊 Next。
|
3. |
在 Source Model Load Details 頁面中,選擇 Offline Source Model Load 并單擊 Next。
|
4. |
單擊 Load。 出現(xiàn) Select Root Directory 頁面。
|
5. |
導(dǎo)航到 c:\omwb\offline_capture_files 目錄,然后單擊 OK。
|
6. |
加載元數(shù)據(jù)文件列表。單擊 Next。
|
7. |
在 Data Type Mappings 頁面中,檢查數(shù)據(jù)類型映射。單擊 Next。
|
8. |
在 Create Oracle Model 頁面中選擇 No,以使您可以首先瀏覽和自定義源模型。單擊 Next。
|
9. |
在 Summary 頁面中,單擊 Finish。
|
10. |
出現(xiàn) Loading Source Model 窗口,同時(shí)顯示各種消息。在 Loading Source Model 彈出消息窗口中,單擊 OK。
|
11. |
檢查日志消息,單擊 OK 關(guān)閉 Loading Source Model 彈出消息窗口。
|
返回主題
檢查日志文件
要檢查日志文件,執(zhí)行以下步驟:
1. |
要更改日志顯示設(shè)置,在 Oracle Migration Workbench 窗口中選擇 Tools > Options。
|
2. |
單擊 Logging 選項(xiàng)卡。
|
3. |
取消選擇以下選項(xiàng):
- Informational Messages
- Summary Messages
- Debug Messages。
單擊 OK。
|
4. |
選擇 Tools > Log Window 再次檢查日志消息。
|
5. |
Log 窗口內(nèi)容更改,僅顯示錯(cuò)誤和警告。關(guān)閉窗口。
|
6. |
在窗口的左側(cè)面板中,展開以下節(jié)點(diǎn):Databases > hr。
|
7. |
注意源模型中以下數(shù)量的數(shù)據(jù)庫對(duì)象:
- 8 個(gè)表
- 4 個(gè)存儲(chǔ)過程
- 2 個(gè)觸發(fā)器
|
返回主題
自定義源模型
您將通過刪除不移植到 Oracle 數(shù)據(jù)庫中的 MS SQL Server 管理組來自定義源模型。執(zhí)行以下步驟:
1. |
展開 Groups/Users 節(jié)點(diǎn)。
|
2. |
選擇 db_owner 節(jié)點(diǎn)以上的所有組(使用單擊和按住 shift 單擊),然后選擇 Object > Delete。
|
3. |
單擊 Yes 確認(rèn)刪除 7 個(gè)選定項(xiàng)目。
|
4. |
再次展開這些節(jié)點(diǎn):Databases > hr > Groups/Users。
|
5. |
選擇 db_securityadmin 角色,右鍵單擊并選擇 Delete。
|
6. |
單擊 Yes 確認(rèn)刪除。
|
7. |
導(dǎo)航到 Databases > hr > Groups/Users > db_owner 并單擊 dbo。在窗口右側(cè),您看到該角色被指派給 sa 登錄。移植用戶時(shí),Oracle 移植工作臺(tái)將創(chuàng)建相應(yīng)的 sa 用戶帳戶。
|
返回主題
返回主題列表
執(zhí)行以下步驟:
1. |
選擇 Action > Create the Oracle Model。
|
2. |
單擊 Yes 確認(rèn)要?jiǎng)?chuàng)建 Oracle 模型。出現(xiàn)帶有許多消息的 Creating Oracle Model 窗口。
|
3. |
完成 Oracle 模型時(shí),注意有 4 個(gè)錯(cuò)誤。您將在以下后續(xù)步驟中解決這些分析器錯(cuò)誤。單擊 OK。
|
4. |
注意,在 Oracle 模型中不創(chuàng)建以下對(duì)象:
- SECURE_EMPLOYEES 觸發(fā)器
- EXAMPLE3 存儲(chǔ)過程。
再次單擊 OK 關(guān)閉 Creating Oracle Model 窗口。
|
返回主題
為觸發(fā)器解決分析器錯(cuò)誤
執(zhí)行以下步驟解決 SECURE_EMPLOYEES 觸發(fā)器的分析器錯(cuò)誤:
1. |
從菜單中選擇 Tools > Log Window。
|
2. |
雙擊 SECURE_EMPLOYEES 觸發(fā)器的第一個(gè)錯(cuò)誤。打開 SECURE_EMPLOYEES 窗口,光標(biāo)位于該錯(cuò)誤之上。
|
3. |
執(zhí)行以下操作:
- 在 INSTEAD OF 前面輸入 --(2 個(gè)連字符)
- 在單詞 FOR 前面刪除注釋符號(hào) --(2 個(gè)連字符)。
- 單擊 OK。
|
4. |
要重新分析 SECURE_EMPLOYEES 觸發(fā)器,在 SQL Server 2000 Source Model 選項(xiàng)卡中導(dǎo)航到 Databases > hr > Triggers。
|
5 |
右鍵單擊 SECURE_EMPLOYEES 并選擇 Parse。
|
6. |
顯示一個(gè)成功消息。單擊 OK。
|
7. |
單擊 Oracle Model 選項(xiàng)卡。
|
8. |
展開 Users > sa > Triggers。驗(yàn)證 SECURE_EMPLOYEES 現(xiàn)在已經(jīng)成為 Oracle 模型的一部分。
|
返回主題
解決存儲(chǔ)過程的分析器錯(cuò)誤
執(zhí)行以下步驟解決示例 example3 存儲(chǔ)過程觸發(fā)器的分析器錯(cuò)誤:
1. |
單擊 SQL Server 2000 Source Model 選項(xiàng)卡。
|
2. |
展開 Databases > hr > Stored Procedures。單擊 example3。
|
3. |
在窗口右側(cè)的 General 選項(xiàng)卡中,注意單詞 ERROR 用作 SELECT 語句的列名。這是對(duì)分析器具有特殊含義的保留字。單擊 Parse Options 選項(xiàng)卡。
|
4. |
選中 Allow ‘Reserved Words‘ in table names 復(fù)選框并單擊 Apply。選中該選項(xiàng)后,分析器將把單詞 ERROR 看成為一個(gè)對(duì)象名,而不是其中一個(gè)特殊關(guān)鍵字。
|
5. |
要重新分析該對(duì)象,在窗口的右側(cè)面板上,右鍵單擊 example3 并選擇 Parse。
|
6. |
單擊 OK 確認(rèn)成功消息。
|
7. |
單擊 Oracle Model 選項(xiàng)卡。
|
8. |
展開 Users > sa > Stored Procedures。驗(yàn)證確實(shí)已在 Oracle 模型中創(chuàng)建了 EXAMPLE3。
|
9. |
關(guān)閉 Oracle Migration Workbench Log 窗口。
|
返回主題
既然已經(jīng)解決了分析器錯(cuò)誤,則可以執(zhí)行以下步驟重新創(chuàng)建 Oracle 模型:
1. |
選擇 Action > Create Oracle Model
|
2. |
單擊 Yes 確認(rèn)要重新創(chuàng)建 Oracle 模型。
|
3. |
出現(xiàn)帶有許多消息的 Creating Oracle Model 窗口。完成創(chuàng)建 Oracle 模型時(shí),您將注意到不再有錯(cuò)誤。單擊 OK。
|
4. |
單擊 OK 關(guān)閉 Creating Oracle Model 窗口。
|
返回主題
現(xiàn)在,在將這些對(duì)象移植到目標(biāo)數(shù)據(jù)庫之前,將自定義 Oracle 模型。
返回主題列表
更改數(shù)據(jù)類型映射
EMPLOYEES 表中的 TS_CREATED 列存儲(chǔ)日期時(shí)間,而不僅僅是日期信息。要更改該列的數(shù)據(jù)類型映射,執(zhí)行以下步驟:
1. |
在 Oracle 模型中,展開 Users > sa > Tables 并選擇 EMPLOYEES 表。
|
2. |
在窗口右側(cè)的 General 選項(xiàng)卡中,向下滾動(dòng)到 TS_CREATED 列,將 Type 從 DATE 更改為 TIMESTAMP,然后單擊 Apply。
|
返回主題
刪除 HR 表空間
創(chuàng)建 Oracle 模型時(shí),Oracle 移植工作臺(tái)將自動(dòng)生成默認(rèn)的表空間(如 HR)。但是,由于您已經(jīng)在目標(biāo)數(shù)據(jù)庫中創(chuàng)建了 SA 表空間,因此您不需要該 HR 表空間。建議首先創(chuàng)建目標(biāo)表空間,以確保您可以控制數(shù)據(jù)文件的大小。要?jiǎng)h除 Oracle 模型的 HR 表空間,執(zhí)行以下操作:
1. |
在 Oracle 模型中,導(dǎo)航到 Tablespaces > HR。
|
2. |
單擊 Yes 保存更改。
|
3. |
右鍵單擊 HR 表空間,選擇 Delete。
|
4. |
單擊 Yes 確認(rèn)刪除。
|
返回主題
使用 Tablespace Discoverer 導(dǎo)入現(xiàn)有的表空間信息
要使用表空間發(fā)現(xiàn)器從目標(biāo)數(shù)據(jù)庫中導(dǎo)入現(xiàn)有的信息,執(zhí)行以下步驟:
1. |
從菜單中選擇 Tools > Tablespace Discoverer。
|
2. |
在 Tablespace Discoverer 窗口中,輸入以下信息并單擊 Connect。
- Username:omwb_user
- Password:omwb_user
- Hostname: 192.168.203.11
- Port: 1521
- SID:RACDB1
|
3. |
在 Tablespace Discoverer 窗口中從目標(biāo)數(shù)據(jù)庫中檢索表空間信息之后,將以下表空間分配給 Oracle 模型,然后單擊 Apply。
- 默認(rèn)表空間:SA
- 索引表空間:SA
- 臨時(shí)表空間:TEMP
|
4. |
在 Oracle Model 選項(xiàng)卡中,展開 Tablespaces 節(jié)點(diǎn),驗(yàn)證已將 SA 和 TEMP 表空間的元數(shù)據(jù)導(dǎo)入到 Oracle 模型中。
|
返回主題
Oracle 已經(jīng)就緒,可以移植到目標(biāo)數(shù)據(jù)庫中。您將在 Oracle 移植工作臺(tái)中直接連接,將模式對(duì)象(尤其是表空間)、用戶以及用戶表移植到目標(biāo)數(shù)據(jù)庫中。執(zhí)行以下步驟:
1. |
從菜單中選擇 Action > Migrate to Oracle。
|
2. |
在 Migration Wizard 中:歡迎窗口,單擊 Next。
|
3. |
在 Destination Database Details 窗口中,輸入以下信息并單擊 Next 連接到目標(biāo)數(shù)據(jù)庫:
- Username:omwb_user
- Password:omwb_user
- Host: 192.168.203.11
- Port: 1521
- SID:RACDB1
|
4. |
Migration Wizard 檢測到這是首次將數(shù)據(jù)庫對(duì)象移植到目標(biāo)數(shù)據(jù)庫中。單擊 Next:
|
5. |
Migration Wizard 通知您將基于脫機(jī)源模型加載進(jìn)行移植。閱讀該信息,然后單擊 Next。
|
6. |
在 Select Schema Objects to Migrate 窗口中,單擊 <<(雙左箭頭)按鈕取消選擇所有模式對(duì)象,然后單擊 Next。您將在加載數(shù)據(jù)之后移植模式對(duì)象。
|
7. |
在 Summary 窗口中,單擊 Finish 開始該部分的移植。
|
8. |
將出現(xiàn) Migrating Oracle Model 窗口,后隨一個(gè)完成窗口。注意沒有錯(cuò)誤或者警告。單擊 OK 關(guān)閉完成窗口。
|
9. |
單擊 OK 關(guān)閉 Migrating Oracle Model 窗口。
|
10. |
您將驗(yàn)證用戶 SA 已移植到目標(biāo)數(shù)據(jù)庫中。在 Linux 操作系統(tǒng)中運(yùn)行的 Mozilla 的瀏覽器中,單擊 Enterprise Manager Database Control 的 Administration 頁面中的 Tables 鏈接。
|
11. |
在 Tables 頁面中,輸入模式作為 SA,然后單擊 Go 按鈕。
|
12. |
驗(yàn)證在 SA 用戶模式下已經(jīng)創(chuàng)建了 8 個(gè)表,然后單擊 Cluster Database:RACDB 鏈接返回到 Administration 頁面。
|
返回主題列表
您將使用 SQL*Loader 將數(shù)據(jù)移植到目標(biāo)數(shù)據(jù)庫中。您將使用 Oracle 移植工作臺(tái)生成 SQL*Loader 腳本并進(jìn)行修改,然后執(zhí)行以下步驟在目標(biāo)數(shù)據(jù)庫中再次運(yùn)行腳本:
1. |
在 Oracle Model 選項(xiàng)卡中,展開 Users > sa > Tables
|
2. |
選擇所有表,再從右鍵單擊彈出的菜單中選擇 Generate SQL*Loader Scripts。
|
3. |
單擊 Yes 確認(rèn)。
|
4. |
在 Oracle Migration Window 彈出消息中,注意 SQL*Loader 腳本的位置 c:\omwb\Omwb\sqlloader_scripts\SQLServer2K\<timestamp> 并單擊 OK.。
|
5. |
在 Windows 資源管理器中,將文件從 c:\omwb\data_files 復(fù)制到 c:\omwb\Omwb\sqlloader_scripts\SQLServer2K\<timestamp>\Oracle 目錄。SQL*Loader 將使用這些文件將數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫中的表中。
|
6. |
使用記事本打開位于 c:\omwb\Omwb\sqlloader_scripts\SQLServer2K\<timestamp>\Oracle 目錄中的 sql_load_script.sh。
|
7. |
通過替換設(shè)置用于 Linux 的 NLS_TIMESTAMP_FORMAT 環(huán)境變量的第二行,修改 sql_load_script.sh 文件。要按照 EMPLOYEES 表中 TS_CREATED 列的正確格式加載數(shù)據(jù),就必須進(jìn)行該設(shè)置。注意,確保使用 export 替換 # SET,并使用單引號(hào)封閉 Mon dd YYYY HH:mi:ss:ffAM,如以下部分前后所示:
之前:
export NLS_DATE_FORMAT=‘Mon dd YYYY HH:mi:ssAM‘ # SET NLS_TIMESTAMP_FORMAT=Mon dd YYYY HH:mi:ss:ffAM # SET NLS_LANGUAGE=
之后:
export NLS_DATE_FORMAT=‘Mon dd YYYY HH:mi:ssAM‘ export NLS_TIMESTAMP_FORMAT=‘Mon dd YYYY HH:mi:ss:ffAM‘ # SET NLS_LANGUAGE=
保存文件。
|
8. |
將 TO_DATE() 函數(shù)添加到 START_DATE 和 END_DATE 列中,從而將輸入字符串轉(zhuǎn)換為日期格式,以這種方式修改 JOB_HISTORY.ctl 文件,如以下部分前后所示:
之前:
(EMPLOYEE_ID, START_DATE, END_DATE, JOB_ID "DECODE(:JOB_ID, CHR(00), ‘ ‘, :JOB_ID)", DEPARTMENT_ID)
之后:
(EMPLOYEE_ID, START_DATE "TO_DATE(:START_DATE,‘MON DD YYYY HH:MI:SSAM‘)", END_DATE "TO_DATE(:END_DATE,‘MON DD YYYY HH:MI:SSAM‘)", JOB_ID "DECODE(:JOB_ID, CHR(00), ‘ ‘, :JOB_ID)", DEPARTMENT_ID)
提示:直接在記事本中復(fù)制和粘貼文本。
保存文件。
|
9. |
將 TO_DATE() 函數(shù)添加到 HIRE_DATE 列中,將輸入字符串轉(zhuǎn)換為日期格式,修改 EMPLOYEES.ctl 文件,如以下部分前后所示:
之前:
PHONE_NUMBER "DECODE(:PHONE_NUMBER, CHR(00), ‘ ‘, :PHONE_NUMBER)", HIRE_DATE, JOB_ID "DECODE(:JOB_ID, CHR(00), ‘ ‘, :JOB_ID)",
之后:
PHONE_NUMBER "DECODE(:PHONE_NUMBER, CHR(00), ‘ ‘, :PHONE_NUMBER)", HIRE_DATE "TO_DATE(:HIRE_DATE,‘MON DD YYYY HH:MI:SSAM‘)", JOB_ID "DECODE(:JOB_ID, CHR(00), ‘ ‘, :JOB_ID)",
提示:直接在記事本中復(fù)制和粘貼文本。
保存文件并退出記事本。
|
10. |
您需要在 Linux 操作系統(tǒng)中運(yùn)行 SQL*Loader 腳本。VMWare 共享的中間文件夾已經(jīng)配置到 c:\vmware_shared,您可以使用該文件夾在 Windows 操作系統(tǒng)和 Linux 操作系統(tǒng)之間轉(zhuǎn)換文件。在 Windows 資源瀏覽器中,將 c:\omwb\Omwb\sqlloader_scripts\SQLServer2K\<timestamp> 中的 Oracle 文件夾及其內(nèi)容復(fù)制到 c:\vmware_shared 文件夾中。
注意:SQL*Loader 腳本已經(jīng)位于 Linux 操作系統(tǒng)的 /home/oracle/wkdir/omwb 目錄中。您也可以忽略第 10 - 12 步,直接開始第 13 步,來運(yùn)行 SQL*Loader 腳本。
|
11. |
在 Linux 操作系統(tǒng)中,打開終端窗口輸入以下命令,將 SQL*Loader 腳本移至 Oracle 移植工作臺(tái)的工作目錄:
cd /mnt/hgfs/vmware_shared/oracle
ls:
cp * /home/oracle/wkdir/omwb/.
|
12. |
要執(zhí)行 SQL*Loader 腳本,執(zhí)行以下命令:
cd /home/oracle/wkdir/omwb
ls
chmod 777 sql_load_script.sh
./sql_load_script.sh
|
13. |
通過計(jì)算每個(gè)表中的行來驗(yàn)證加載操作。輸入以下命令:
cd ..
sqlplus sa/oracle
|
14. |
在 SQL*Plus 中輸入以下命令:
start count_rows
該腳本執(zhí)行以下語句:
set heading off
select ‘Basictable:‘||count(*) from sa.basictable;
select ‘Countries:‘|| count(*) from sa.countries;
select ‘Departments:‘|| count(*) from sa.departments;
select ‘Employees:‘|| count(*) from sa.employees;
select ‘Job History:‘|| count(*) from sa.job_history;
select ‘Jobs:‘|| count(*) from sa.jobs;
select ‘Locations:‘|| count(*) from sa.locations;
select ‘Regions:‘|| count(*) from sa.regions;
set heading on
您應(yīng)該在每個(gè)表中插入以下數(shù)量的行:
- Basictable: 0
- Countries: 25
- Departments: 27
- Employees: 107
- Job History: 10
- Jobs: 19
- Locations: 23
- Regions: 4
|
返回主題列表
執(zhí)行以下步驟:
1. |
在 SQL*Plus 中輸入以下命令,批準(zhǔn) sa 用戶擁有創(chuàng)建視圖的權(quán)限:
connect sys/oracle as sysdba;
grant create any view to sa;
|
2. |
在 Oracle 移植工作臺(tái)中的菜單中選擇 Action > Migrate to Oracle。
|
3. |
Migration Wizard:出現(xiàn)歡迎頁面。單擊 Next。
|
4.. |
出現(xiàn) Destination Database Details 頁面。輸入以下登錄信息并單擊 Next:
- Username:owmb_user
- Password:omwb_user
- Host: 192.168.203.11
- Port: 1521
- SID:RACDB1
|
5. |
注意:移植向?qū)Э梢宰R(shí)別以前移植的表空間、用戶以及用戶表。保持默認(rèn)選定的 No 并單擊 Next。
|
6. |
在以前的任務(wù)中,您僅使用 SQL*Loader 移植表。單擊 Next。
|
7. |
單擊 Next 接受移植其余的所有模式對(duì)象。
|
8. |
單擊 Summary 頁面上的 Finish 。
|
9. |
單擊 OK 確認(rèn)完成移植。注意沒有錯(cuò)誤或者警告。
|
10. |
如果看到錯(cuò)誤 "Failed to create synonym:omwb_emulation.LCase",則忽略錯(cuò)誤并單擊 OK 關(guān)閉 Migrating Oracle Model 窗口。
|
返回主題列表
要驗(yàn)證成功移植到目標(biāo)數(shù)據(jù)庫中的存儲(chǔ)過程和觸發(fā)器,執(zhí)行以下步驟:
1. |
在 Mozilla 瀏覽器中(在其中使 Enterprise Manager Database Console 在 Linux OS 中打開),單擊 Administration 頁面中的 Procedures 鏈接。
|
2. |
在 Procedures 頁面中,輸入 SA 作為模式名,然后單擊 Go 按鈕。
|
3. |
驗(yàn)證在 SA 模式中已經(jīng)創(chuàng)建了 3 個(gè)存儲(chǔ)過程,然后單擊 Cluster Database:RACDB 鏈接返回到 Administration 頁面:
- EXAMPLE1
- EXAMPLE3
- SECURE_DML
|
4. |
命名為 EXAMPLE2 的存儲(chǔ)過程移植如何?為此,單擊 Administration 頁面中的 Functions 鏈接。
|
5. |
在 Functions 頁面中,輸入 SA 作為模式名,然后單擊 Go 按鈕。
|
6. |
驗(yàn)證在 SA 模式中已經(jīng)創(chuàng)建 EXAMPLE2。注意,EXAMPLE2 是作為函數(shù)而不是存儲(chǔ)過程進(jìn)行移植的,因?yàn)樵?Oracle 中無返回值的例程是作為函數(shù)創(chuàng)建的。Microsoft SQL Server 不具備這些函數(shù)。單擊 Cluster Database:RACDB 鏈接返回到 Administration 頁面。
|
7. |
單擊 Administration 頁面中的 Triggers 鏈接。
|
8. |
在 Triggers 頁面中,輸入 SA 作為模式名,然后單擊 Go 按鈕。
|
9. |
驗(yàn)證 SA 模式中已創(chuàng)建以下兩個(gè)觸發(fā)器,然后單擊 Cluster Database:RACDB 鏈接返回到 Administration 頁面:
- SECURE_EMPLOYEES
- UPDATE_JOB_HISTORY
|
返回主題列表
生成和查看 Oracle 移植工作臺(tái)報(bào)告
Oracle 移植工作臺(tái)報(bào)告包含有關(guān)源和目標(biāo)數(shù)據(jù)庫的信息、匯總移植各中間過程的活動(dòng)以及記錄警告和錯(cuò)誤。要生成和查看報(bào)告,執(zhí)行以下步驟:
1. |
在 Oracle 移植工作臺(tái)中的菜單中選擇 Reports > Generate Database Migration Reports。
|
2. |
單擊 OK 確認(rèn)消息。
|
3. |
瀏覽器(如 MS Internet Explorer)自動(dòng)打開顯示 Summary_report.htm 的窗口。向下滾動(dòng)查看匯總報(bào)告信息。
|
4. |
單擊 Detailed Report 鏈接并向下滾動(dòng)查看詳細(xì)信息。
|
5. |
單擊 Error and Warnings Report 鏈接并向下滾動(dòng)查看詳細(xì)信息。
|
返回主題列表
在本課程中,您學(xué)習(xí)了如何:
|
創(chuàng)建和自定義源模型 |
|
創(chuàng)建和自定義 Oracle 模型 |
|
將模式對(duì)象和數(shù)據(jù)移植到目標(biāo)數(shù)據(jù)庫中。 |