• 検索結果がありません。

Oracle Migration Assessment アプリケーション 1

N/A
N/A
Protected

Academic year: 2021

シェア "Oracle Migration Assessment アプリケーション 1"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

1

Oracle Migration Assessment

アプリケーション

(2)

2

目次

1. 1. アプリケーション移行の概要 ... 6

1.1 アプリケーション移行パターンと検討項目の概要 ... 6 1.2 ソース プログラム移行 ... 8 1.3 BI 機能を活用した移行 ... 9 1.4 サーバーの仮想化・集約の検討 ... 10 1.5 パターン選択の参考要件... 11

2. アプリケーション移行の処理の流れ ... 12

2.1 ソース プログラム移行 ... 12 2.1.1 移行元システムと移行先システムの調査 ... 12 2.1.2 ソース プログラム分析... 13 2.1.3 ソース プログラム移行... 13 2.2 BI 機能を活用した移行 ... 14 2.2.1 移行元システムの調査 ... 14 2.2.2 BI 機能の検討 ... 14 2.2.3 BI の作成 ... 14 2.3 サーバーの仮想化・集約の検討 ... 15 2.3.1 サーバーリソース調査 ... 15 2.3.2 サーバー仮想化・集約の構成検討 ... 16 2.3.3 仮想化・集約サーバーの作成 ... 16

3. アプリケーション移行のポイント ... 17

3.1 ソース プログラム移行 ... 17 3.1.1 移行元システムと移行先システムの調査 ... 17 3.1.2 ソース プログラム分析... 18 3.1.3 ソース プログラム移行... 23 3.1.4 ソース プログラム移行工数 ... 23 3.2 BI 機能を活用した移行 ... 24 3.2.1 移行元システムの調査 ... 25 3.2.2 BI 機能の検討 ... 25 3.2.3 BI の作成 ... 26 3.2.4 BI 機能活用の工数... 26 3.3 サーバーの仮想化・集約の検討 ... 27

(3)

3 3.3.1 サーバーリソース調査 ... 27 3.3.2 サーバーの仮想化・集約の構成検討 ... 27 3.3.3 仮想化・集約サーバーの作成 ... 27 添付資料 「非互換 SQL 一覧表」 「ソース プログラム移行概算工数算出式」 「BI 機能活用概算工数算出式」

(4)

4 [注意事項] このドキュメントに記載されている情報 (URL 等の Web サイトに関する情報を含む) は、将来予告なしに変更することがありま す。このドキュメントは情報提供のみを目的としており、明示または黙示に関わらず、これらの情報及び情報を使用した結果について マイクロソフトはいかなる責任も負わないものとします。また、このドキュメントに記載された内容は作成日時点の情報に基づくもの です。 お客様がこのドキュメント及び本製品を使用した結果については、すべてお客様が負うものとします。このドキュメントのご利用にあ たっては、お客様ご自身の責任において、適用されるすべての著作権関連法規に従う必要があります。このドキュメントのいかなる部 分も、特に記載のない限り、米国 Microsoft Corporation の書面による許諾を受けることなく、その目的を問わず、どのような形態で あっても、複製または譲渡することは禁じられています。ここでいう形態とは、複写や記録など、電子的な、または物理的なすべての 手段を含みます。 マイクロソフトは、このドキュメントの内容に関し、特許権、特許出願、商標権、著作権、またはその他の知的財産権を有する場合が あります。別途マイクロソフトのライセンス契約に明示されない限り、このドキュメントはこれらの特許権、商標権、著作権、または その他の知的財産権に関する権利をお客様に許諾するものではありません。 特に記載されていない場合、このソフトウェアおよび関連するドキュメントで使用している会社、組織、製品、ドメイン名、電子メー ル アドレス、ロゴ、人物、出来事などの名称は架空のものです。実在する会社名、組織名、商品名、個人名などとは一切関係ありませ ん。

© 2013 Microsoft Corporation. All rights reserved.

Microsoft、Windows、MSDN、SQL Server、Visual Basic、Visual C++、Visual C#、Visual Studio は、米国 Microsoft Corporation またはその関係会社の米国およびその他の国における登録商標または商標です。 記載されている会社名、製品名には、各社の商標も含まれます。 [追記] お客様は、引用元を明記し、かつ、記載内容を変更しない場合に限り、このドキュメントの一部を引用することができます。但し、こ のドキュメントからの引用部分とその他の部分を明確に区別しなければなりません。 お客様は、このドキュメントを改変せずに複製する場合に限り、かかる複製物を、無償で、 頒布することができます。但し、その場合 は、著作権者は Microsoft Corporation であること及び上記の注意事項を明示しなければなりません。

(5)

5

はじめに

