今回は、OSSつながりということで、MySQLのマイグレーションツールキットについて書いてみようと思います。
MySQLは言わずと知れた実用度の高いOSS-RDBMSです。
MySQLでは無償にて他データベースからスキーマとデータ移行をヘルプするツールが提供されています。
それが今回移行に使用したMySQLマイグレーションツールキットです。

今回から数回に分けてOracle10g→MySQLの移行手順を書いてみようかと思います。
まず第一回目ということで、OracleおなじみのEMP表をMySQLへ移行してみたいと思います。
EMP表などのSCOTTスキーマ配下のサンプルテーブルはデータ型が非常に簡潔なのですが、外部キー制約など基本的な機能が定義されているのでMySQLにどんな感じで移行されるのかを見るには持ってこいの素材であると思います。
EMP表の移行後は、Oracle独自のデータタイプがどのように移行されるか(または自動移行できない部分についてどのように手動マッピングできるか)について見ていこうかと思います。
MySQLマイグレーションツールキットは、Version1.1.14現在以下のソースデータベースからの移行をサポートしています。
・Oracle
・Microsoft SQL Server
・Microsoft Access
・Sybase
・MySQL
・MaxDB
・Generic JDBC
Generic JDBCは、JDBCドライバが提供されているDBに対してJDBC-APIにてメタデータの抽出、データの移行を行う機能です。JDBCドライバさえ提供されていれば移行に必要なテンプレート的SQLを生成してくれるので、広範囲なDBMSからの移行作業の工数を少なく出来るのではないでしょうか。
以下にMySQLマイグレーションツールキットを使用して他DBより移行する場合の大まかな流れを説明します。
全てグラフィカルに出来るので非常にやりやすいです。(とっつきやすいツールですね)
1.移行元DBへの接続設定
2.移行先DBへの接続設定
3.移行元DBへ接続しスキーマ情報を取得
4.移行先DBへの接続テスト
5.移行対象のスキーマを選択(グラフィカルに表示される)
6.移行元DBから情報をリバースエンジニアリング(抽出)
7.移行対象オブジェクトの選択(テーブル、View、ストアドルーチンその他)
8.移行元⇔移行先間のオブジェクトマッピング指示(自動または手動)
9.SQL(DDL: CREATE TABLE文)生成
10.エラーリポート(自動移行判定できなかったデータタイプなどが表示され、必要ならば手動でSQLを修正する)
11.オンラインでデータベースオブジェクトを移行先で生成/生成SQL文をファイルに出力
12.データのバルク転送(オンラインで転送/データロードSQL生成)
13.最終結果の表示、リポートファイルへの出力
ツールで対応できない部分についても、編集可能なSQLを生成してくれるのであとはレビュー・修正を行う形で補えます。
次回はOracleのEMP表(SCOTTスキーマ)をMySQLに移行するための具体的な手順を書いてみたいと思います。

