OracleからMySQLへ オブジェクトとデータ型の「移行コスト評価」を実施する実践 OSSデータベース移行プロジェクト(4)(1/2 ページ)

本連載では、商用DBMSからOSSデータベースへの移行を検討する企業に向け、「MySQL」への移行プロジェクトで必要となる具体的なノウハウをお届けします。今回は、Oracle DatabaseからMySQLへの移行に向けたステップである「オブジェクト/データ型の移行コスト評価」を行います。

» 2017年03月31日 05時00分 公開
[荻野邦裕SCSK株式会社]

連載バックナンバー

 前回までは、「Oracle Database」から「MySQL」への移行計画における概要を説明してきました。

 今回から、具体的な移行計画を考えていきましょう。DBMS(データベース管理システム)の移行プロジェクトにおいては、「移行計画の策定」や「MySQLでのDBMS設計」とともに、「移行コストを把握するための情報情報」が必要となるでしょう。

 そこで本稿では、「Oracle Database 11.2.0.4 Standard Edition One(SE1)」から「MySQL 5.7 Community Edition(ストレージエンジン:InnoDB)」への移行を計画する、ある製造業(仮名:株式会社豊洲部品)の架空プロジェクトを例に、移行支援パートナーである弊社がこれらの情報をどのように収集し、評価を実施したのか。「評価目的」「情報取得方法」と、その「評価結果」を確認するまでの流れを紹介します。

 なお株式会社豊洲部品(仮名)の現システム規模は、以下のOracle環境であるという前提で話を進めていきます。これはOracle Databaseのライセンス体系変更に伴い、コスト増の回避策を含めてMySQLへ移行するのに適していると位置付けられる構成の一例となります。

現(移行前)Oracle環境
項目  
OS Windows2008R2 64bit
プロダクト名(バージョン) Oracle Database 11g R2 SE1(11.2.0.4.0)
データベース名 APODB
ブロックサイズ 8192バイト
キャラクタセット JA16SJIS
各国語キャラクタセット AL16UTF16
接続モード 専用サーバモード
ユーザーデータ容量 約200GB
最大同時接続数 100
アプリケーション VB(oo4o)、PL/SQLストアドプロシージャ

手順1:オブジェクト種別とカラムデータ型評価の目的を理解する

 本評価は、MySQLへ移行する場合の「コスト(=作業量)を把握する」ことが目的です。次の手順で、現時点で実装しているオブジェクト種別ごと、データ型ごとの個数を確認していきます。

 作業コストは、オブジェクト種別ごと、データ型ごとに以下の3段階で評価します。

  • 移行コスト:(0〜0.5人月)
  • 移行コスト:中程度(0.5〜1人月)
  • 移行コスト:(1人月以上)

手順2:オブジェクト種別とカラムデータ型の情報を取得する

 オブジェクト種別とカラムデータ型の情報は、以下2通りの取得方法があります。

  • 「データディクショナリ・ビュー」を参照する
  • 「DataPumpユーティリティ」を使用する

「データディクショナリ・ビュー」を参照する方法

 オブジェクト種別の情報は、以下の「データディクショナリ・ビュー」を参照して確認します。データディクショナリ・ビューで、データベース内のオブジェクトや表領域、ユーザー、権限など、データベースに関する情報をテーブル形式で取得できます。

  • DBA_OBJECTS
  • DBA_TABLES
  • DBA_TAB_PARTITIONS
  • DBA_INDEXES
  • DBA_IND_PARTITIONS
  • DBA_TRIGGERS
  • DBA_DIMENSIONS
  • DBA_DIRECTORIES
  • DBA_JOBS
  • DBA_SOURCE
  • DBA_LIBRARIES
  • DBA_TYPES

 カラムデータ型の情報も、同じく以下のデータディクショナリ・ビューを参照して確認します。

  • DBA_TAB_COLUMNS

「DataPumpユーティリティ」を使用する方法

 DataPumpユーティリティでは、以下のコマンドを用いて情報を取得できます。

  • (1)「expdp」コマンドでメタデータをエクスポートする
expdp USER/PASSWD FULL=Y CONTENT=METADATA_ONLY DUMPFILE=IKO_DIR:full_meta.dmp 
EXCLUDE=STATISTICS LOGFILE=IKO_DIR:exp_full_meta.log
(例)
  • (2)「impdp」コマンドでメタデータからSQL文(DDL:Data Definition Languageなど)を生成する
impdp USER/PASSWD DUMPFILE=IKO_DIR:full_meta.dmp SQLFILE=full_meta.sql
LOGFILE=IKO_DIR:cr_sql.log
(例)
  • (3)(2)で生成されたDDLから調査を行う

 テキスト編集ツールを用いて、(2)で生成されたアプリケーションスキーマのDDLから、種別ごとの集計などのオブジェクト種別とデータ型の調査を実施します。

 続いて、取得した情報を基に、項目ごとの移行評価を行っていきます。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。