本書は、Oracle データベース用に開発されたソースコードを SQL Server データベース用のソースコードへ 移行する際の想定されるパターンについて説明しています。 本書で使用する用語の定義は、次のとおりです。 移行元システム : データベースに Oracle を使用している業務システム。 移行先システム : データベースに SQL Server を使用している業務システム。 ミドルウェア : コンピュータの基本的な制御を行うオペレーティングシステム OS と、 各業務処理を行うアプリケーション ソフトウェアとの中間に入るソフトウェア。 アプリケーション : 業務システムを構成するソフトウェア資産の総称。構成資産として

プログラミング言語 (例:Visual Basic や COBOL ) 、

プログラム (例:ユーザー向けの帳票作成プログラム) などが含まれます。 ただし、アプリケーション移行の場合は、アプリケーション内のソースコードの 移行に限定します。プログラミング言語のバージョンアップおよび変更、 データベース オブジェクトは含まれません。 プログラム : アプリケーションを構成する資産のひとつ。コンピュータに対する動作を具体的 に指示する命令語の集まりです。 ソースコード : オブジェクト コードの元となるテキスト形式のプログラム。 移行元ソース : Oracle データベース用に開発されたソースコード。 移行先ソース : SQL Server データベース用に開発されたソースコード。 オブジェクトコード : 実施形式のプログラム。 データベース オブジェクト:表やビュー表あるいはデータベースを操作するプログラム (プロシージャ、ファンクション) などのデータベースで扱われるオブジェクト。 SQL 文 : DML (Data Manipulation Language、データ操作言語) 文に限定。

DDL (Data Definition Language、データ定義言語) 文は扱いません。

BI : Business Intelligence の略称。業務システムなどから蓄積される企業内の膨大な データを蓄積・分析・加工して企業の意思決定に活用しようとする手法。 SSRS : SQL Server 2012 Reporting Services (SSRS) は、SQL Server の標準機能として

搭載されている、レポートの「作成」や「管理」、「配布」が行える レポーティングツール。

T-SQL : リレーショナル データベース (RDB) の照会や操作に使われる SQL 言語の拡張 仕様の一つ。Microsoft 社のリレーショナル データベース管理システム (RDBMS) 製品で利用できます。

SSAS : SQL Server Analysis Services (SSAS:分析サービス) は、SQL Server の標準機能 として搭載されている、"データ分析" のためのサーバー機能。

本書で対象とするデータベースは、次のとおりです。 移行元データベース :Oracle Database for Windows 移行先データベース :SQL Server 2012

(6)

6

1. 1. アプリケーション移行の概要

データベースに「Oracle を使用しているシステム (以下、”移行元システム” と略します) 」から「SQL Server を使用するシステム (以下、”移行先システム” と略します) 」へ移行する場合、後述の 2 つの移行 パターンと 1 つの検討事項が想定されます。本章では、この 2 つの移行パターンと 1 つの検討事項の概要 について説明します。

1.1 アプリケーション移行パターンと検討項目の概要

移行元システムから移行先システムへアプリケーションを移行する場合、次の 2 つの移行パターンがありま す。  移行パターン 1 : ソース プログラム移行  移行パターン 2 : BI 機能を活用した移行 また、上記の移行パターンと合わせ、必要に応じ「サーバーの仮想化・集約の検討」も行います。 (1) 移行パターン 1:ソース プログラム移行 移行元システム用に開発されたプログラムのソースコード (以下、”移行元ソース”と略します) から、移行先 システム用のソースコード (以下、”移行先ソース”と略します) へ移行するパターンです。移行元システムと 移行先システムで利用しているデータベースが異なるため、ソースコードに記述されている SQL 文の見直し が必要となります。 このパターンの特徴は、移行元システムで作成したドキュメント (仕様書、テスト項目、マニュアルなど) を 流用できるため、移行先システムのドキュメント修正が少ないことです。 (2) 移行パターン 2:BI 機能を活用した移行 移行元システムで使用する参照系 (画面や帳票など) の移行元ソースを、SQL Server データベースの BI (Business Intelligence) 機能を活用し移行するパターンです。その他の BI 機能を使わない移行元ソースにつ いては、「移行パターン 1:ソース プログラム移行」と同じ移行作業となります。 このパターンの特徴は、BI 機能を活用することにより、利用者の要望に応じて参照系の処理を比較的簡単に 追加・修正ができることです。したがって、BI 機能へ移行するコストは必要ですが、保守性や拡張性が優れ ているため保守コストの削減が期待できます。また、SQL Server の BI 機能は Oracle と異なりオプション ではなく製品に標準で含まれているため、BI 機能の製品導入費用は不要です (エディション別 BI 機能の詳 細は、表 1.1 を参照してください) 。しかし、ドキュメント類の再作成が必要です。 (3) サーバーの仮想化・集約の検討 移行元システムが稼働しているサーバーを仮想化・集約し、移行先システムのサーバーへ移行する方法を検 討するパターンです。この検討は「移行パターン 1:ソース プログラム移行」あるいは「移行パターン 2: BI 機能を活用した移行」と組合せて実施することが可能です。サーバーを仮想化・集約した場合、ハードウ ェアおよびソフトウェアのコスト削減が期待できます。また、サーバー資産の運用・保守の手間を軽減する

