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

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社ホームページにて。

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