(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-08
(45)【発行日】2023-09-19
(54)【発明の名称】データベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラム
(51)【国際特許分類】
G06F 16/185 20190101AFI20230911BHJP
G06F 11/36 20060101ALI20230911BHJP
G06F 3/06 20060101ALI20230911BHJP
【FI】
G06F16/185
G06F11/36 188
G06F3/06 301X
(21)【出願番号】P 2020037182
(22)【出願日】2020-03-04
【審査請求日】2022-12-19
【早期審査対象出願】
(73)【特許権者】
【識別番号】504283220
【氏名又は名称】Qsol株式会社
(74)【代理人】
【識別番号】100197642
【氏名又は名称】南瀬 透
(74)【代理人】
【識別番号】100099508
【氏名又は名称】加藤 久
(74)【代理人】
【識別番号】100182567
【氏名又は名称】遠坂 啓太
(72)【発明者】
【氏名】小崎 一彦
(72)【発明者】
【氏名】豊永 泰史
(72)【発明者】
【氏名】松尾 泰成
(72)【発明者】
【氏名】平峰 祐一
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2009-223851(JP,A)
【文献】特開2011-258002(JP,A)
【文献】国際公開第2008/056438(WO,A1)
【文献】特開平11-272524(JP,A)
【文献】特開2019-211805(JP,A)
【文献】特開2013-239038(JP,A)
【文献】米国特許出願公開第2014/0280259(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 11/36
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
アプリケーションサーバがアクセスする現行データベースを、異なる種類の移行先データベースへ変更する際に行うデータベースマイグレーション方法であって、
評価検証装置が前記現行データベースに関する情報と、前記現行データベースと前記移行先データベースとの間の非互換情報としてのキーワード及び変換の程度を示す移行レベルを含む非互換リストとに基づいて、前記キーワードが含まれているため変換が必要な前記アプリケーションサーバから前記移行先データベースへのアクセス処理及び前記移行レベルを含む非互換結果を抽出すること、
データベース言語変換装置が前記非互換結果を用いて、前記アプリケーションサーバが前記現行データベースへアクセスする際に用いるデータベース言語を、前記移行先データベースで使用可能なデータベース言語に変換し、前記変換後のデータベース言語を用いて、前記移行先データベースへアクセスすること、
前記評価検証装置が前記現行データベースのログから、SQL実行情報を抽出して検証のための検証SQLファイルを出力すること、
前記評価検証装置が前記検証SQLファイルに基づいて
、
(1)前記
データベース言語変換装置を介さずに、変換
されていないデータベース言語を用いて前記現行データベースへアクセス処理を行った処理結果と
、
(2)前記
データベース言語変換装置を介して、変換
されたデータベース言語を用いて前記移行先データベースへアクセス処理を行った処理結果
と
を比較し、比較結果を出力することを含むデータベースマイグレーション方法。
【請求項2】
前記現行データベースはOracle(登録商標)であり、前記非互換リストには、前記現行データベースと異なる種類のデータベース間との非互換情報としてPL/SQLを含み、
前記抽出された非互換結果には、変換が必要な前記アプリケーションサーバのPL/SQL処理及び移行レベルを含むことを特徴とする請求項
1に記載のデータベースマイグレーション方法。
【請求項3】
アプリケーションサーバがアクセスする現行データベースを、異なる種類の移行先データベースへ変更する際に用いるデータベースマイグレーションシステムであって、
前記データベースマイグレーションシステムは、前記現行データベースに関する情報と、前記現行データベースと異なる種類のデータベース間との非互換情報としてのキーワード及び変換の程度を示す移行レベルを含む非互換リストとに基づいて、前記キーワードが含まれているため変換が必要な前記アプリケーションサーバから前記移行先データベースへのアクセス処理及び前記移行レベルを含む非互換結果を抽出する非互換結果抽出部を含む評価検証装置と、
前記アプリケーションサーバ及び前記移行先データベースと通信する通信部と、前記非互換結果を用いて、前記アプリケーションサーバが前記現行データベースへアクセスする際に用いるデータベース言語を、前記移行先データベースで使用可能なデータベース言語に変換し、前記変換後のデータベース言語を用いて、前記移行先データベースへアクセスするSQL変換部とを含むデータベース言語変換装置とを含み、
前記評価検証装置はさらに、前記現行データベースのログから、SQL実行情報を抽出して検証のための検証SQLファイルを出力するSQL抽出部と、
前記検証SQLファイルに基づいて
、
(1)前記
データベース言語変換装置を介さずに、変換
されていないデータベース言語を用いて前記現行データベースへアクセス処理を行った処理結果と
、
(2)前記
データベース言語変換装置を介して、変換
されたデータベース言語を用いて前記移行先データベースへアクセス処理を行った処理結果
と
を比較し、比較結果を出力するSQL検証部を含むデータベースマイグレーションシステム。
【請求項4】
前記SQL変換部は、
SQL関数を使用される頻度が高い関数と低い関数とに分けた場合、前記使用される頻度が高い関数の変換を行うSQL共通変換部と、
前記使用される頻度が低い関数の変換を行うSQL個別変換部と、
前記SQL共通変換部および/または前記SQL個別変換部で変換されたSQL関数を用いて前記移行先データベースにアクセスして取得されたデータを、前記現行データベースにアクセスして取得されるデータの形式に変換するデータ取得結果変換部とを含むことを特徴とする請求項
3に記載のデータベースマイグレーションシステム。
【請求項5】
アプリケーションサーバがアクセスする現行データベースを、異なる種類の移行先データベースへ変更する際に用いるデータベースマイグレーションシステムとしてコンピュータを機能させるためのデータベースマイグレーションプログラムであって、
前記データベースマイグレーションプログラムは、前記現行データベースに関する情報と、前記現行データベースと異なる種類のデータベース間との非互換情報としてのキーワード及び非互換変換の程度を示す移行レベルを含む非互換リストとに基づいて、前記キーワードが含まれているため変換が必要な前記アプリケーションサーバから前記移行先データベースへのアクセス処理及び前記移行レベルを含む非互換結果を抽出する非互換結果抽出部を含む評価検証装置としてコンピュータを機能させるための比較検証プログラムと、
前記アプリケーションサーバ及び前記移行先データベースと通信する通信部と、前記非互換結果を用いて、前記アプリケーションサーバが前記現行データベースへアクセスする際に用いるデータベース言語を、前記移行先データベースで使用可能なデータベース言語に変換し、前記変換後のデータベース言語を用いて、前記移行先データベースへアクセスするSQL変換部とを含むデータベース言語変換装置としてコンピュータを機能させるためのデータベース言語変換プログラムとを含み、
前記比較検証プログラムはさらに、前記現行データベースのログから、SQL実行情報を抽出して検証のための検証SQLファイルを出力するSQL抽出部と、
前記検証SQLファイルに基づいて
、
(1)前記
データベース言語変換装置を介さずに、変換
されていないデータベース言語を用いて前記現行データベースへアクセス処理を行った処理結果と
、
(2)前記
データベース言語変換装置を介して、変換
されたデータベース言語を用いて前記移行先データベースへアクセス処理を行った処理結果
と
を比較し、比較結果を出力するSQL検証部を含む評価検証装置としてコンピュータを機能させるデータベースマイグレーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションがアクセスする現行データベースを、異なる種類の移行先データベースへ変更する際に行うデータベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラムに関するものである。
【背景技術】
【0002】
データベースを導入しているシステムにおいては、ハードウェア交換時や現行システムから新システムへの切り替え時等に、データの移行(データマイグレーション)が必要となる。
【0003】
そして、異なる種類のデータベース間でデータの移行を行う場合、非互換機能が多いため、移行するにも非互換の対応、特に、移行先のデータベースに合わせたアプリケーションのプログラム修正や検証に大きな労力が必要となる。よって、このような労力を減らすための技術が求められている。
【0004】
特許文献1には、移行元のデータベースのデータ構造と移行先データベースのデータ構造に応じた移行プランを示す移行情報テーブルや、データ構造が異なるDBシステム間でデータ移行処理を行う際に参照する変換情報テーブルを有するデータ移行管理システムが開示されている。
【0005】
特許文献2には、異なるデータベース管理システムによって管理されているデータベース群を共用できるようにするために、ユーザプログラムに提供する共通のデータベース言語によるインタフェースが開示されている。
【0006】
特許文献3には、データベースのマイグレーションに際して、移行先で移行元と同一のSQLを使用する場合に、効率的な動作確認を行えるようにするデータベースマイグレーション支援システムが開示されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2019-20793号公報
【文献】特開平1-211029号公報
【文献】特開2019-211805号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、このような技術を用いて異なる種類のデータベース間でデータの移行やデータベース言語の変更、及び動作確認を行う場合、複雑な手順の把握等、ユーザーの負担は小さくない。
【0009】
そこで、本発明は、システム切り替え時等にアプリケーションがアクセスするデータベースが異なる種類に変わる場合においても、ユーザー側(クライアント端末のアプリケーション)やサーバ側(アプリケーションサーバ)のプログラム修正を不要とし、かつユーザーの負担を軽減したデータベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
この目的を達成するため、本発明のデータベースマイグレーション方法は、アプリケーションサーバがアクセスする現行データベースを、異なる種類の移行先データベースへ変更する際に行うデータベースマイグレーション方法であって、評価検証装置が前記現行データベースに関する情報と、前記現行データベースと前記移行先データベースとの間の非互換情報としてのキーワード及び変換の程度を示す移行レベルを含む非互換リストとに基づいて、前記キーワードが含まれているため変換が必要な前記アプリケーションサーバから前記移行先データベースへのアクセス処理及び前記移行レベルを含む非互換結果を抽出すること、データベース言語変換装置が前記非互換結果を用いて、前記アプリケーションサーバが前記現行データベースへアクセスする際に用いるデータベース言語を、前記移行先データベースで使用可能なデータベース言語に変換し、前記変換後のデータベース言語を用いて、前記移行先データベースへアクセスすること、前記評価検証装置が前記現行データベースのログから、SQL実行情報を抽出して検証のための検証SQLファイルを出力すること、前記評価検証装置が前記検証SQLファイルに基づいて、前記変換前のデータベース言語を用いて前記現行データベースへアクセス処理を行った処理結果と、前記変換後のデータベース言語を用いて前記移行先データベースへアクセス処理を行った処理結果とを比較し、比較結果を出力することを含む。これにより、アプリケーションのプログラム修正が不要となり、かつ容易にデータベースマイグレーションを実行することができる。
【0011】
また、本発明のデータベースマイグレーション方法は、ユーザー又は前記評価検証装置が前記比較結果に基づいて、前記非互換リストに含まれていなかった未対応非互換情報を前記非互換リストにフィードバックさせることが望ましい。これにより、非互換リストに含まれていなかった未対応情報にも適宜対応でき、データベース言語変換処理の精度をより向上させることができる。
【0012】
また、本発明のデータベースマイグレーション方法は、ユーザー又は前記データベース言語変換装置が前記比較結果に基づいて、前記非互換結果に含まれていなかった未対応非互換情報を前記非互換結果にフィードバックさせることが望ましい。これにより、非互換結果に含まれていなかった未対応情報にも適宜対応でき、非互換リストから再度非互換結果を抽出せずとも、データベース言語変換処理の精度をより向上させることができる。
【0013】
また、本発明のデータベースマイグレーション方法は、前記現行データベースはOracle(登録商標)であり、前記非互換リストには、前記現行データベースと異なる種類のデータベース間との非互換情報としてPL/SQLを含み、前記抽出された非互換結果には、変換が必要な前記アプリケーションのPL/SQL処理及び移行レベルを含むことが望ましい。これにより、よりデータベース言語変換処理の精度が向上し、現行データベースがOracle(登録商標)である場合に特化したデータベースマイグレーション方法を提供することができる。
【0014】
本発明のデータベースマイグレーションシステムは、アプリケーションサーバがアクセスする現行データベースを、異なる種類の移行先データベースへ変更する際に用いるデータベースマイグレーションシステムであって、前記データベースマイグレーションシステムは、前記現行データベースに関する情報と、前記現行データベースと異なる種類のデータベース間との非互換情報としてのキーワード及び変換の程度を示す移行レベルを含む非互換リストとに基づいて、前記キーワードが含まれているため変換が必要な前記アプリケーションサーバから前記移行先データベースへのアクセス処理及び前記移行レベルを含む非互換結果を抽出する非互換結果抽出部を含む評価検証装置と、前記アプリケーションサーバ及び前記移行先データベースと通信する通信部と、前記非互換結果を用いて、前記アプリケーションサーバが前記現行データベースへアクセスする際に用いるデータベース言語を、前記移行先データベースで使用可能なデータベース言語に変換し、前記変換後のデータベース言語を用いて、前記移行先データベースへアクセスするSQL変換部とを含むデータベース言語変換装置とを含み、前記評価検証装置はさらに、前記現行データベースのログから、SQL実行情報を抽出して検証のための検証SQLファイルを出力するSQL抽出部と、前記検証SQLファイルに基づいて、前記変換前のデータベース言語を用いて前記現行データベースへアクセス処理を行った処理結果と、前記変換後のデータベース言語を用いて前記移行先データベースへアクセス処理を行った処理結果とを比較し、比較結果を出力するSQL検証部を含む。
【0015】
また、本発明のデータベースマイグレーションシステムは、前記SQL変換部は、SQL共通変換部と、SQL個別変換部と、データ取得結果変換部とを含む。
【0016】
本発明のデータベースマイグレーションプログラムは、アプリケーションサーバがアクセスする現行データベースを、異なる種類の移行先データベースへ変更する際に用いるデータベースマイグレーションシステムとしてコンピュータを機能させるためのデータベースマイグレーションプログラムであって、前記データベースマイグレーションプログラムは、前記現行データベースに関する情報と、前記現行データベースと異なる種類のデータベース間との非互換情報としてのキーワード及び非互換変換の程度を示す移行レベルを含む非互換リストとに基づいて、前記キーワードが含まれているため変換が必要な前記アプリケーションサーバから前記移行先データベースへのアクセス処理及び前記移行レベルを含む非互換結果を抽出する非互換結果抽出部を含む評価検証装置としてコンピュータを機能させるための比較検証プログラムと、前記アプリケーションサーバ及び前記移行先データベースと通信する通信部と、前記非互換結果を用いて、前記アプリケーションサーバが前記現行データベースへアクセスする際に用いるデータベース言語を、前記移行先データベースで使用可能なデータベース言語に変換し、前記変換後のデータベース言語を用いて、前記移行先データベースへアクセスするSQL変換部とを含むデータベース言語変換装置としてコンピュータを機能させるためのデータベース言語変換プログラムとを含み、前記比較検証プログラムはさらに、前記現行データベースのログから、SQL実行情報を抽出して検証のための検証SQLファイルを出力するSQL抽出部と、前記検証SQLファイルに基づいて、前記変換前のデータベース言語を用いて前記現行データベースへアクセス処理を行った処理結果と、前記変換後のデータベース言語を用いて前記移行先データベースへアクセス処理を行った処理結果とを比較し、比較結果を出力するSQL検証部を含む評価検証装置としてコンピュータを機能させる。
【発明の効果】
【0017】
本発明に係るデータベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラムによれば、アプリケーションのプログラム修正を不要とし、かつユーザーへの負担を軽減したデータベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラムを提供することができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施の形態に係るデータベースマイグレーションシステムを示す機能ブロック構成図である。
【
図2】(A)は非互換リスト、(B)は抽出された非互換結果を示すイメージ図である。
【
図3】非互換結果抽出手順を示すフローチャートである。
【
図4】非互換抽出処理におけるGUIを示すイメージ図である。
【
図5】SQL変換処理を示すフローチャートである。
【
図6】検証用SQL抽出手順を示すフローチャートである。
【
図7】検証用SQL抽出処理におけるGUIを示すイメージ図である。
【
図8】検証用SQLファイルを用いた検証手順を示すフローチャートである。
【発明を実施するための形態】
【0019】
図1は、本発明の実施の形態に係るデータベースマイグレーションシステムを示す機能ブロック構成図である。データベースマイグレーションシステム1は、保守PC上で動作する評価検証装置11とデータベース言語変換装置12とを含む。データベース言語変換装置12と、保守PC及び保守PC上で動作する評価検証装置11は、クライアント端末C、アプリケーションサーバS、現行データベースD11、移行先データベースD21や検証データベースD22と、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワーク通信網Nを介して通信する。
【0020】
クライアント端末Cは、ユーザーが操作するパソコン等であり、日々の業務等で使用するアプリケーションがインストールされている。
【0021】
アプリケーションサーバSは、ユーザーが日々の業務等で使用するアプリケーションを提供するサーバであり、種々のデータを記憶するためにデータベースを利用する。
【0022】
現行データベースD11は、システム切り替え前においてクライアント端末CのアプリケーションやアプリケーションサーバSがアクセス(データベース処理命令を行う)するデータベースである。移行先データベースD21は、システム切り替え後においてクライアント端末CのアプリケーションやアプリケーションサーバSがアクセスするデータベースである。また、検証データベースD22は、データベースマイグレーションシステム1が、システム切り替え後においてデータベースマイグレーションが正しく行われているか検証するために使用する現行データベースのコピー(検証版)である。
【0023】
評価検証装置11は、非互換結果抽出部111と、SQL抽出部112と、SQL検証部113とを含む。
【0024】
非互換結果抽出部111は、現行データベースD11に関する情報と、非互換リスト(
図2(A)参照)とに基づいて、非互換結果を抽出する(
図2(B)参照)。
【0025】
現行データベースD11に関する情報とは、SQL、DDL、PL/SQLやソースコード等の資産情報である。非互換リストとは、現行データベースD11とは異なる種類のデータベースの非互換情報の一覧が記載されたリストであり、キーワード(例えば、非互換関数名等)やその移行レベル(変換レベル)が示されている。移行レベルとは、非互換であるため変換処理が必要な対応の程度であり、例えば、「0:変換不要」、「1:単純変換で対応可能」、「2:アプリケーション側のプログラム修正が必要」等である。また、非互換結果とは、現行データベースD11から移行先データベースD21への移行にあたり、アプリケーションサーバSにおいて非互換であるため変換が必要な関数名や対象行、移行レベル等が示されたリストである。
【0026】
SQL抽出部112は、現行データベースD11のログ(例えば、OracleにおけるSQLトレースログ)及びテーブル定義ファイルから、アプリケーションサーバS等からのSQL実行情報を抽出する。
【0027】
SQL検証部113は、前記SQL実行情報に基づいた同じ処理を、(1)データベース言語変換装置12のSQL変換部122で変換した処理で移行先データベースD21へアクセスした結果と、(2)データベース言語変換装置12のSQL変換部122で変換せずに検証データベースD22へアクセスした結果とを比較し、変換が正しく行われているかを検証する。
【0028】
データベース言語変換装置12は、通信部121と、SQL変換部122とを含み、SQL変換部122は、SQL共通変換部1221と、SQL個別変換部1222と、データ取得結果変換部1223とを含む。
【0029】
通信部121は、ネットワーク通信網Nを介して評価検証装置11や上記データベース等と通信する。また、アプリケーションサーバSと移行先データベースD21間の通信メッセージを中継する。なお、受信した通信メッセージを、SQL変換部122に通知する。
【0030】
SQL変換部122は、SQL共通変換部1221と、SQL個別変換部1222と、データ取得結果変換部1223とを含み、非互換結果(
図2(B)参照)に基づいて、通信部121で中継されるアプリケーションサーバSからの移行先データベースD21対するアクセス処理を移行先データベースD21に対応した処理(移行先データベースで使用可能なデータベース言語)に変換する。
【0031】
(実施例)
実施例として、データベースマイグレーション方法を、データベースマイグレーションシステム1を用いて(1)非互換結果を抽出する処理(アセスメント)、(2)データベース言語を変換する処理(マイグレーション)、及び(3)検証まで行う手順を説明する。
【0032】
[アセスメント]
最初に、
図1と、
図3に示すフローチャートに基づいて、非互換結果を抽出する手順を説明する。ユーザーはデータベースマイグレーションシステム1の評価検証装置11にアクセスし、非互換結果抽出処理におけるGUI画面を表示させる(
図4参照)。そして、各条件(現行データベースD11に関する情報として、どの資産を解析対象とするかやそのファイル等)を指定し、出力ボタン押下により、非互換結果抽出部111に該指定した条件を読み込ませる(S101)。
【0033】
非互換結果抽出部111は、非互換リスト及び現行データベースD11に関する情報を読み込む(S102,S103)。
【0034】
非互換結果抽出部111は、解析対象として指定されたファイルを読み込み、非互換リストに記載されたキーワードを参照しつつ非互換抽出を行う。つまり、該指定されたファイルから、該キーワードを含む処理や移行レベルを抽出する。全てファイルを読み込み終わったら、その結果を出力する(S104,S105)。出力先は、保守パソコンMの所定のフォルダでもよいし、データベース言語変換装置12等でもよい。
【0035】
抽出された非互換結果(
図2(B)参照)には、非互換であるため変換が必要な関数名や対象行と共に移行レベルが示されているため、どの処理が変換不要又は単純変換でよいか、それともアプリケーションのプログラム修正が必要なのか、といった対応の程度を容易に把握することができる。この移行レベルは、現行データベースD11に関する情報(SQL、DDL、PL/SQLやソースコード等)毎に定義してもよいし、レベルを0~10などより細分化してもよい。これにより、より詳細な非互換情報を抽出することができ、より適切な変換処理を導くことができる。
【0036】
[マイグレーション]
次に、
図1と、
図5に示すフローチャートに基づいて、データベース言語を変換する処理を説明する。本処理は、アプリケーションサーバS等が現行データベースD11へアクセスする際に用いるデータベース言語を受信し、データベース言語変換装置12のSQL変換部122が変換し、該変換されたデータベース言語で移行先データベースD21へのアクセスが行われる。
【0037】
データベース言語変換装置12の通信部121は、アプリケーションサーバSから現行データベースD11へのアクセスを受信した後、移行先データベースD21との接続を確立する(S201)。そして、SQLステートメント生成を行い、SQL共通変換部1221でSQL共通変換を、SQL個別変換部1222でSQL個別変換を行う(S202~S204)。
【0038】
SQLステートメント生成とは、SELECT,INSERT,UPDATE,DELETE等のSQL構文の生成である。SQL共通変換とは、例えば、一般的に使用される頻度が高い関数等の変換であり、具体的には、現行データベースD11(Oracle(登録商標))で使用していた「SYSTIMESTAMP」は、移行先データベースD21(PostgreSQL(登録商標))では使用できないため(非互換であるため)、「CLOCK_TIMESTAMP」に変換する。また、SQL個別変換とは、例えば、一部のアプリケーションにおいてのみ使用される関数や、個別のアプリケーションに特化した機能等の変換であり、具体的には、現行データベースD11(Oracle(登録商標))で使用していた「XXX.NEXTVAL」は、移行先データベースD21(PostgreSQL(登録商標))では使用できないため、「NEXTVAL(XXX)」に変換する。
【0039】
共通変換と個別変換を分けることにより、システム毎に使用するアプリケーションサーバSが異なる場合、該アプリケーションサーバSが提供するアプリケーションに応じて個別変換処理(SQL個別変換部1222)を差し替えることができる。これにより、一部のアプリケーションにおいてのみ使用される関数等の有無を毎回確認する必要がなくなり、処理速度の向上等を図ることができる。
【0040】
そして、変換されたデータベース言語にて移行先データベースD21にアクセスし、データ取得結果変換部1223でデータ取得結果変換を行う(S205,S206)。データ取得結果変換とは、例えば、移行先データベースD21から返ってきたのデータ取得結果の日付形式が「HH:MM:SS:mm」である場合、クライアント端末C上のアプリケーション画面等で正しく表示されるように、ミリ秒に対応していない現行データベースD11の日付形式「HH:MM:SS」に変換することである。
【0041】
マイグレーションにおいて、このようなデータベース言語変換前に、データベースマイグレーションツール等を用いて現行データベースD11から移行先データベースD21へ蓄積されている全データの移行を行っていてもよい。一度、移行先データベースD21へ全データの移行が完了していれば、それ以降のアプリケーションから移行先データベースD21へのアクセスは、上述したSQL変換部122によるデータベース言語変換処理が行われるため、システム切り替え後もユーザーは接続先のデータベースの仕様を意識することなく運用を続けることができる。
【0042】
[検証]
最後に、検証手順を説明する。本処理は、検証用SQLファイルに記載されたデータベースへのアクセス処理に基づいて、(1)SQL変換部122で変換した処理で移行先データベースD21へアクセスした結果と、(2)SQL変換部122で変換せずに検証データベースD22へアクセスした結果とを比較し、変換が正しく行われているかを検証する。
【0043】
検証用SQLファイルは、現行データベースD11のログからSQL実行情報を抽出して作成する。
【0044】
まず、
図1と、
図6に示すフローチャートに基づいて、検証用SQLを抽出する処理を説明する。本処理は、評価検証装置11のSQL抽出部112に現行データベースD11のログ及びテーブル定義ファイルを読み込ませることでSQL実行情報を抽出し、検証用SQLファイルを出力させる。テーブル定義ファイルは、例えば、アプリケーションに関するSQL実行情報のみを抽出させるために読み込ませるものであり、つまり、定期的にバックグラウンドで走っているSQL実行情報等を除くためのものである。
【0045】
ユーザーは評価検証装置11にアクセスし、検証用SQL抽出処理におけるGUI画面を表示させる(
図7参照)。そして、「結合後トレースログ」にて抽出対象のログを、「SQL出力ファイル」にて抽出した検証用SQLファイルの出力先を、「テーブル定義ファイル」にてテーブル定義ファイルを選択し、「抽出開始」にて実行させる。
【0046】
SQL抽出部112は、該選択されたログやファイルを読み込む(S301,S302)。ログは1行ずつ読み込まれ、その行にSQL文が含まれているか、バインド変数が含まれているかを検索し、取得対象SQL判定を行う(S303~S306)。そして、バインド変数埋め込みを行い(S307)、ログの最終行に到達するまでS302~S308の処理を繰り返す。
【0047】
ログの読み取りが完了したら、検証用SQLファイルを出力して処理を終了する(S309)。このように、検証用SQLファイルは現行データベースD11のログ、つまり、実際にアプリケーションサーバS等から実行されたSQL実行情報に基づいて作成されるため、実際の業務におけるアプリケーション操作に即した、精度の高い検証を行うことができる。
【0048】
なお、本検証用SQLを抽出する処理は一例であり、例えば、複数のログを結合させたファイルより抽出してもよいし、現行データベースD11へのSQL実行情報が記載されていれば、ログの種類や数は問わない。
【0049】
続いて、
図1と、
図8に示すフローチャートに基づいて、作成した検証用SQLファイルを用いた検証処理を説明する。本処理は、評価検証装置11のSQL検証部113に検証用SQLファイルを読み込ませ、移行先データベースD21と検証データベースD22に対して同一のアクセス処理を行い、その処理結果を比較する。
【0050】
SQL検証部113は、検証用SQLファイルを読み込み、接続先のデータベースを判定する(S401,S402)。接続先のデータベースは、検証用SQLファイルに記載してもよいし、それ以外の方法(例えば、検証用SQLファイル名を移行先と検証用とで分ける)でもよい。
【0051】
接続先のデータベースが検証データベースD22の場合、SQL検証部113は、データベース言語の変更を行わず(データベース言語変換装置12のSQL変換部122を介さず)、検証用SQLファイルに基づいたアクセス処理を現行データベースD11に対して行う(S410~S413、S403~S405)。そして、その検証結果をテキストデータで出力する(S406)。
【0052】
一方、接続先のデータベースが移行先データベースD21の場合、SQL検証部113は、データベース言語変換装置12のSQL変換部122を介してデータベース言語変換を行い、検証用SQLファイルに基づいたアクセス処理を移行先データベースD21に対して行う(S420~S425、S403~S405)。そして、その検証結果をテキストデータで出力する(S406)。
【0053】
双方の検証結果が揃った後、SQL検証部113は、該検証結果が同じであるか比較する。比較は、検証結果としてのテキストデータを比較ツール等(例えば、WinMerge)で比較してもよいし、それ以外の方法でもよい。比較結果が同じであれば、データベース言語変換装置12のSQL変換部122におけるデータベース言語変換処理が正しく動作していると判断できる。一方、比較結果に異なっていれば、誤って動作している箇所があると判断できる。
【0054】
なお、比較結果が異なっていた場合、該比較結果に基づいて、現行データベースD11と異なる種類のデータベース間との非互換情報として非互換リストに含まれていなかった未対応非互換情報を非互換リストにフィードバック(非互換リストを更新)させる。これにより、容易に、よりデータベース言語変換処理の精度を向上させることができる。また、該フィードバックは、データベースの仕様変更があった場合の検知にも有効であり、検証用SQLの内容の充実化させ繰り返し検証を行うことにより、さらにデータベース言語変換処理の精度を向上させることができる。さらに、該フィードバックは、非互換リストだけでなく、SQL変換部122に読み込ませる非互換抽出結果にも反映させる。該フィードバックは、評価検証装置11やデータベース言語変換装置12が行ってもよく、又はユーザー自身が行ってもよい。
【0055】
上述した構成要件の説明は、本発明の実施の形態の一例(代表例)であり、本発明はその要旨を変更しない限り、上述の内容に限定されない。例えば、評価検証装置11の非互換結果抽出部111を非互換結果抽出ツールと、機能の一部をツール化してもよい。また、データベース言語変換装置12のSQL変換部122をSQL変換ドライバと、機能の一部をドライバ化してもよい。
【0056】
また、各データベースD11~D22は、仮想化して1つにまとめてもよいし、クラウドデータベースを用いてもよい。
【産業上の利用可能性】
【0057】
本発明のデータベースマイグレーションシステムを用いたデータベースマイグレーション方法は、システム切り替え等でアクセスするデータベースが異なる種類に変わる場合においても、アプリケーションのプログラム修正を不要とするデータベースマイグレーション方法として有用であり、データベースマイグレーション後の検証までを自動で行うこと等により、ユーザーの負担を軽減したデータベースマイグレーション方法として好適である。
【符号の説明】
【0058】
1 データベースマイグレーションシステム
11 評価検証装置
111 非互換結果抽出部
112 SQL抽出部
113 SQL検証部
12 データベース言語変換装置
121 通信部
122 SQL変換部
1221 SQL共通変換部
1222 SQL個別変換部
1223 データ取得結果変換部
C クライアント端末
S アプリケーションサーバ
M 保守パソコン
D11 現行データベース
D21 移行先データベース
D22 検証データベース
N ネットワーク通信網