(7)

7 ことも期待できます。 表 1.1 SQL Server 2012 エディション別 BI 機能 エディション 基本的なレポーティング および分析 セルフサービスビジネス インテリジェンス 全社員向けビジネス インテリジェンス Enterprise ○ ○ ○ Business Intelligence ○ ○ ○ Standard ○ ― ― 凡例 ○:機能有り、―:機能無し (参考サイト: http://www.microsoft.com/ja-jp/sqlserver/2012/licensing.aspx)

(8)

8

1.2 ソース プログラム移行

移行元のアプリケーションは、Oracle 用に作成されているため移行先システムでは動作しません。移行元の アプリケーションを動作させるためには、ソースコード内の SQL 文を SQL Server 用に変換する作業が必要 です。 SQL 文は、データベースとの接続・切断や行の参照・追加・更新・削除などの DML (Data Manipulation Language:データ操作言語) で構成されています。これらの SQL 文から非互換箇所を洗い出し、SQL Server 用に変換します。変換後、移行先ソースからオブジェクトコードを生成します。 図 1.2 ソース プログラム移行イメージ (太線部分) 移行先システム アプリケーション オブジェクトコード ソースコード 移行元システム アプリケーション ソースコード オブジェクトコード ソースプログラム移行 SQL Server データべ―ス Oracle データべ―ス

(9)

9

1.3 BI 機能を活用した移行

参照系の移行元のアプリケーションは「BI 機能を活用した移行」に適しているため、ソースコードを更新系 と参照系に振り分けます。参照系のソースコードから出力する画面または帳票と同等の結果を出力できる BI レポートを、新規に作成します。更新系のソースコードは、「1.2 ソース プログラム移行」と同じ移行作業 となります。 SQL Server の BI 機能を活用した移行を行うと、BI レポートの対象項目および集約条件などの変更に対して 容易に対応することができます。また、拡張性 (レポートを Excel データとして出力することやドリルダウ ン機能など) に優れているため、さまざまな角度から分析情報を得ることが可能となります。 図 1.3 BI 機能を活用した移行イメージ (太線部分) 移行元システム 移行先システム BI 機能 アプリケーション アプリケーション オブジェクトコード ソースプログラム移行 オブジェクトコード 更新系 ソースコード 更新系 ソースコード 参照系 ソースコード SQL Server データべ―ス Oracle データべ―ス

(10)

10

1.4 サーバーの仮想化・集約の検討

移行元システムが稼働しているサーバーを仮想化・集約し、移行先システムのサーバーへ移行する方法を検 討するパターンです。仮想化・集約のためには、移行元システムが稼働しているサーバーのリソース (CPU、 メモリ、ディスクなど) およびネットワークの使用率や負荷状況を十分調査する必要があります。リソース の使用率や負荷が高いサーバーは、サーバーの仮想化・集約の対象に適しません。また対象とする場合、仮 想化・集約サーバーをよりハイスペックなマシンに変更するなど十分な検討が必要です。なお、アプリケー ション移行を伴わない場合であっても、サーバーの仮想化・集約の検討は可能です。 図 1.4 サーバーの仮想化・集約の検討イメージ (太線部分) (*) (*) サーバー A で稼働するシステム a とサーバー C で稼働するシステム c-1 を、サーバー D へ集約 し、サーバー B で稼働するシステム b とサーバー C で稼働するシステム c-2 を仮想化し、サーバー E へ 移行する場合のイメージ図です。 サーバー E サーバー D 移行元システム a ソースコード サーバー A Oracle データべ―ス 移行元システム b ソースコード サーバー B Oracle データべ―ス 移行元システム c-1、c-2 ソースコード サーバー C Oracle データべ―ス ソースコード ソースコード 移行先システム c-1 移行先システム a SQL Server データべ―ス 移行元システム b ソースコード 仮想サーバーB 移行元システム c-2 ソースコード 仮想サーバーC SQL Server データべ―ス SQL Server データべ―ス

(11)

11

1.5 パターン選択の参考要件

ここまでに説明した 2 つの移行パターンおよび 1 つの検討事項を選択する際の参考要件は、表 1.5 を参照 してください。ただし、参考要件に該当する移行元システムが、必ずしも対応する移行パターンまたは検討 事項に適しているとは限りません。適正なパターンを選択するためには、移行元システムのドキュメント (システム機能書、システム構成一覧、プログラム仕様書など) やリソース (CPU、メモリ、ディスクなど) の 情報を分析後、検討が必要です。 表 1.5 パターン選択の参考要件 移行パターン および検討事項 参考要件 ソース プログラム移行 ・データベースの運用コストを削減したい。 BI 機能を活用した移行 ・BI 機能を安価に導入したい。 ・BI レポートを容易に作成したい。 ・BI レポートをビジュアル化したい。 ・BI レポートを全社員で探索・加工したい。 ・参照系のアプリケーションが存在する。 ・参照系のアプリケーションの変更が不定期に発生する。 サーバーの仮想化・集約 ・サーバーのハードウェアコストを削減したい。 ・サーバーのマシンリプレースの時期が近い。 ・システムのリソース (CPU、メモリ、ディスクなど) を有効活用したい。 ・サーバーのソフトウェアコストを削減したい。 (*集約の場合のみ)

(12)

12

2. アプリケーション移行の処理の流れ

各移行パターンおよび検討事項の処理の流れを説明します。各移行パターンおよび検討事項は、単独または 組合せて行う方法があります。すべての組合せについては、表 2 を参照してください。なお、組合せて行う 場合は各パターンおよび検討事項の間に処理順序があるので注意が必要です。 表 2. パターン組合せ一覧 No ソース プログラム移行 BI 機能を活用した移行 サーバーの仮想化・集約の検討 1 ○ ― ― 2 ○ ○ ― 3 ○ ○ ○ 4 ○ ― ○ 5 ― ○ ― 6 ― ○ ○ 7 ― ― ○

2.1 ソース プログラム移行

図 2.1 に沿って、ソース プログラム移行の処理の流れを説明します。 図 2.1 ソース プログラム移行の処理の流れ 2.1.1 移行元システムと移行先システムの調査 移行先ソース (プログラミング言語の種類およびバージョンなど) の動作条件として、移行先システムのソフ ソースプログラム移行 ソースプログラム分析 移行元システムと移行先システムの調査

(13)

13 トウェア構成 (OS およびミドルウェアなど) に問題がないか調査します。 移行元システムのドキュメント (システム機能書、システム構成一覧、プログラム仕様書など) を元に、移行 元ソースから移行対象プログラムを洗い出します。 2.1.2 ソース プログラム分析 移行元ソースから SQL 文を抽出します。抽出した SQL 文から SQL Server との非互換箇所 (関数または命 令など) をすべて洗い出します。 洗い出した非互換箇所について、SQL Server 用の SQL 文へ移行する方法を検討します。例えば、LENGTH 関数は、SQL Server では LEN 関数に変換が必要です。移行元ソース分析の詳細については、「3.1.2 ソース プログラム分析」を参照してください。 2.1.3 ソース プログラム移行 移行元ソースの SQL 文の非互換箇所について、「2.1.2 ソース プログラム分析」で検討した移行方法を元に 変換を行い、移行先システムのソースコードへ適用します。 移行先ソースはそのままの形式では実施できないため、実施可能なオブジェクトコードを生成する必要があ ります。 ソース プログラム移行の検証時には、移行元システムのドキュメント (テスト計画書など) を流用すること が可能です。ただし、SQL 文以外のビジネスロジックを変更する場合は、検証用のドキュメントを新規に作 成する必要があります。

(14)

14

2.2 BI 機能を活用した移行

図 2.2 に沿って、BI 機能を活用した移行の処理の流れを説明します。 BI 機能に適さない移行元の更新系ソースコードは、「2.1 ソース プログラム移行」と同じ移行作業となりま す。 本作業と「2.1 ソース プログラム移行」を組合せて実施する場合、「2.2.1 移行元システムの調査」にある BI 機能を活用する移行元の参照系ソースコードを特定後、「2.1 ソース プログラム移行」の作業を行います。 図 2.2 BI 機能を活用した移行の処理の流れ 2.2.1 移行元システムの調査 移行元システムのドキュメント (システム機能書、プログラム仕様書、画面帳票レイアウトなど) を元に、参 照系機能 (画面、帳票など) を持つ移行元ソースを洗い出します。洗い出した移行元ソースから BI 機能を活 用するソースコードを特定します。 2.2.2 BI 機能の検討 「2.2.1 移行元システムの調査」で特定した移行元ソースの詳細な仕様を確認した後、SQL Server の BI レポ ートを出力するために必要なレポート・データマート・キューブについて検討します。具体的には、BI レポ ートを作成するための参照データの取得方法について「データベースから直接取得する、またはデータマー トから取得する、あるいはキューブから取得する」などの BI の仕様検討を行います。仕様の検討後、BI 作 成のための仕様書およびテスト仕様書をそれぞれ新規に作成します。 2.2.3 BI

作成 「2.2.2 BI 機能の検討」で作成した仕様書にもとづいて BI を新規に作成します。作成後、テスト仕様書にも とづいて検証を行います。 BI の作成 BI 機能の検討 「2.1 ソースプログラムの移行」 移行元システムの調査

(15)

15

2.3 サーバーの仮想化・集約の検討

図 2.3 に沿って、サーバーの仮想化・集約の処理の流れを説明します。 本作業と「2.1 ソース プログラム移行」あるいは「2.2 BI 機能を活用した移行」のアプリケーション移行を 同時に実施する場合、それぞれのアプリケーション移行は本作業前あるいは後の何れに実施しても問題あり ません (図 2.3 の (*1) 部分) 。ただし、本作業前に実施する場合はアプリケーション移行の作業用サーバー が別途必要となります。 図 2.3 サーバーの仮想化・集約の検討の処理の流れ 2.3.1 サーバーリソース調査 移行元システムが稼働しているサーバーのリソース (CPU、メモリ、ディスクなど) について、サーバー単 位・システム単位に使用率や負荷状況およびスペックなどを調査します。さらに、必要に応じてネットワー クの負荷を調査します。 リソースやネットワークなどの使用率や負荷の高いサーバーについて、サーバーの仮想化・集約の対象とす るか検討が必要です。 調査結果にもとづいて、仮想化・集約の対象とするサーバーを決定します。 仮想化・集約サーバーの作成 サーバーリソース調査 サーバー仮想化・集約の構成検討 「2.1 ソースプログラム移行」 「2.2 BI 機能を活用した移行」 「2.1 ソースプログラム移行」 「2.2 BI 機能を活用した移行」 *1) (*1)

