OracleDBからEPASへのマイグレーション アセスメント

October 03, 2018

EDB Postgres


EDBマイグレーションツールの概要


EDBマイグレーション・ツールキット


DB移行における検討ポイント


システム基盤


  • システム構成におけるポイント
    -性能保証(レスポンス・タイム、スループット)
    -DB容量(データ成長率、長期保存)
    -障害対応(DBインスタンス障害、サーバ障害、ストレージ障害、災害対策)
    -拡張性(スケールアップ/スケールアウト)
    -セキュリティ

  • システム運用におけるポイント
    -起動/停止時処理
    -バックアップ/リカバリ
    -DBメンテナンス
    -運用監視(プロセス監視、ログ監視、リソース監視、パフォーマンス監視)
    -バージョンアップ/パッチ適用
    -開発環境との連携


アプリケーション開発


  • 開発言語

  • ミドルウェア

  • 使用DBオブジェクト ⇒ OMA/MTKの範疇


アセスメントの進め方


OMA01_アセスメントの進め方


段階的にアセスメントを進める


移行候補のOracleDBが多い場合には、段階的にアセスメントされる事をお薦めします。



  1. ヒアリング・ベースで、移行対象可能なOracleデータベースを選別

  2. OMAツールを用いて、移行難易度を大まかに把握し、難易度付けを行う。

  3. 難易度の高い、もしくは、低いOracleデータベースに対し、MTKを用いてデータベース移行を実際に行ってみる。


    • データベース定義 (テーブル、ビュー、ストアド・プログラム、等)

    • テーブル・データ



  4. Oracleデータベース上から、パフォーマンス上注視すべきSQLについて、レスポンス評価を行う。

  5. データ・ベース・オブジェクト以外のものに対し、移行難易度を評価する。


    • pPro*Cアプリ

    • pJava プログラム

    • p運用スクリプト (バックアップ・リカバリ、再編処理 )

    • pSQL*Loader制御ファイル




アセスメントにおけるポイント



  1. 明らかに移行困難なケースは、初期段階で断念するのもありかと思います。
    ⇒ ERP、Oracle OLAP、Pro*COBOLアプリ、市販OLE使用等

  2. EDB Postgres Advanced Server (EPAS)〜Oracle Database間で、Oracle視点での機能マッピングを行うと、当然、PPASにないものがでてきます。(もちろん、EPAS/PostgreSQL にしかない機能もありますが) NG判断の前に、サード・パーティ製品、高性能H/Wの活用や、アーキテクチャの変更を検討下さい。

  3. アセスメントにおいて、OMA(Oracle Migration Assessment)ツールとMTK(Migration Toolkit)の2つがあります。オブジェクト移行難易度の精度を上げるため、アセスメントの段階で、両ツールの実行をお薦め致します。特に、ストアド・プログラムは、MTKで実際に移行しないと判断が難しいケースがあります。

  4. 移行検証ツールは提供されていないので、自前で手順やツールを準備する必要があります。

  5. OMA及びMTK共に、データベース・オブジェクトの移行難易度のアセスメントのみ行います。SQL*Loaderや運用スクリプト、性能面への影響や、アプリケーション(JavaやPro*C等)の変更度合いなどは対象外となりますので、別途、アセスメント が必要です。


データベース評価の実施手順


OMA02_データベース評価の実施手順


Oracle Migration Assesment(OMA)の概要



  • Oracleデータベースのデータ・ディクショナリから、EPAS側で非サポートかもしれないものを、キーワード検索してレポーティングしてくれるアセスメント・ツール。

  • アセスメント・ツールなので、データ移行などは、一切行わない。

  • 基本的に、PPAS9.1/9.2ベースでレポートされる。新しいバージョンでは、対応されているものも出力されるので、マニュアル等で調査が必要。

  • 出力ファイルは、以下の2種類


    1. summary.analysis   どのような問題があるか、その数を把握可能

    2. <schemaname>.out  各スキーマ事の問題のある箇所を把握可能



  • 製品には付属されていない。もともとは、プリセール段階で、移行難易度を評価し、コンサルテーション等に繋げるものなので、アセスメント精度は比較的粗い。但し、多くの移行対象データベースの移行難易度を、短時間で把握するのには適する。

  • SJIS/EUC のOracleの場合、出力されたCSVファイルは、SJISもしくはEUCエンコーディングとなっているため、UTF8に変換が必要です。

  • マニュアルはなし。


OMA実行イメージ


OMA03_OMA実行イメージ


①で検索されるOracleデータ・ディクショナリ・ビュー



  • dba_tables

  • dba_indexes

  • dba_part_tables

  • dba_part_indexes

  • dba_nested_tables

  • dba_triggers

  • dba_dimensions

  • dba_synonyms

  • dba_mviews

  • dba_db_links

  • dba_source

  • dba_jobs

  • dba_outlines

  • dba_policies

  • dba_coll_types

  • dba_varrays

  • dba_profiles

  • dba_users

  • dba_repobject

  • dba_views

  • dba_tab_columns


