Oracle ホワイト ペーパー 2010 年 5 月 Oracle SQL Developer の移行機能
概要... 3 はじめに... 3 Oracle SQL Developer: アーキテクチャおよびサポートされるプラットフォーム... 3 サポートされるプラットフォーム... 4 サポートされるデータベース... 4 接続... 4 移行プロセス... 5 標準移行... 5 クイック移行... 6 オンラインモード / オフラインモード... 7 サード パーティ データベースの取得... 7 データの移行... 7 移行の計画... 7 参考資料... 10 結論... 10
概要 データベース間の移行は 多くの場合 リスクが高く 費用と時間のかかるプロセスとなります ただし オラクルの提供する製品を使用することにより サード パーティ データベースから Oracle プラットフォームへの移行に伴う時間 リスク および費用に関する問題を削減できます Oracle SQL Developer には Microsoft SQL Server Sybase MySQL Microsoft Access IBM DB2 LUW Teradata を Oracle データベースに移行するための統合移行ツールが用意されています Oracle SQL Developer は 2006 年 3 月に最初にリリースされました 移行機能が追加されたのは 2007 年 6 月にリリースされた SQL Developer 1.2 です 最新のリリースは Oracle SQL Developer 2.1.1 で 2010 年 3 月より提供が開始されています このホワイト ペーパーでは Oracle SQL Developer の移行機能の概要を説明します はじめに SQL Developer は 生産性の向上とデータベース開発作業の簡素化を実現する グラフィカルなイ ンタフェースを備えたツールです SQL Developer を使用すると データベース オブジェクトの 参照 作成 変更 SQL 文の実行 PL/SQL の編集とデバッグ 広範な事前定義済みレポート リ ストへのアクセス ユーザー固有のレポートの作成などが可能になります SQL Developer では オブジェクトやデータを参照する目的で サード パーティ データベース (Sybase MySQL Microsoft SQL Server IBM DB2 など ) への接続を作成できます 接続を作成 したら SQL Developer のユーティリティを使用して サード パーティ データベースを Oracle データベースに移行します 移行するデータベースに応じて 表 トリガー ストアド プロシー ジャ および他のすべての関連オブジェクトが自動的に Oracle データベースに変換されます ター ゲットの Oracle データベースが生成された時点で SQL Developer のサポートにより サード パー ティ データベースからターゲットの Oracle データベースにデータが移行されます Oracle SQL Developer: アーキテクチャおよびサポートされるプラットフォーム Oracle SQL Developer は Java で開発されたものであり Oracle Fusion Client Platform(Oracle FCP) 上 に存在します 必要とされるプラットフォームに応じて 使用可能な SQL Developer のディストリ ビューションが異なります Windows クライアントの場合は JRE 1.6 とバンドルされたバージョン のダウンロードを選択できます この場合 Windows クライアントに対応した追加の tools.jar が提供 されます バンドルされたディストリビューションを使用しない Windows クライアントと その他 すべてのプラットフォームの場合は zip ファイルをダウンロードして 用意されている またはイ ンストールされた JDK 1.6 に Oracle SQL Developer が個別にアクセスするように設定する必要があり ます 3
サポートされるプラットフォーム Oracle SQL Developer 2.1.x は JDK 1.6 Update 6 以上での稼働が保証されています サポートされる プラットフォームは以下のとおりです プラットフォーム Microsoft Windows サポートされるバージョン Microsoft Windows Windows 2000 Windows 2008 Server XP(Professional) Vista Apple MAC OS X(Power PC) Linux Oracle Enterprise Linux 4 Red Hat Enterprise Linux SUSE Linux Enterprise Server 図 1: サポートされるプラットフォーム サポートされるデータベース SQL Developer では 現在 サード パーティ データベースから Oracle Database 10g および Oracle Database 11g への移行がサポートされています 以下のサード パーティ データベースがサポート されています サポートされるサード パーティ データベース バージョン Microsoft SQL Server 7.0 2000 2005 Microsoft Access 97 2000 2002 2003 Sybase Adaptive Server 12 および 15 MySQL 3 4 5.0 IBM DB2 LUW 7 8 9 Teradata 12 図 2: サポートされるサード パーティ データベース 接続 移行機能は SQL Developer の不可欠な部分であり Oracle SQL Developer をインストールするとデ フォルトで提供されます 移行を開始するためには 以下が必要です Oracle データベースへの接続 4
サード パーティ データベースへの接続またはオフライン取得ファイル Oracle データベースおよび Microsoft Access データベースへの接続の作成は SQL Developer にデフォルトで組み込まれています Microsoft SQL Server Sybase IBM DB2 LUW Teradata および MySQL への接続の作成には データベース固有の JDBC ドライバが必要です 移行リポジトリ SQL Developer の移行ツールを使用する場合は 移行時の情報を保存する移行リポジトリが必要になります SQL Developer では 移行リポジトリを Oracle 接続と関連付けると 移行ツールで必要となる表とパッケージが自動的に定義されます 移行プロセス 移行の場合も 他のソフトウェア プロジェクトと同様に 分析 計画 テストが必須です SQL Developer には これらの分野のツールが用意されていません その代わり データベース移行の大部分を可能な限り自動化することに重点が置かれています SQL Developer には サード パーティ データベースを移行するために 以下の 2 つのアプローチが用意されています 標準移行 クイック移行 標準移行 SQL Developer では 移行プロセスが 4 つの異なるフェーズに分けられています 取得移行プロセスで実行する最初のステップは サード パーティ データベースのスナップショットの取得です このステップでは 他に影響を及ぼすことなく サード パーティ データベースに関するメタデータを収集します 情報は取得モデルとしてリポジトリに保存されます この取得モデルは後で変更できます 変更してもサード パーティ データベースに影響はありません 表データは最後のステップで処理されるため ここでは取得されません 変換取得モデルは その後 Oracle モデルに変換されます Oracle モデルは Oracle データベースがどのようなものになるかを表します このモデルは リポジトリ内に存在する唯一のモデルであり また 実際のデータベースではありません そのため このモデルも他に影響を及ぼすことなく変更できます 生成変換モデルは その後 SQL スクリプトとして表されます この SQL スクリプトを Oracle データベースに対して実行すると 移行されたユーザー 表 トリガー ストアド プロシージャ その他の関連オブジェクトがすべて生成されます 5
データ移動最後のステップは データの移行 すなわち移動です データの移動は SQL Developer 接続を使用してオンラインで実行することも SQL Developer によって自動的に作成されたスクリプトを使用してオフラインで実行することも可能です これらのスクリプトでは BCP( 一括コピー プログラム ) のようなサード パーティ データ移動ツールや オラクルの SQL*Loader を使用します このプロセス全体を通じて SQL Developer では 稼働中のサード パーティ データベース 取得モデルと変換モデル 稼働中のターゲット Oracle データベースを参照および変更するユーザー インタフェースが提供されます 図 3 に Captured Models ウィンドウと Converted Models ウィンドウを示します 図 3: 取得モデルと変換モデル クイック移行 クイック移行オプションは 基本的に 1 ステップ アプローチです ユーザーはウィザードを介して サード パーティ接続 ターゲット Oracle 接続 移行リポジトリ情報などの詳細を入力します クイック移行では デフォルト設定を使用して上述のステップ ( 取得 変換 生成 データ移動 ) が実行されます このアプローチが適しているのは 小規模のシンプルなデータベースに対して実行する場合か またはプロトタイプ試行として実行する場合のみです 移行中に問題が発生した場合 クイック移行は強制停止されます 各フェーズで発生した問題を手動で解決できるという理由から 標準移行アプローチの使用を推奨します さらに 標準移行では 構造の変更 すなわちオブジェクトの削除および名前の変更をさらに細かく制御できます 6
オンラインモード / オフラインモード さまざまな方法を使用して サード パーティ データベースのオブジェクトやデータを取得し 移行することができます 移行方法は以下の 2 つの方法に大別されます オンライン :SQL Developer での接続を介してサード パーティ データベースに直接アクセス します オフライン : 一連のスクリプトと対応する出力を使用します サード パーティ データベースの取得 オンラインによる取得を使用する場合 SQL Developer は稼働中の JDBC 接続を介してサード パーティ データベースに接続し データベース構造を抽出して 取得モデルを作成します サード パーティ接続を右クリックし Capture を選択して取得プロセスを開始します SQL Developer に用意されている一式のスクリプトを使用することにより サード パーティ データベースからメタデータが抽出され 一連のファイルにロードされます 次に このファイルから移行リポジトリにメタデータが抽出されます この方法を使用すると SQL Developer を顧客側にインストールしなくても移行を実行できるため 柔軟性が向上します たとえば コンサルタントが抽出スクリプトを顧客に提供します 顧客はそのスクリプトを実行して 出力をコンサルタントに返すことができます これを受けてコンサルタントはオフィスで移行を実行し 必要な Oracle スクリプトを生成できます データの移行 取得 変換 ターゲット Oracle データベースの生成が終わったら データ移動を遂行する方法を再 度選択します オンラインでのデータ転送 この方法は 経験の浅いユーザーおよび転送するデータ量が少ないユーザーに最適です オフラインでのデータ転送 この場合 SQL Developer は データをオフラインで移行するデータ移行スクリプトを作成します データベースに大量のデータが含まれている場合は この方法を推奨します データをオフラインで転送するには Converted Model を右クリックして Generate Offline Data Move Scripts を選択します 移行の計画 プロジェクトを開始する場合は プロジェクトを計画し プロジェクトを予定どおりかつ予算内で遂行することに関するリスクを特定することが重要です 移行プロジェクトの計画フェーズと分析フェーズで SQL Developer を使用すると データベース移行に伴う作業量を特定できます 以下に 移行プロジェクトにおいて推奨される計画プロセスのステップを示します 7
1. プロジェクト要件の決定プロジェクトの範囲を定義します プロジェクトの範囲を定義するには 単純な移行シナリオと複雑な移行シナリオのどちらを使用するかを決定します 以下の項目の一部または全部に該当する場合は 複雑な移行シナリオで処理することを推奨します データベースが 25MB を超えているデータベースがデータウェアハウスであるデータベースが大規模アプリケーション ( 画面 フォーム レポート バッチ ジョブが 100 を超える ) をサポートしている複数の業務でデータベースを使用しているデータベースを分散環境に配置しているデータベースが大規模ユーザー ベース (100 人を超えるユーザー ) をサポートしているデータベースの高可用性 (24 時間 365 日体制の環境など ) が必要とされる 移行シナリオが複雑になればなるほど 移行にかかる時間も長くなります これはおもに 複雑な移行に関連するタスク リストの増大が原因です また プロジェクトの遂行中に問題が発生するリスクも高くなります このステップでは テスト基準と受入れ基準の定義 および移行プロジェクトの要件リストを含む要件ドキュメントの作成も行います 2. SQL Developer によるワークロードの見積もり SQL Developer は 移行に伴うワークロードを見積もることができる便利なスコーピング ツールです ワークロードを見積もるには SQL Developer を使用して サード パーティ データベースを取得し 変換モデルを作成します Oracle SQL Developer の移行レポートを使用すると 取得および変換フェーズの結果を簡単に評価できます 移行レポートでは データベース オブジェクトの総数が分類されるため 自動的に変換および移行できるオブジェクト数を特定できます 移行レポートには 成功 失敗 および制約事項が表示されます さらに 自動的に実行できる移行量に関する情報も提供されるため 移行に伴う手動での作業量を簡単に見積もることができます 3. 業務上の要件の分析業務上の要件を分析する必要があります 業務上の要件を分析するにあたり 以下の項目を確認してください 必要とされるバックアップおよびリカバリの変更移行時に必要な停止時間停止時間が業務に与える影響パフォーマンス要件業務時間枠を変更するかどうかトレーニング要件 または従業員に関する追加の考慮事項サード パーティ データベースと Oracle データベースを同時に実行する必要があるかどうか 8
4. アプリケーションの分析 アプリケーションを業務面と技術面の両方から分析する必要があります アプリケーションを分析 するにあたり 以下の項目を確認してください 現在使用中のアプリケーションは業務上の要件を満たしているか または アプリケーションを設計し直す必要があるかアプリケーションを Oracle データベースで効果的に実行するために データベース接続文字列または SQL 文を変更する必要があるか アプリケーションを変更する必要がある場合は アプリケーションの書換えまたは修正のどちらがより効率的であるかを判断してください そして アプリケーションの書換えまたは修正に関連する各問題に対応するための時間とリソースを割り当てます また ステップ 1 でプロジェクト用に作成した要件ドキュメントを更新してください SQL Developer には Migration Scratch Editor という便利な機能が提供されています この機能を使用すると アプリケーション コード内で簡単にサード パーティ SQL を移行できます 5. 移行プロジェクトの計画プロジェクトの予算面での制約事項 およびステップ 1~4 で収集された情報に基づいて移行計画を作成し 移行プロジェクトにかかる時間を見積もります さらに 移行の遂行とテストに必要なリソース量を計算します 6. 移行の実行 SQL Developer では このステップの大部分が自動化されます 詳しくは Oracle Technology Network (OTN) にある 'Oracle by Example' チュートリアルのいずれかをダウンロードしてください 7. 移行の終了 SQL Developer では大部分が自動化されますが 場合によっては移行を完了するために一定量の作業を手動で行う必要があります この手動作業の大半は トリガーやストアド プロシージャなどの SQL プログラムで必要となります Translation Scratch Editor は SQL プログラムの変換を並行して実行できるので このような手動作業に便利です 8. Oracle データベースのテスト移行が完了したら Oracle データベースと関連アプリケーションをテストする必要があります このテストでは 移行されたデータが正確かつ完全であることを確認します また サード パーティ データベースで実行していたのと同じ方法で アプリケーション機能を確認する必要もあります 9. Oracle データベースの配置新たに移行したデータベースおよびアプリケーションをうまくビジネス環境にデプロイできない場合があります そのため 最適なロールアウト戦略を採用することが重要です たとえば さまざまなタイミングでユーザーのグループを移行する段階的アプローチを使用することができます または すべてのユーザーを同時に移行するビッグ バン アプローチを使用することもできます サード パーティ データベースと新たに移行した Oracle データベースの両方を一定時間同時に保 9
守するパラレル アプローチを使用する方法もあります 参考資料 Oracle Technology Network は Oracle プラットフォームでの開発に関するオラクル製品の技術情報を入手できるもっとも信頼のおける情報源です OTN メンバーは フリー ソフトウェア OTN が支援しているインターネット開発者の会議 オラクルの最新テクノロジーに関するディスカッション グループにアクセス可能なオンライン コミュニティの一員です Migration Center 以下の Migration Center の Web サイトには 移行関連の情報が多数掲載されています http://otn.oracle.com/tech/migration ソフトウェアのダウンロード Oracle SQL Developer は 以下の OTN から無償でダウンロードできます http://www.oracle.com/technology/software/products/sql/index.html ドキュメントオンライン ドキュメントは 以下の Oracle Technology Network Web サイトで入手できます http://otndnld.oracle.co.jp/document/products/sql/15/doc_cd/index.htm 技術サポート技術サポートについては Oracle MetaLink を使用して Oracle サポートを参照してください OTN のディスカッション フォーラムには 以下の URL からアクセスできます http://www.oracle.com/forums/forum.jsp?forum=260 詳細なお問い合わせ Oracle Migration Workbench に関するすべてのお問い合わせは Oracle Migration Workbench ヘルプデスク (mtg-feedback.ww@oracle.com) までお送りください 結論 Oracle SQL Developer は Microsoft Access Microsoft SQL Server MySQL および Sybase Adaptive Server といったデータベースから Oracle への移行をサポートします Oracle SQL Developer では 移行プロセスの大部分が自動化されるため 移行時間を短縮できます さらに 移行プロセスの遂行に必要な手動作業を見積もるレポートを生成することで 移行に伴うリスクを軽減できます Oracle SQL Developer には 無償で使用できる移行ツールが統合されています これらの要素をすべて組み合わせることで SQL Developer は今日の市場において サード パーティ データベースを Oracle データベースに移行するためのもっとも強力なソリューションとなっています 10
May 2010 著者 : Sue Harper 共著者 : Dermot O Neil, Barry McGillan Copyright 2010, Oracle and/or its affiliates. All rights reserved. 本文書は情報提供のみを目的として提供されており ここに記載される内容は予告なく変更されることがあります 本文書は一切間違いがないことを保証するものではなく さらに 口述による明示または法律による黙示を問わず 特定の目的に対する商品性もしくは適合性についての黙示的な保証を含み いかなる他の保証や条件も提供するものではありません オラクルは本文書に関するいかなる法的責任も明確に否認し 本文書によって直接的または間接的に確立される契約義務はないものとします 本文書はオラクルの書面による許可を前もって得ることなく いかなる目的のためにも 電子または印刷を含むいかなる形式や手段によっても再作成または送信することはできません Oracle および Java は Oracle Corporation およびその子会社 関連会社の登録商標です はそれぞれの会社の商標です その他の名称 AMD Opteron AMD ロゴおよび AMD Opteron ロゴは Advanced Micro Devices の商標または登録商標です Intel および Intel Xeon は Intel Corporation の商標または登録商標です すべての SPARC 商標はライセンスに基づいて使用される SPARC International, Inc. の商標または登録商標です UNIX は X/Open Company, Ltd. によってライセンス提供された登録商標です 0410