(16)

16 2.3.2 サーバー仮想化・集約の構成検討 仮想化・集約の対象として決定したサーバーおよびシステムの構成について検討します。仮想マシンのリソ ース (CPU、メモリ、ディスクなど) は、移行元システムが稼働しているサーバーの物理リソースと同等以上 のものを確保する必要があります。 また、サーバーを仮想化する場合、仮想化プラットフォーム ( Hyper-V など) が必要となります。 2.3.3 仮想化・集約サーバーの作成 「2.3.2 サーバーの仮想化・集約の構成検討」の結果にもとづいて、仮想化・集約サーバーを作成します。

(17)

17

3. アプリケーション移行のポイント

本章では、「2. アプリケーション移行の処理の流れ」に沿って、それぞれのパターンおよび検討事項のポイ ントについて説明します。

3.1 ソース プログラム移行

ソース プログラム移行イメージについては、図 3.1 を参照してください。 図 3.1 ソース プログラム移行イメージ (太線部分) 3.1.1 移行元システムと移行先システムの調査 移行元システムの移行対象ソースを洗い出すための調査、および移行先システムの動作環境が利用するソフ トウェアに適しているのかについて調査します。 (1) 移行元システムの調査 移行元システムの移行対象ソースの洗い出しには、移行元システムのドキュメント (システム機能書、 システム構成一覧、プログラム仕様書など) を元に検討する必要があります。検討の際、移行元システ ムの棚卸を同時に実施することで、洗い出しの精度を高めることできます。 移行元システム 移行先システム 移行元ソース SQL 文 ビジネスロジック SQL 文 ビジネスロジック SQL 文 移行先ソース SQL 文 ビジネスロジック SQL 文 ビジネスロジック SQL 文 移行作業 移行元システムと移行 先システムの調査 ソースプログラム分析 ソースプログラム移行 (参考資料) 「非互換 SQL 文一覧 表」

