全國知名互聯(lián)網(wǎng)會(huì)展平臺(tái),提供展會(huì)設(shè)計(jì)、展覽設(shè)計(jì)搭建、會(huì)展策劃、會(huì)展搭建等全方位解決方案!

有多少兄弟做過從oracle到mysql的遷移

提問者: 賈建|瀏覽 128 次|提問時(shí)間: 2016-12-10

已有 1 條回答

郎逸丹

2016-12-22 最終答案
  前言  之前搭建了一個(gè)ExtJS + spring + Oracle 的這樣一個(gè)報(bào)表系統(tǒng)的框架。 因?yàn)槠渌块T的要求, 也需要這個(gè)Framework 進(jìn)行一些特殊的定制?! 〉怯幸粋€(gè)問題是 Oracle 的數(shù)據(jù)庫是需要收費(fèi)的, 個(gè)人使用倒沒什么問題, 公司使用的話就會(huì)有侵權(quán)的問題了?! 《鳰ySQL 則是完全免費(fèi)的?! ∷允褂?ExtJS + Spring + MySQL 這樣的組合應(yīng)該就沒什么問題了?! ±碚撋蟻碚f, MySQL 已經(jīng)被Oracle 收購, 這兩者之間的Migrate 應(yīng)該比較容易, 但實(shí)際的遷移還是有一些問題, 以下就說一說一些實(shí)現(xiàn)的方式和問題。  方式一: 手動(dòng)方式導(dǎo)入導(dǎo)出  手動(dòng)的方式導(dǎo)入, 就是操作步驟會(huì)比較繁瑣一些?! able 的結(jié)構(gòu)和數(shù)據(jù):  1. 使用 SQL Developer 把 oracle 的 table 的schema 和 Data(.sql 和 .xls) 導(dǎo)出2. 使用 MySQL 的 WorkBench 創(chuàng)建 Table 和導(dǎo)入數(shù)據(jù)?! ∵@里語法上會(huì)稍微有一些不同, 所以需要略微做一些調(diào)整?! τ赩iew 來說, 特別是復(fù)雜的有子查詢的Oracle View 說, 要導(dǎo)入到MySQL 看起來就不是那么容易了?! 》绞蕉?使用工具Navicat 進(jìn)行導(dǎo)入  http://www.navicat.com.cn  Navicat , 這是MySQL 官方網(wǎng)站上有人建議使用的工具。 這是一個(gè)收費(fèi)的軟件。 目前的收費(fèi)是 1000 到1600 人民幣。 但是可以免費(fèi)試用一個(gè)月?! ∠螺d安裝后, 啟動(dòng)的頁面如下:  遷移的流程如下:  1. 新建數(shù)據(jù)庫的連接  建立需要遷移的Oracle 和 MySQL 的數(shù)據(jù)庫連接?! ×硗?, 建立Oracle 連接的時(shí)候還需要下載一個(gè)oci.dll 的文件?! ∠螺d地址:  http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html下載之后, 解壓到某個(gè)目錄:  在 Navicat 的 工具 --> 選項(xiàng) 下做類似如下設(shè)置:  InstantClientOptions.jpg  細(xì)部可以參見:  http://wiki.navicat.com/wiki/index.php/Instant_client_required完成設(shè)置后, 重啟 navicat  2. 設(shè)置過連接之后, 接下來就可以進(jìn)行表和數(shù)據(jù)的migrate 了點(diǎn)擊: 工具 --》 數(shù)據(jù)傳輸  在 "常規(guī)" 的標(biāo)簽頁中設(shè)置需要 migrate 的連接在 “高級” 的標(biāo)簽頁中 , 設(shè)置需要 migrate 哪些具體的內(nèi)容:  配置完成之后, 點(diǎn) "開始" 就可以了。  基本上: 對于 Table 的結(jié)構(gòu)和數(shù)據(jù)的遷移的話, 基本上沒什么問題?! 〉菍τ?View 的導(dǎo)入, 因?yàn)镸ySQL 的View 的語法不能有子查詢語句?! ≡贜avite 上, 可以看到從 Oracle 導(dǎo)入到 MySQL 的時(shí)候, View 的Checkbox 不能選取。  方式三: 使用工具DBMover 的OracleToMySQL 進(jìn)行導(dǎo)入DBMover這個(gè)網(wǎng)站也提供了 Oracle 到 MySQL 遷移的工具?! ∠螺d地址是:  http://dbmover.com/download/oracletomysql_cn.zip這也是一個(gè)收費(fèi)的軟件, 試用版的限制是: 允許遷移的記錄條數(shù)累計(jì)為10萬條?! ∠螺d安裝,啟動(dòng)后會(huì)先要求輸入 數(shù)據(jù)庫連接的信息緝儲(chǔ)光肥叱堵癸瑟含雞:  一直配置完成之后的頁面是:  這里就只能看到table 了?! 『蚇avicat比較起來, 感覺這個(gè)顯得簡單, 只能migrate table , 而且使用上也不是很方便?! ∠乱淮蜯igrate 又得重頭到尾輸入一次, 沒辦法記住之前配置的連接。  方式四: 使用工具intelligent-converters 的 oracle-to-mysql 進(jìn)行導(dǎo)入同樣是一個(gè)收費(fèi)的工具:  下載地址:  http://www.intelligent-converters.com/oracle-to-mysql.htm使用版的限制是每個(gè)table 只能導(dǎo)入 5 筆數(shù)據(jù)?! 〔僮鞣绞缴虾虳bRemover 提供的很類似。好處是能記住上次的一些連接信息。  同樣只能對表進(jìn)行導(dǎo)入?! ?dǎo)入的頁面: