本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

Data Studio V2.2、Optim Development Studio V2.2による異種DBMS間のデータ・オブジェクト移行

OracleからDB2へのデータ・オブジェクト移行を例として、異なるDBMS間で簡単にデータベース・オブジェクトを移行できるEclipseベースのツールをご紹介します。

苧阪 浩輔 (OSAKA@jp.ibm.com), DM Technical Sales, ソフトウェア事業, 日本アイ・ビー・エム株式会社
2008年入社以来、データベース製品の技術営業として、主に製造業のお客様向けに技術支援を行っています。

概要: Data Studio V2.2またはOptim Development Studioを利用することで、OracleとDB2といったさまざまなDBMSへの接続を実現し、簡単にデータの編集やアプリ開発、データ・オブジェクトの移動を行うことができます。本記事では、DBへのJDBC接続の作成方法、またOracleからDB2へ簡単にデータ・オブジェクトを移行できる機能をご紹介します。

日付:  2010年 5月 18日
レベル:  中級
アクティビティー: 2357 ビュー
お気軽にご意見・ご感想をお寄せください: 


はじめに

Data StudioおよびOptim Development Studioはデータベース管理者およびアプリケーション開発者に対して統合された包括的なパッケージ・ツールを提供します。Eclipseをベースとしているので開発ツールとしてすでに幅広く普及しており、ツール自体への慣れという点では非常に敷居の低いツールといえます。このツールを利用することで、データベース内のテーブルやインデックス、ビューやストアド・プロシージャの編集、あるいはさまざまな言語でのアプリケーションを開発することがが可能です。本記事では異なるデータベース間でのデータ・オブジェクト移行機能をご紹介していきます。
さて、タイトル内にもData StudioとOptim Development Studioという2つの製品名を併記しています。これらの違いを簡単に述べると、Data Studioは無償で使用できるけど機能がある程度制限されたツール、Optim Development Studioは有償だけどData Studioにはない幅広い機能を提供するツールとなります。今回ご紹介するデータ・オブジェクトの移行機能は、無償のData Studioでも有償のOptim Development Studioでもご利用いただけます。また有償版のOptim Development Studioは下記URLより60日間の試用版をインストールいただけますのでお気軽にご試用いただけます。


さまざまなDBMS製品への接続が可能

Data StudioまたはOptim Development Studioを利用することで、IBM製DBMSであるDB2やInformixのみならず、MySQLやOracle、SQL serverなどさまざまなDBMSへのJDBC接続を作成することが可能です。(ただし後ほどご紹介するデータベース・オブジェクトの移行ができるDBMSは限定されます。)これらのDBMSへJDBC接続することで、データの挿入や削除、テーブルなどのオブジェクト作成、さまざまなプログラム言語によるアプリケーション開発が可能となります。
さて、ここからDB2とOracleへのJDBC作成の例をご覧いただきます。

DB2 for Linux, Unix and WindowsへのJDBC接続

ここではオープン系のDB2で最新バージョンとなるDB2 9.7 for LUW FP1への接続をご紹介いたします。プラットフォームはWindows XPです。Optim Development Studioは2010年1月時点で最新バージョンのV2.2.0.1を利用しています。(図1)


図1. Optim Development Studioの起動画面

インストール直後、最初に起動すると以下のような画面が表示されます。(図2)ここで簡単な製品チュートリアルなどを見ることができます。


図2. Optim Development Studioの「ようこそ」画面

通常Data Studio又はOptim Development Studioでデータベース開発を実施する際は、画面構成を「データベース開発」パースペクティブにしておくと便利ですので、「データベース開発」パースペクティブに切り替えます。画面上部の「ウインドウ」―「パースペクティブを開く」―「データベース開発」を選択します。そうすると以下のような画面構成になります。(図3)


図3. 「データベース開発」パースペクティブの初期画面

この画面の左下に「データ・ソース・エクスプローラー」ビューが用意されています。ここで、接続したいデータベースのJDBC接続を作成します。「データ・ソース・エクスプローラー」内のデータベースフォルダ上で右クリックし、「新規」を選択します。(図4)


図4. データベースへのJDBC接続作成画面

すると以下のような画面へ遷移します。(図5) ここで「データベース・マネージャーの選択」の中から、今回ターゲットとなる「DB2 for Linux, UNIX および Windows」を選択します。データベース名(ここではSAMPLEというデータベース名)、ホストのIPアドレス(Optim Development StudioがDB2 serverと同じマシン上であれば、localhostで大丈夫です。)、ポート番号(デフォルトでDB2をインストールしていれば50000番)とします。ユーザー名とパスワードはDB2のインスタンス・オーナーのものを記入してください。


図5. DB2での新規接続構成画面

左下にある「接続のテスト」ボタンを押すと、上記設定が正しく設定されていれば下の図のようなポップアップ画面が表示されます。(図6)


図6. 新規接続に成功した場合に表示されるポップアップ画面

ここまでで、「終了」ボタンを押すとJDBC接続が作成されます。「次へ」ボタンを押すと、事前に用意した物理データモデルを導入することも可能ですが、本記事では省略します。接続に成功すると、ウインドウ左下の「データ・ソース・エクスプローラー」ビューにデータベースのJDBC接続が作成されます。(図7)


図7. DB2データベースへのJDBC接続が成功した図

テーブルやビューやインデックス、ストアド・プロシージャなどのデータベース・オブジェクトは、スキーマごとに整理されています。(図8)


図8. スキーマごとにデータベース・オブジェクトが整理された図

Oracle 11gへのJDBC接続