(18)

18 (2) 移行先システムの調査 移行先で使用されるソフトウェアによって必要とされる動作環境は異なります。移行先システムの動作 環境がプログラミング言語やミドルウェアに対応していない場合、動作環境を変更する必要がありま す。変更に伴う詳細については、プログラミング言語やミドルウェアの製品提供元へご確認願います。 3.1.2 ソース プログラム分析 移行元ソースから SQL 文を抽出し SQL Server との非互換箇所 (関数または命令など) を洗い出します。そ の後、洗い出した非互換箇所の移行方法について検討します。 (1) SQL 文の抽出 移行元ソースから SQL 文を抽出します。SQL 文は次の 3 種類に大別することができます。 ① データベース接続・切断 (例:CONNECT、DISCONNECT) ② データベース参照系操作 (例:SELECT) ③ データベース更新系操作 (例:INSERT、UPDATE、DELETE など) 移行元ソースの SQL 文の記載箇所は、プログラミング言語により異なります。各言語に応じた SQL 文の抽 出が必要です。

プログラミング言語が COBOL の場合、SQL 文は”EXEC SQL”と”END-EXEC” のキーワードに挟まれた部分 (埋め込み SQL 文) に記述されます。 (2) 非互換箇所の洗い出し SQL 文の非互換箇所を洗い出します。洗い出しのためには、事前に SQL 文の非互換一覧表などを準備して おく必要があります。 非互換については、添付資料①「非互換 SQL 一覧表」を参照してください。 (3) 非互換箇所の移行方法検討 洗い出した SQL 文の非互換箇所を、SQL Server 用の SQL 文へ移行するための方法を検討します。移行方法 の例は、表 3.1.2 を参照してください。

(19)