①で検索される様々な機能



  • Materialized View Usage

  • Profiles

  • Oracle Specific Function Search

  • Resource Manager

  • Replication Usage

  • Database Link


アセスメントレポート②の出力例: Summary CSV Example


1,MEDNETSTUDY,24-FEB-12,orcl,SGS,BACKGROUND,Database Version,112010,0


2,MEDNETSTUDY,24-FEB-12,orcl,SGS,BACKGROUND,Total Database Size(GB),3.93,0


3,MEDNETSTUDY,24-FEB-12,orcl,SGS,BACKGROUND,Total Schema Size(MB),1440.6875,0


4,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,DATABASE LINK,16,0


5,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,FUNCTION,41,0


6,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,INDEX,9833,0


7,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,LOB,499,0


8,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,PROCEDURE,1,0


9,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,SEQUENCE,6672,0


10,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,TABLE,12220,0


11,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,TRIGGER,150,0


12,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,TYPE,8,0


13,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,VIEW,4567,0


14,MEDNETSTUDY,24-FEB-12,orcl,SGS,OBJECTS,Total Object Count,34007,0


15,MEDNETSTUDY,24-FEB-12,orcl,SGS,CONSTRAINTS,CHECK OR NOT NULL,21481,0


16,MEDNETSTUDY,24-FEB-12,orcl,SGS,CONSTRAINTS,FOREIGN KEY,10567,0


17,MEDNETSTUDY,24-FEB-12,orcl,SGS,CONSTRAINTS,PRIMARY KEY,5973,0


18,MEDNETSTUDY,24-FEB-12,orcl,SGS,CONSTRAINTS,UNIQUE KEY,120,0


19,MEDNETSTUDY,24-FEB-12,orcl,SGS,DATATYPE,Count,0,1


アセスメントレポート②の出力例: Detail CSV Example


1,MEDNETSTUDY,24-FEB-12,orcl,PDG,EXACT_CAS_PROCEDURE_VU,DATATYPE,CASP_PROC_POSTSTENT_DIAM,NVARCHAR2,,,,,,,,


2,MEDNETSTUDY,24-FEB-12,orcl,PDG,EXACT_CAS_PROCEDURE_VU,DATATYPE,CASP_PROC_PREFILT_BAL_DIAM,NVARCHAR2,,,,,,,,


3,MEDNETSTUDY,24-FEB-12,orcl,PDG,RAPID_SEARCH,DATATYPE,PS_FORMID,NVARCHAR2,,,,,,,,


4,MEDNETSTUDY,24-FEB-12,orcl,PDG,RIGHT_SEARCH,DATATYPE,PS_FORMID,NVARCHAR2,,,,,,,,


5,MEDNETSTUDY,24-FEB-12,orcl,PDG,VALSITE_LANG_STRING,DATATYPE,LS_KOR,NVARCHAR2,,,,,,,,


6,MEDNETSTUDY,24-FEB-12,orcl,PDG,NVL_VAL_INCFLAG1_IDX,INDEX,ACT1_VALIDATION,FUNCTION-BASED NORMAL,TABLE,DEFAULT,DISABLED,1,ENABLED,,,


7,MEDNETSTUDY,24-FEB-12,orcl,PDG,NVL_VAL_INCFLAG2_IDX,INDEX,ACT1_VALIDATION,FUNCTION-BASED NORMAL,TABLE,DEFAULT,DISABLED,1,ENABLED,,,


8,MEDNETSTUDY,24-FEB-12,orcl,PDG,NVL_VAL_INCFLAG3_IDX,INDEX,ACT1_VALIDATION,FUNCTION-BASED NORMAL,TABLE,DEFAULT,DISABLED,1,ENABLED,,,


9,MEDNETSTUDY,24-FEB-12,orcl,PDG,NVL_VAL_INCFLAG4_IDX,INDEX,ACT1_VALIDATION,FUNCTION-BASED NORMAL,TABLE,DEFAULT,DISABLED,1,ENABLED,,,


10,MEDNETSTUDY,24-FEB-12,orcl,PDG,NVL_VAL_INCFLAG5_IDX,INDEX,ACT1_VALIDATION,FUNCTION-BASED NORMAL,TABLE,DEFAULT,DISABLED,1,ENABLED,,,


11,MEDNETSTUDY,24-FEB-12,orcl,PDG,NVL_VAL_INCFLAG6_IDX,INDEX,ACT1_VALIDATION,FUNCTION-BASED NORMAL,TABLE,DEFAULT,DISABLED,1,ENABLED,,,


12,MEDNETSTUDY,24-FEB-12,orcl,PDG,NVL_VAL_INCFLAG7_IDX,INDEX,ACT1_VALIDATION,FUNCTION-BASED NORMAL,TABLE,DEFAULT,DISABLED,1,ENABLED,,,


