異構數據庫遷移
其他數據庫遷移到oracle,以移植db2數據庫對象到Oracle的操作說明為例,其他數據庫遷移到oracle類似。
移植之平台和相關工具
OS:linux
DBMS:db2 Oracle 10g for linux
Migration Tool:Oracle sql developer-2.1.1.64.45
Sql Develper和Migration Workbench簡單介紹
以下是摘自Oracle官網:
Ⅰ Oracle SQL Developer 是一個免費的圖形化數據庫開發工具。使用 SQL Developer,您可以瀏覽數據庫對象、運行 SQL 語句和 SQL 腳本,並且還可以編輯和調試 PL/SQL 語句。您還可以運行所提供的任何數量的報表,以及創建和保存您自己的報表。SQL Developer 可以提高工作效率並簡化數據庫開發任務。
SQL Developer 可以連接到任何9.2.0.1 版和更高版本的 Oracle 數據庫,並且可以在 Windows、Linux 和 Mac OSX 上運行。
Ⅱ Oracle SQL Developer 移植工作台是重新開發的新工具,它極大地擴展了原來的 Oracle 移植工作台的功能和可用性,可以將 Microsoft Access、Microsoft SQL Server 和 MySQL以及db2(早期低版本的sqldeveloper不支持db2) 數據庫移植到 Oracle。
移植之驅動配置
1) 檢查下你裝的Sql Developer的版本,我的是Oraclesql developer-2.1.1.64.45。
2) 配置Sql Developer的運行環境,因為如果設置不好,我們將不能連接第三方數據庫(非oracle數據庫),本文指的就是db2.
背景知識1:不加載驅動之前,如果我們新建立一個數據庫連接時,會出現如下窗口。這里可以連接的數據庫,僅僅是Oracle和Access (即是兩種默認的數據庫)
見圖(一)
圖(一)
怎么可以讓SQL Developer可以訪問其它數據庫?
答案是:添加JDBC 驅動,使其可以訪問諸如db2、My Sql、Sybase等數據庫.
添加三方數據庫支持的方法
點擊sql developer的菜單的選項→ 工具(Tools)→ 首選項(Prefences).見圖(二)。
圖(二)
點擊彈出對話框中數據庫(Database)選項→第三方JDBC 驅動程序(Third Party JDBC Drivers)→添加條目,把你的驅動程序加進去。如下圖三
圖 三
補充說明,這個應該先說的. 即是我們首先要准備好db2的JDBC驅動。
至此我們僅僅是做了可以建立db2的連接的准備工作。
真正的開始
以上只是配置Oracle Sql Developer可以連接db2,這是前提.之下的才是移植的步驟
Step 1 create a oracle connect
鼠標選中連接,然后單擊右鍵,選擇建立新連接,彈出新建/選擇數據庫連接窗口,連接名任意命名,用戶system 口令及system用戶密碼,主機名oracle數據庫所屬主機ip,端口1521,sid 是oracle的實例名,填寫好的樣式如下圖四
圖四
建立次連接的用途: 1 把資料檔案庫建立在此連接上
2執行移植過程中產生的DDL語句
3 為什么用system用戶連接,涉及到權限問題,最好用system用戶。
Step 2 :creat a DB2 connect
方法同建立Oracle的連接類似,配置是否成功,點擊測試可以查看是否成功,這個連接就是你要遷移的源數據庫目標。這里不再贅述。截圖見圖五:
圖五
step 3 create arepository(創建檔案資料庫)
這一步創建資料檔案庫,工具---à移植-à資料檔案管理-à創建資料檔案庫如圖六
圖六
緊接上圖,鼠標左鍵單擊創建資料檔案庫,則會出現如下圖七樣例,從下列菜單中選擇test1_25,此連接名就是step1創建的連接,單擊創建,把資料檔案庫建立在此連接上。
圖7
Step 4 Capture table (捕獲表)
這時依次展開之前建立的db2的連接(我的例子名稱是db2test13),找到要遷移的表,選擇捕獲表(Capture db2),所捕獲的表即是遷移的表,如圖八,點擊之后會彈出捕獲數據庫窗口,捕獲結束后,點擊關閉按鈕即可,這時你再看左邊欄下的捕獲的類型將多出一個db2數據庫樣的連接,圖九標示紅線部分
圖八
圖九
Step 5 Convert to Oracle model
選中剛才捕獲表后的那個連接,及圖九紅線標示所指連接,右鍵選擇轉化為oracle模型,這是左邊欄的轉換的模型將多一個節點,如圖十
圖十
Setp 6 修改方案名
此處需要修改方案名,方案名要與導入數據庫中的方案名相同如圖十一。
圖十一
Step 7 Generate Sql
右擊Step 5下的轉換的模型→點擊生成(生成Oracle能識別的SQL語法),見圖十二,生成的sql見圖十三。
圖十二
圖十三
Step 8 execute sql
連接上要導入的數據庫,如圖十四標示,執行剛才生成的sql。
圖十四
Step 9 Move Data
Step 5下的轉換的模型,右鍵,選擇移動數據。如下圖十五
圖 十五
圖 十六
Step 10 Test
select table_name from user_tables 通過此查詢可以查詢出剛才遷移的表名
select * from 表名(遷移的表名) 查詢遷移的數據
ps:這上面如何加上圖片呢?圖片為什么不顯示?