19 表 3.1.2 非互換箇所の移行方法例 Oracle 用 SQL 文の非互換箇所 SQL Server 用 SQL 文への移行方法例 データベース接続 データベース接続は、使用するプログラミング言語により記述が異なるため、プロ グラミング言語に応じて変換する必要があります。ここでは COBOL と.NET の場 合の例を記述します。 < プログラミング言語が COBOL の場合、移行元ソース例 > CONNECT <ユーザー名>/<パスワード>@< TNS エイリアス>; (ユーザー名およびパスワード は、CONNECT 文にハードコードできません) < プログラミング言語が COBOL の場合、移行先ソース例 > CONNECT TO <サーバー名> AS <接続名> USER <ユーザー名>/<パスワード> < プログラミング言語が .NET の場合、移行元ソース例 > Imports System.Data.OracleClient ・・・

Private _connection As OracleConnection Private _transaction As OracleTransaction < プログラミング言語が .NET の場合、移行先ソース例 > Imports System.Data.SqlClient・・・

Private _connection As SqlConnection Private _transaction As SqlTransaction

(+) テーブルの外部結合を行う場合、Oracle では OUTER JOIN 句または (+) を使用し ますが、SQL Server では LEFT [OUTER] JOIN または RIGHT [OUTER] JOIN あるい は FULL [OUTER] JOIN に変換する必要があります。

< 移行元ソース例 >

SELECT t1.key1, t1.name1, t2.name2 FROM table1 t1, table2 t2

WHERE t1.key1 = t2.key2 (+) ; < 移行先ソース例 >

SELECT t1.key1, t1.name1, t2.name2 FROM table1 t1 LEFT JOIN table2 t2 ON t1.key = t2.key2

(20)

20 Oracle 用 SQL 文の非互換箇所 SQL Server 用 SQL 文への移行方法例 || 文字列の結合を行う場合、Oracle では || (2 本の実線垂直バー) または CONCAT 関数を使用しますが、SQL Server では文字列演算子の+ に変換する必要がありま す。 < 移行元ソース例 >

PARA := PARA1 || PARA2 || PARA3; < 移行先ソース例 >

SET @PARA = @PARA1 + @PARA2 + @PARA3

DECODE 関数 条件によって特定の値を別の値に変換する場合、Oracle では DECODE 関数を利 用しますが、 SQL Server では CASE 文に変換する必要があります 。なお、CASE 文で NULL を評価する場合は、WHEN 句で IS NULL を使用します。

< 移行元ソース例 >

SELECT DECODE (XX_FLG,1,’A’,2,’B’,’X’) FROM XXX_TABLE; < 移行先ソース例 >

SELECT

CASE XX_FLG

WHEN 1 THEN ‘A’ WHEN 2 THEN ’B’ ELSE ‘X’

END

FROM XXX_TABLE

TO_DATE 関数 文字列の日付変換を行う場合、Oracle では TO_DATE 関数を利用しますが、 SQL Server では CONVERT 関数に変換する必要があります 。

< 移行元ソース例 >

SELECT TO_DATE (‘20090521’,’YYYYMMDD’) FOM DUAL; < 移行先ソース例 >

(21)

21

Oracle 用 SQL 文の非互換箇所 SQL Server 用 SQL 文への移行方法例

LENGTHB 関数 文字列のバイト数を求める場合、Oracle では LENGTHB 関数を利用しますが、 SQL Server では DATALENGTH 関数に変換する必要があります。

< 移行元ソース例 >

IF LENGTHB (SUBSTR (IN_STRINGS, CNT, 1) ) = 1 THEN < 移行先ソース例 >

IF DATALENGTH (SUBSTRING (@IN_STRINGS, CNT, 1) ) = 1 THEN

ADD MONTHS 関数 月の加算を行う場合、Oracle では ADD_MONTHS 関数を利用しますが、SQL Server では DATEADD 関数に変換する必要があります。

< 移行元ソース例 >

SELECT ADD_MONTHS ('2013/1/15',8) FROM DUAL; < 移行先ソース例 >

SELECT DATEADD (month,8,'2013-01-15')

TRUNC 関数 数値の小数点以下を切り捨てる場合、Oracle では TRUNC 関数を利用しますが、 SQL Server では ROUND 関数に変換する必要があります。

< 移行元ソース例 >

SELECT TRUNC (12.3456,3) FROM DUAL; < 移行先ソース例 >

SELECT ROUND (12.3456,3,1)

NVL 関数 指定した値の NULL を別の値に変換する場合、Oracle では NVL 関数を利用し ますが、SQL Server では ISNULL 関数に変換する必要があります。

< 移行元ソース例 >

SELECT CODE, NVL (SYUBETU, 'UNKNOWN') FROM MST_TBL; < 移行先ソース例 >

SELECT CODE, ISNULL (SYUBETU, 'UNKNOWN') FROM MST_TBL

MOD 関数 除算の余りを取得する場合、Oracle では MOD 関数を利用しますが、SQL Server では %演算子に変換する必要があります。

< 移行元ソース例 >

