iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
0

今天筆者介紹的是 Oracle DB 的移轉。

簡單的資料分析

資料庫裡頭的欄位都是簡單欄位,所以基本上沒有什麼欄位的不合問題。

原來的想法

之前介紹的 MySQL Workbench 沒有直接可以轉 Oracle DB 的功能,有試過 Generic RDBMS 的選項,但是沒有成功。

Google 一下沒有免費的資訊,但是找到了 SQL Server Migration Assistant(SSMA) for Oracle,就想到一個方法

Oracle DB -> SQL Server -> MariaDB

不過很可惜的是,沒有找到什麼好方法能夠自動用 Script 匯出 Oracle DB 的資料。

Oracle DB 移轉紀錄

Schema 部份

  • 找一台中繼的 SQL Server (2008 R2),當作匯入 Oracle DB Schema 的對象
  • 透過 MySQL Workbench 從那台中繼的 SQL Server 匯入 Schema 到 MariaDB

透過 SSMA for Oracle 很簡單,只要如下的步驟就可以完成了

  • 開新專案
  • 接上 SQL Server
  • 接上 Oracle DB
  • 在 Oracle DB 選要轉換的 Schema,選擇 Convert
  • 在 SQL Server 上選擇剛剛轉換好的 Schema,選擇 Sync
  • 完成

美中不足的是,如果你需要轉換多個 Instances 或是 Services (Multitenant DBs),就要一直新開新專案,不能只改接到 Oracle DB 的連線。

資料部份

透過 Oracle DB SQL Developer 的 Database Export 功能來匯出資料。

與前一篇的規則一樣,設定也是一樣,只是 SQL Server 有 bcp,這裡就只能用點的。
SQL Seveloper Data Export 1

這裡可以設定匯出規則。
SQL Seveloper Data Export 2

與前一篇同樣的,遇到了 UTF-8 匯出不能被 MariaDB load file 的問題,所以在 Encoding 的地方選了 UTF-8 或是 Big5。

  • 匯入沒有問題時 load data local infile 'e://import//table_utf8.csv' into ... fields terminated by '\t' lines terminated by '|';
  • 匯入有問題用 Big5 匯入時 load data local infile 'e://import//table_utf8.csv' into ... character set big5 fields terminated by '\t' lines terminated by '|';

接下來是漫長的對檔過程,最後終於完成 Oracle DB 移轉資料到 MariaDB的目標。


上一篇
移轉資料到 MariaDB [1]
下一篇
資料庫 ACL 與帳號管理
系列文
MariaDB 的使用與管理30

尚未有邦友留言

立即登入留言