? ???????????????????異構數據庫遷移
其他數據庫遷移到 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:這上面如何加上圖片呢?圖片為什么不顯示?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