SELECT MOD (11, 3) FROM DUAL; < 移行先ソース例 > SELECT 11 % 3 LOCALTIMESTAMP 関数 セッションのタイムゾーンの現在の日付および時刻を TIMESTAMP データ型 で取得する場合、Oracle では LOCALTIMESTAMP 関数を利用しますが、SQL Server では SYSDATETIME 関数に変換する必要があります。 < 移行元ソース例 > SELECT LOCALTIMESTAMP; < 移行先ソース例 > SELECT SYSDATETIME ()

(22)

22

トランザクション終了 データベース切断は、使用するプログラミング言語により記述が異なるため、プ ログラミング言語に応じて変換する必要があります。ここでは COBOL の場合 の例を記述します。

< プログラミング言語が COBOL の場合、移行元ソース例 > COMMIT WORK RELEASE; または

ROLLBACK WORK RELEASE;

< プログラミング言語が COBOL の場合、移行先ソース例 > COMMIT WORK

DISCONNECT <接続名> または ROLLBACK WORK

(23)

23 3.1.3 ソース プログラム移行 「 3.1.2 ソース プログラム分析」で検討した移行方法にもとづいて、移行元ソースを移行先ソースに移行し ます。作業内容は「 2.1.3 ソース プログラム移行」と同様です。 (1) ソース プログラムの移行 移行したソースを正しく動作させるためには、ソース プログラム移行に関連した作業として、プログラミン グ言語特有の環境設定を行うことが必要です。具体的には、データベース接続ファイルの設定や実行環境フ ァイルの設定などになります。詳細については、プログラミング言語やミドルウェアの製品提供元へご確認 願います。 (2) 移行の検証 ソース プログラム移行の検証を行います。また同時に、プログラミング言語やミドルウェア特有の設定の検 証も必要となります。 3.1.4 ソース プログラム移行工数 移行元ソースの SQL 文の非互換箇所 (関数または命令など) の移行レベルや規模にもとづいて、ソース プ ログラム移行の概算工数を算出します。 詳細については、添付資料①「非互換 SQL 一覧表」および添付資料②「ソース プログラム移行概算工数算 出式」を参照してください。

(24)

24

3.2 BI 機能を活用した移行

参照系の移行元ソースから BI 機能への移行イメージについては、図 3.2 を参照してください。 図 3.2 BI 機能への移行イメージ (太線部分) 移行元システム 移行先システム BI 機能 [画面・帳票]A [画面・帳票]B [表・グラフ]C [表・グラフ]D [表・グラフ]C [表・グラフ]D 移行作業 移行元システムの調査 BI 機能の検討 BI の作成 (参考資料) 「画面帳票レイアウ ト」 (参考資料) 「プログラム仕様書」 (参考資料例) 移行元ドキュメント 「システム機能書」 [画面・帳票]A 参照系 ソースコード 参照系 ソースコード 参照系 ソースコード 参照系 ソースコード レポート レポート [画面・帳票]B レポート キューブ データマート

(25)