Migration Tool Kit(MTK)の概要



  • 製品に付属されている、データベース移行ツールで、Oracleだけでなく、MS SQL Server/MySQL/Sybase 等からの移行が可能。Oraceの場合は、ストアド・プログラムやロールも移行可能。

  • Javaベースのアプリで、基本的に、JDBCを用いてDB接続を行う。

  • キャラクタ・セットがSJISTILDAのOracleデータベースから、サーバ・エンコーディングがUTF-8のPPASへのデータ移行が可能。

  • オンライン・モード、オフライン・モードの選択が可能。

  • オブジェクト名の大文字/小文字の違いも吸収可能。(PPAS9.4〜)

  • マルチ・バイトでオブジェクト名を定義している場合は要注意。

  • 移行できないオブジェクトは、ログに出力されるので、手動でリカバリを行う。

  • マニュアルは、「Postgres Plus Migration Guide」


MTK実行イメージ


OMA04_MTK実行イメージ


OMAの実行手順


On Production System

1.Export Oracle Database dump with data-less mode by using exp/expdp


On Oracle database in SIer

2.Import dump data to Oracle Database by using imp/impdp


3.Execute edborascan.sql on SQL*Plus


4.Get CSV file which generated in step#3


On PPAS database in SIer

5.Copy CSV file (generated in step#4) from oracle environment to PPAS environment   ** same directory which analyze.sh will be copied


6.(if needs) install PPAS


7.Creata database name :orascanner


8.Execute edborascan_tables.sql on psql


9.Execute edborascan_views.sql on psql


10.Execute scanrpt_new.sql on psql


11.Edit the line include “PPBIN” environemt variable(line#5) of analyze.sh


12.Execute analyze.sh on linux terminal


How to execute edborascan.sql


OMA05_how-to-exeute-edborascan-sql


OMAの実行手順(イメージ)


OMA06_OMAの実行手順イメージ



MTK の実行手順



  1. JDBC Driver for Oracleのインストール


    • $JAVA_HOME/jre/lib/ext  配下に置く



  2. toolkit.properties ファイルの編集

  3. ツールの実行


    • rootユーザで実行します。
      <実行例>
      > $cd EDBHOME/bin
      > ./runMTK.sh -dropSchema true -targetSchema hr -logBadSQL -logDir /root/enterprisedb/mtklog/9.4 -verbose on HR




toolkit.properties ファイル



  • SRC_DB_URL=jdbc:oracle:thin:@localhost:1521:xe

  • SRC_DB_USER=system

  • SRC_DB_PASSWORD=XXXXX

  • TARGET_DB_URL=jdbc:edb://localhost:5446/hr

  • TARGET_DB_USER=enterprisedb

  • TARGET_DB_PASSWORD=YYYYY


Migration Tool Kit(MTK) 9.4


ログ・ファイル名(フォーマットが変わりました)


[ 〜 PPAS9.3 ]
mtk_<timestamp>.log


[ PPAS9.4 〜 ]
mtk_<schemaname> _<timestamp>.log


Migration Tool Kit(MTK) 9.4


追加されたオプション



  1. -useOraCase
    Oracle のデフォルトであるアッパーケースに変換して移行を行う
    【! 注意】Oracle側で、大文字と小文字が混在している状態でも、このオプションをつけると、すべて大文字で移行される

  2. -logBadSQL
    エラーが発生したオブジェクトについて、そのDDL文をファイルに残す指定。
    ファイル名 = mtk_bad_sql_schemaname_timestamp.sql


Migration Tool Kit(MTK) 9.4 〜 -useOraCaseオプション


-useOraCaseオプションを使用しない場合

./runMTK.sh -dropSchema true -targetSchema beta94 -logBadSQL -verbose on scott,beta94


OMA13_MTK9-4


-useOraCaseオプションを使用 した場合

./runMTK.sh -dropSchema true -targetSchema beta94 -useOraCase -logBadSQL -logDir /root/enterprisedb/mtklog/9.4 -verbose on scott,beta94


OMA14_MTK9-4


Migration Tool Kit(MTK) 9.4 -logBadSQL オプション


結果ログ(抜粋)


OMA15_MTK9-4



OracleDBからEPASへのマイグレーション事例


薬学共用試験センター、74大学の中継サーバをOSSデータベースに移行し、システムの安定性維持とコスト削減を実現


薬学共用試験センター


特定非営利活動法人 薬学共用試験センター様は、薬学共用試験の一つであるCBTシステムのオープンシステム化を目指し、74大学すべての中継サーバをオープンソース・ソフトウェア(OSS)ベースのデータベース「EDB Postgres」に移行。入念な事前検証により短期間で移行を完了し、システムの安定性維持とコスト削減を実現しました。


詳細は富士通SSL社ホームページにて。


▼【事例】特定非営利活動法人 薬学共用試験センター


Share this