本文主要總結(jié)了oracle數(shù)據(jù)庫遷移到mysql的方法,方法包括手動方式導(dǎo)入導(dǎo)出、使用工具navicat 進行導(dǎo)入、使用工具dbmover 的oracletomysql 進行導(dǎo)入和使用工具intelligent-converters 的 oracle-to-mysql 進行導(dǎo)入,需要的朋友可以參考下。
前言
之前搭建了一個ExtJS + spring + Oracle 的這樣一個報表系統(tǒng)的框架。 因為其他部門的要求, 也需要這個Framework 進行一些特殊的定制。
但是有一個問題是 Oracle 的數(shù)據(jù)庫是需要收費的, 個人使用倒沒什么問題, 公司使用的話就會有侵權(quán)的問題了。
而MySQL 則是完全免費的。
所以使用 ExtJS + Spring + MySQL? 這樣的組合應(yīng)該就沒什么問題了。
理論上來說, MySQL 已經(jīng)被Oracle 收購, 這兩者之間的Migrate 應(yīng)該比較容易, 但實際的遷移還是有一些問題, 以下就說一說一些實現(xiàn)的方式和問題。
方式一: 手動方式導(dǎo)入導(dǎo)出
手動的方式導(dǎo)入, 就是操作步驟會比較繁瑣一些。
對Table 的結(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ù)。
這里語法上會稍微有一些不同, 所以需要略微做一些調(diào)整。
對于View 來說, 特別是復(fù)雜的有子mysql的Oracle View 說, 要導(dǎo)入到MySQL 看起來就不是那么容易了。
方式二: 使用工具Navicat 進行導(dǎo)入
Navicat , 這是MySQL 官方網(wǎng)站上有人建議使用的工具。 這是一個收費的軟件。 目前的收費是 1000 到1600 人民幣。 但是可以免費試用一個月。?
下載安裝后, 啟動的頁面如下:
遷移的流程如下:
1. 新建數(shù)據(jù)庫的連接
建立需要遷移的Oracle 和 MySQL 的數(shù)據(jù)庫連接。
另外, 建立Oracle 連接的時候還需要下載一個oci.dll 的文件。
下載之后, 解壓到某個目錄:
在 Navicat? 的 工具 –> 選項 下做類似如下設(shè)置:
完成設(shè)置后, 重啟 navicat
2.? 設(shè)置過連接之后, 接下來就可以進行表和數(shù)據(jù)的migrate 了
點擊: 工具 –》 數(shù)據(jù)傳輸
在 “常規(guī)” 的標簽頁中設(shè)置需要 migrate 的連接
在 “高級” 的標簽頁中 , 設(shè)置需要 migrate 哪些具體的內(nèi)容:
配置完成之后, 點 “開始” 就可以了。
基本上: 對于 Table 的結(jié)構(gòu)和數(shù)據(jù)的遷移的話, 基本上沒什么問題。
但是對于 View 的導(dǎo)入, 因為MySQL 的View 的語法不能有子查詢語句。
在Navite 上, 可以看到從 Oracle 導(dǎo)入到 MySQL 的時候, View 的Checkbox 不能選取。
方式三: 使用工具DBMover 的OracleToMySQL 進行導(dǎo)入
DBMover這個網(wǎng)站也提供了 Oracle 到 MySQL 遷移的工具。
這也是一個收費的軟件,? 試用版的限制是: 允許遷移的記錄條數(shù)累計為10萬條。
下載安裝,啟動后會先要求輸入 數(shù)據(jù)庫連接的信息:
一直配置完成之后的頁面是:
這里就只能看到table 了。
和Navicat比較起來, 感覺這個顯得簡單, 只能migrate table , 而且使用上也不是很方便。
下一次Migrate 又得重頭到尾輸入一次, 沒辦法記住之前配置的連接。
方式四: 使用工具intelligent-converters 的 oracle-to-mysql 進行導(dǎo)入
同樣是一個收費的工具:
使用版的限制是每個table 只能導(dǎo)入 5 筆數(shù)據(jù)。
操作方式上和DbRemover 提供的很類似。好處是能記住上次的一些連接信息。
同樣只能對表進行導(dǎo)入。
導(dǎo)入的頁面:
總結(jié)