25 3.2.1 移行元システムの調査 移行元システムから参照系のソースを洗い出します。洗い出したソースから BI 機能に切替えるソースを特 定します。 BI 機能の詳細については下記の公式サイトを参照してください。 (参考サイト: http://www.microsoft.com/ja-jp/sqlserver/2012/technology/self-learning.aspx) (資料名:「SQL Server 2012 新機能ダイジェスト (BI 編) 」ほか) (1) 参照系の移行元ソースの洗い出し 移行元ソースの機能を確認できるドキュメント (システム機能書、プログラム仕様書、画面帳票レイアウト など) を元に参照系のソースを洗い出します。 (2) BI 機能への切替えプログラムの特定 洗い出した参照系の移行元ソースは、基本的に BI 機能に切替え可能です。切替えた場合、この機能の活用 により大幅な拡張性と保守性が見込めるため、特別な事情がない限り BI 機能に切替えることを推奨しま す。 BI 機能に切替えないソースは、「 2.1 ソース プログラム移行」と同じ移行作業となります。 3.2.2 BI 機能の検討 「3.2.1 移行元システムの調査」で特定した移行元ソースの詳細な仕様について調査し、結果を元に BI 機能 への移行方法を検討します。BI を作成するための仕様書および検証のためのテスト仕様書を新規に作成しま す。 (1) BI の検討 BI レポートを出力するためには、レポート・データマート・キューブの仕様の検討が必要です。BI の仕様 は、参照系の移行元ソースの画面および帳票などの出力項目を機能毎にグルーピングし、BI レポートの参照 データについて取得方法を検討する必要があります。 ① データの最新性を重視する ⇒ データベースから直接取得する。 ② データの加工および集約などの変更の容易さを重視する ⇒ データマートから取得する。 ③ レスポンスを重視する ⇒ キューブから取得する。 ただし、仕様によっては必ずしも①から③の示した優先事項に対応した取得方法が最適になるとは限りませ ん。それぞれの仕様について詳細を確認する必要があります。 BI を活用した場合、BI レポートの変更は容易です。例えば、参照データの取得方法について、データベース から直接取得していたものを、キューブから取得するように変更となった場合、キューブの作成およびデー タの格納は BI 作成用ツールを利用することで容易に行えます。また、BI レポートの表示項目の変更につい ても、ツールを利用することで容易に行えます。

(26)

26 (2) BI のシステム設計書作成 移行元システムのドキュメント (プログラム仕様書、テスト仕様書など) と、BI の検討結果を元に、仕様書 を新規に作成します。また、検証するためのテスト仕様書も同様に新規に作成します。 画面・帳票を出力する場合は、入力元データとしてテーブルまたはデータマート、あるいはキューブを準備 しておく必要があります。 なお、1 データマートまたは 1 キューブに複数画面または複数帳票分のデータを集約する場合もあります。 3.2.3 BI の作成 「3.2.2 BI 機能の検討」 で作成した各仕様書にもとづいて、レポート、データマート、キューブを作成しま す。レポートは SSRS (SQL Server Reporting Services) を利用して作成します。また、データマートは T-SQL を利用して作成します。キューブは SSAS (SQL Server Analysis Services) を利用して作成します。BI の作成で 利用するこれらの機能は SQL Server 2012 にツールとして包含されています。

3.2.4 BI 機能活用の工数

新規に作成した BI 機能の規模や構成などにもとづいて、BI 機能活用の概算工数を算出します。 詳細については、添付資料③「BI 機能活用概算工数算出式」を参照してください。

(27)

27

3.3 サーバーの仮想化・集約の検討

3.3.1 サーバーリソース調査 移行元システムが稼働しているサーバーのリソース (CPU、メモリ、ディスクなど) やネットワークの使用率 および負荷状況などについて調査します。 (1) リソースのスペック調査 サーバーリソースのスペックを調査します。具体的には、CPU の動作周波数およびコア数、メモリの容量、 ディスクの容量、回転数およびキャッシュ容量などです。また、ネットワークの帯域などについても調査し ます。 (2) リソースの使用率および負荷状況の調査 次にサーバーリソースのそれぞれの使用率や負荷状況について、サーバー単位およびシステム単位に調査し ます。例えば Windows の場合、CPU の使用率はパフォーマンスモニターなどのツールを用いて (Processor オブジェクトなど) 調査します。また、ネットワークについては、回線使用率や輻輳状況などについて調査 します。 (3) 対象サーバーおよびシステムの特定 サーバーリソースやネットワークなどについて調査した結果と、移行元システムまたは他の稼働システムの 重要性および可用性などについて検討した後、仮想化・集約する対象のサーバーまたはシステムを決定しま す。 3.3.2 サーバーの仮想化・集約の構成検討 「3.3.1 サーバーリソース調査」で特定したサーバーおよびシステムについて、仮想化・集約の構成を検討し ます。 移行元システムが稼働しているサーバーの物理リソースと同等以上の仮想マシンリソースを確保する必要が あります。例えば、移行元システムの稼働サーバー 2 台 (どちらのサーバーも、CPU はクアッドコア 2 ソ ケットでコア単位の使用率が Max 20 % ) を、1 台のサーバーに仮想化・集約する場合、CPU は最低 4 コ ア以上確保する必要があります (クアッドコア *2 ソケット *20%*2 台≒ 3.2 コア) 。ただし、これは理論 上の値のため CPU の使用率が高いシステムでは推奨できません。その場合、再度リソースに余裕のある構 成の検討が必要です。

サーバーを仮想化する場合、仮想化プラットフォームが必要です。Windows (Windows Server 2008 R2、 Windows Server 2012 ) であれば、仮想化プラットフォームとして Hyper-V が標準で搭載されています。

3.3.3 仮想化・集約サーバーの作成

「 3.3.2 サーバーの仮想化・集約の構成検討」で検討した結果にもとづいて、仮想化・集約サーバーを作成 します。サーバーを仮想化する場合、仮想化プラットフォーム ( Hyper-V など) の詳細については製品提供 元へご確認願います。

参照

関連したドキュメント

ductile fracture stage から brittle fracture stage へ移行する点(Point 1)と brittle fracture stage から final degradation stage に移行する点(Point 2)を決定する

〜3.8%の溶液が涙液と等張であり,30%以上 では著しい高張のため,長時間接触していると

私たちの行動には 5W1H

デスクトップまたはスタートボタンの“プログラム”に 標準宅地鑑定評価システム 2023 のショートカ

[email protected] サガワ タロウ 佐川 太郎. 「0%、8%、10%」以外を設定さ れているお客様の消費税率は、移

WAKE_IN ピンを Low から High にして DeepSleep モードから Active モードに移行し、. 16ch*8byte のデータ送信を行い、送信完了後に

船舶の航行に伴う生物の越境移動による海洋環境への影響を抑制するための国際的規則に関して

保坂 幸司: NPO 法人 大阪精神障害者就労支援ネットワーク(JSN) 事務局長. 堀川 洋 : NPO