次にOracle 11gへのJDBC接続を作成してみます。(現状のData StudioとOptim Development Studioのバージョンでは、Oracle 10g, 11gへの接続を正式サポートしています。)DB2で新規接続をしたように、「データベース・エクスプローラー」内で右クリックして「新規」を選択します。下記のように「データベース・マネージャーの選択」タブの中で「Oracle」を選択します。Oracleの場合、JDBCドライバーの選択では、10gと11gとバージョンごとに指定するドライバーを区別します。ここでは「Oracle 11 – Oracle Thin Driver デフォルト」を指定します。SIDとは、DB2で言うところのデータベース名を指定します。以下ホスト(IPアドレス)、ポート番号、ユーザー名、パスワードを指定します。(図9)


図9. Oracle DBへのJDBC新規接続の作成

DB2の接続と同様の手順を踏むと接続に成功します。「データ・ソース・エクスプローラー」には以下のようにOracleのデータベース接続も作成されたことを確認できます。(図10)


図10. データ・ソース・エクスプローラーへの登録画面


OracleからDB2へのデータ・オブジェクト移行

前章までで、DB2とOracle双方のデータベースへの接続作成に成功しました。ここからは、Oracleのデータベース上のデータ・オブジェクトを、DB2のデータベース上に移行・展開する手順を紹介していきます。それに先立ち、DB2側で事前に行っておくべき設定をご紹介します。

DB2 9.7によるOracle特有機能のサポート

DB2 9.7から、Oracle特有のデータ・タイプやSQL構文、また手続き型言語のPL/SQL言語などが新たにサポートされ始めました。これらOracle特有機能をDB2が解釈できるようにするためのレジストリー変数がDB2 9.7では用意されています。これがDB2_COMPATIBILITY_VECTORというレジストリー変数ですが、12ビットの16進数で表現され、どのビット列を立てるかで、どのOracle特有機能を有効化するか無効化するかを細かく設定することができます。詳細についてはDB2 9.7のインフォメーション・センターの情報をご参照ください。
現状、このレジストリー変数は初期状態では無効化されています。今回のようにOracleからDB2へのデータ・オブジェクトの移行を検討する場合、DB2のOracle特有機能をサポートする設定にすべきかを検討し、必要に応じてこのレジストリー変数を設定する必要があります。 以下、レジストリー変数の設定方法を紹介していきます。この操作は各DB2インスタンスレベルでの設定変数となりますので、今回ご紹介しているData StudioやOptim Development Studioでは行えません。したがって、DB2に付随するコマンド行プロンプトなどのターミナルからコマンド入力します。以下キャプチャー画面にあるとおり、(図11)


DB2_COMPATIBILITY_VECTOR=ORA

と設定すると、すべてのOracle特有機能をサポートするモードに設定することができ便利です。「ORA」はワイルド・カードのようなもので、全てのOracle特有機能をサポート可能にします。この操作をした後は、一度DB2インスタンスの再起動が必要です。


図11. CLP画面からのDB2_COMPATIBILITY_VECTORレジストリー変数の設定例

Oracle上のテーブルをDB2へ移行

ここから実際にOracleデータベース上のデータ・オブジェクト、ここでは「EMPLOYEES」表を移行する例を見てみましょう。


図12. Oracleデータベース上のテーブル・オブジェクトをコピーする

図に示す通り(図12)、GUIを使って直感的で分かりやすい操作となっています。とりあえずコピーします。

次にDB2データベース上で、移行先となるスキーマ上で右クリックし、下図のように「貼り付け」を選択します。(図13)


図13. DB2データベース上にテーブル・オブジェクトを貼り付ける

「貼り付け」を選択すると、以下のような画面へと遷移します。(図14)


図14. データ・オブジェクトの貼り付け詳細オプション画面

ここでソース・ターゲットとなるDB2のデータベース上にオブジェクトのみを移行するのか(ここではテーブル・オブジェクトのDDL実行のみ)、オブジェクトと中身のデータも移行するかを選択できます。それ以外にも制約、エラー処理の対応方法といった色々なオプション指定をカスタマイズすることができます。

すべてのオプションを指定し終わると以下のような画面へ遷移し(図15)、実行されるDDL文が表示されます。なお、作成されたDDL文をよく見てみると、DB2INST1.DEPARTMENTS表のCREATE文の中のカラム定義に、Oracle特有のデータ・タイプであるVARCHAR2文字列が定義されています。このように、これまでOracle特有であり、DB2ではサポートしていなかった文字列タイプが、今回DB2 9.7から使えるようになりました。そうした観点から、これまでよりも格段にデータベースの乗り入れなどのコストを下げることに成功しています。


図15. データ・オブジェクトの貼り付け作業DDLのプレビュー

「終了」ボタンをクリックすると、実際にデータ・オブジェクト作業が実行されます。以下のようにデータ・オブジェクトがDB2のデータベース上に移行されたことが確認できます。(図16)


図16. DB2データベースへのデータ・オブジェクト移行完了画面

以上で、Data StudioまたはOptim Development Studioを利用して、OracleからDB2へデータ・オブジェクト(今回の例ではテーブル・オブジェクト)を簡単に移行できる機能をご紹介しました。


著者について

2008年入社以来、データベース製品の技術営業として、主に製造業のお客様向けに技術支援を行っています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=490469
ArticleTitle=Data Studio V2.2、Optim Development Studio V2.2による異種DBMS間のデータ・オブジェクト移行
publish-date=05182010
author1-email=OSAKA@jp.ibm.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。