Comments
Description
Transcript
DB2 第4章 への移行計画とサポートツール
<2009年12月> 第4章 DB2への移行計画とサポートツール 本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Systems Engineering Co., Ltd. 2009 内容 • Oracleから移行する際の主なタスク • 移行をサポートするツール • IBM Data Movement ToolによるDDL/データの移行 • IBM Optim Developer Studioによるオブジェクトの移行 2 © 2009 ISE Corporation Oracleから移行する際の主なタスク Oracleから移行する際の主なタスク 3 © 2009 ISE Corporation OracleからDB2へ移行する際の主なタスク • プロジェクトの プロジェクトのアセスと アセスと計画 • DB関連 関連リソース 関連リソースの リソースの移行 • オブジェクトの移行 • データの移行 • アプリケーションの移行 • テスト • 本番システム 本番システムの システムの移行 4 © 2009 ISE Corporation オブジェクト移行のタスク • 各種オブジェクト の抽出 各種オブジェクトDDLの オブジェクト • IBM Data Movement Tool, IBM Optim Development Studioが使用可能 • 移行先データベース 移行先データベースの データベースの作成 • 事前にDB2_COMPATIBILITY_VECTORをセットする • DB2にあわせた にあわせたスキーマ にあわせたスキーマの スキーマの更新 • データ・タイプのマッピング • DDLフォーマットの変更 • 論理設計を変更する場合はその対応 5 © 2009 ISE Corporation Note: • データタイプ・ データタイプ・マッピングの マッピングの例(1) • IBM Optim Development Studioでのデフォルトのマッピング ソース NUMBER NUMBER NUMBER NUMBER 桁数 1-4,0 5-9,0 10-18,0 19-31,0 ターゲット SMALLINT INTEGER BIGINT NUMBER(p,s) NUMBER 32-38,0 DECFLOAT NUMBER 1-31,1-31 NUMBER(p,s) NUMBER 32-38,1-38 DECFLOAT NUMBER DECIMAL BINARY_FLOAT BINARY_DOUBLE TIMESTAMP XMLTYPE 6 p,s p 備考 34桁以上では桁落ちが発生。 文字列としての保持を検討 34桁以上では桁落ちが発生。 文字列としての保持を検討 NUMBER DECIMAL(p,s) FLOAT DOUBLE TIMESTAMP(p) タイムゾーン付きは未サポー ト XML © 2009 ISE Corporation Note: • データタイプ・ データタイプ・マッピングの マッピングの例(2) ソース 桁数 NCHAR 1-127 GRAPHIC NCHAR 128-2000 VARGRAPHIC NVARCHAR2 7 ターゲット 備考 VARGRAPHIC CHAR 1-254 CHAR CHAR 255-2000 VARCHAR VARCHAR2 VARCHAR2 ROWID CHAR UROWID CHAR DATE TIMESTAMP BFILE BLOB LONG RAW BLOB BLOB BLOB CLOB CLOB NCLOB DBCLOB RAW VARCHAR FOR BIT DATA DATEも選択可 © 2009 ISE Corporation ブランク・ ブランク・ページ 8 © 2009 ISE Corporation データ移行のタスク • データの データの抽出 • Oracleは、デフォルトではCSV等への出力機能を持たない • IBM Data Movement Toolを使用してCSVへの抽出が可能 • 論理設計を変更する場合、データフォーマットの変換を実施 • データを データをテスト環境 テスト環境へ 環境へ投入 • 移行先の表へのデータ投入が可能かどうかをチェック • 特に論理設計の変更が行われている場合 • アプリケーションのテスト環境を提供 • 本番データ 本番データ移行 データ移行の 移行の計画、 計画、準備 • データの抽出、転送、投入のプロセスを検証し、本番データ移行での所要 時間やシステム停止時間を算出する 9 © 2009 ISE Corporation アプリケーション移行のタスク • 移行先の 移行先のアプリケーション・ アプリケーション・インターフェースの インターフェースの構成 • JDBC, 組み込みSQL, .NET, ODBC, CLI等適切なドライバを選定、構成 する • アプリケーション・ アプリケーション・コードの コードの変更 • DBへの接続ストリング • 互換性のないSQLやエラーハンドリングを検出 • 分離レベルやロッキングの要件を確認 • 基本的にはDB2 9.7で提供されるCurrently Committedを使用可能 • 未サポートのAPI、Build-in-package使用、ディクショナリー参照等があれ ば修正 • UDFやPROCEDUREの定義で回避可能か検討 • 検証テスト 検証テストの テストの実施 10 © 2009 ISE Corporation DB2 V9.7 FP1レベルでの主要な非互換/未サポート機能 Function / procedure定義のネスト は不可(複数階層の定義) 一階層のパッケージ等に移行。名前 の衝突に注意する。 独立したType宣言は未サポート パッケージ内部で宣言し、タイプの参 照にパッケージの接頭辞を追加 マルチ・アクションのトリガーは未サ ポート 複数のシングル・アクションのトリガー に分割する DB2では、UNIQUE INDEXは複数 のNULL値を許容しない カラムのNOT NULL化や非UNIQUE INDEXへの定義変更を検討 11 © 2009 ISE Corporation ブランク・ ブランク・ページ 12 © 2009 ISE Corporation 移行をサポートするツール 移行をサポートするツール 13 © 2009 ISE Corporation 移行をサポートするツール • データオブジェクトを データオブジェクトを移行する 移行する • IBM Data Movement Tool • IBM Optim Development Studio • データを データを移行する 移行する • IBM Data Movement Tool • アプリケーションを アプリケーションを移行する 移行する • IBM Optim Development Studio • スクリプトの スクリプトの移行を 移行を容易にする 容易にする • CLP Plus 14 © 2009 ISE Corporation IBM Data Movement Tool • 他社DBMSからの からのDDL/データ データ抽出 他社 からの データ抽出を 抽出をサポートする サポートするツール するツール • Oracle, SQL Server, Sybase, MySQL, PostgreSQL等多数のデータソースをサポート • OracleはCSVでのデータ抽出機能を持たないため、当ツールの活用が重要 • 主な機能 • GUI及び、コマンドラインによるDDL/データの抽出 • GUIによるターゲット・データベースでのオブジェクト作成 • 抽出、投入をコマンドラインから実施するための各種スクリプトの生成 • Oracleソース ソースの ソースの場合に 場合にサポートされている サポートされているオブジェクト されているオブジェクト • 表、ビュー、シーケンス、制約、索引、シノニム(ALIAS) • Procedure, Function, Trigger • 権限情報(Role, Privilege) 15 © 2009 ISE Corporation IBM Data Movement Tool • マルチ・ マルチ・スレッド動作 スレッド動作による 動作による高速 による高速な 高速なデータの データの抽出が 抽出が可能 • DB2へのLOAD用スクリプトも生成 • 前提 • JDK 1.5以降 • Oracleと接続する場合、Oracle JDBCドライバ要 • 必要なドライバは、ojdbc14.jar, xmlparserv2.jar and xdb.jar の3つ • 入手方法 • DeveloperWorksにて配布 • http://www.ibm.com/developerworks/db2/library/techarticle/dm-0906datamovement/ • ツールの詳細な使用方法の解説もあり 16 © 2009 ISE Corporation IBM Data Movement Tool • GUI画面 画面 17 © 2009 ISE Corporation ブランク・ ブランク・ページ 18 © 2009 ISE Corporation IBM Optim Development Studio • Data Studio Developerの の後継 • 2009年6月にOptimを統合したV2.2が登場 • Oracle移行関連 移行関連の 移行関連の機能強化 • Data Source ExplorerがOracleへの接続をサポート • Copy & Pasteによるデータオブジェクトの移行をサポート • SELECT/INSERTによるデータ移動も可能 • 互換性のないデータタイプは自動的にマッピング • PL/SQLの移行及び、デバッグ機能を提供 19 © 2009 ISE Corporation IBM Optim Development Studio 20 © 2009 ISE Corporation CLPPlus • OracleのSQL*Plusに似たインターフェースを持ち、SQLを実行 するためのユーティリティ • SQL、PL/SQL、SQL PLの実行 • 対話式でのSQLの実行 • ファイルに保存したSQLの実行 • 主要なSQL*Plusコマンドをサポート • OracleのSQL*Plusと同じような動作をする • サポートされているコマンドは、HELP INDEXコマンドで確認 • CLPの一部のコマンドもサポート • パラメーターのGET/UPDATE、EXPORT/IMPORT/LOAD等 21 © 2009 ISE Corporation CLPPlusの起動方法 1 • clpplus 起動コマンド 起動コマンド >>-clpplus--+------------------------+--------------------------> '-user-id--+-----------+-' '-/password-' >--+---+------------+----+--------------+--+----------------+-+->< | +-@host-name-+ '-:port-number-' '-/database-name-' | | '-@localhost-' | | | '-script-filename-----------------------------------------起動例: C:¥work>clpplus clpplus db2admin/db2admin@localhost:50000/testdb データベース接続情報 ホスト名 = localhost データベース・サーバー = DB2/NT SQL09070 SQL 許可 ID = db2admin ローカル・データベース別名 = TESTDB ポート = 50000 CLPPlus: バージョン 1.0 Copyright (c) 2009, IBM CORPORATION. All rights reserved. SQL> 22 © 2009 ISE Corporation CLPPlusの起動方法 2 • SQL*Plusでの「sqlplus userid/password@ネットサービス名」と似た形式で接続可能 • login.sqlファイルに接続で使用する変数を定義し、接続時にその変数を使用可能 • clpplus userid/passwod@変数 • 例 login.sqlにconnect_idintifierを記述 C:¥work>type login.sql define test21=localhost:50000/test21 define testdb=localhost:50000/testdb C:¥work>clpplus clpplus db2admin/db2admin@testdb データベース接続情報 login.sqlでdefineした 変数を指定 ホスト名 = localhost データベース・サーバー = DB2/NT SQL09070 SQL 許可 ID = db2admin ローカル・データベース別名 = TESTDB ポート = 50000 CLPPlus: バージョン 1.0 Copyright (c) 2009, IBM CORPORATION. All rights reserved. SQL> 23 © 2009 ISE Corporation CLPPlusコマンド • ファイルに記述されたSQLを読み込み実行 • 置換変数の使用 SQL> host dir | findstr sql10 2009/05/12 01:48 306 sql10.sql SQL> get sql10.sql 1 BEGIN 2 for cur1 in (SELECT * FROM dept WHERE deptno = &depno) depno 3 LOOP 4 DBMS_OUTPUT.PUT_LINE('========================'); 5 DBMS_OUTPUT.PUT_LINE(' DEPTNO:'||cur1.deptno); 6 DBMS_OUTPUT.PUT_LINE(' DNAME :'||cur1.dname ); 7 DBMS_OUTPUT.PUT_LINE(' LOC :'||cur1.loc ); 8 END LOOP; 9* END; SQL> set serveroutput on SQL> / 変数 depno の値を入力してください: 10 置換変数 実行前に置き 換えができる 元のステートメント:: &depno depno) ステートメント:: for cur1 in (SELECT * FROM dept WHERE deptno = & depno) 置換された 置換された新規 された新規ステートメント 新規ステートメント:: ステートメント:: for cur1 in (SELECT * FROM dept WHERE deptno = 10) ======================== DEPTNO:10 DNAME :ACCOUNTING LOC :NEW YORK DB250000I: コマンドは正常に完了しました。 24 © 2009 ISE Corporation CLPPlusコマンドで出力形式を整形 • CLPPlusコマンドで出力形式を整えることも可能 SQL> select table_schema,table_name,num_rows,blocks from user_tables; TABLE_SCHEMA -------------------------------------------------TABLE_NAME NUM_ROWS -------------------------------------------------- -------------------BLOCKS -------------------DB2ADMIN DEPT 5033 1004 デフォルトでは80バイトで行 が折り返される SQL> set linesize 150 DB2ADMIN SALGRADE 5 SQL> col table_schema format a30 1 TABLE_SCHEMA -------------------------------------------------TABLE_NAME NUM_ROWS -------------------------------------------------- -------------------BLOCKS -------------------DB2ADMIN BONUS 0 0 SQL> col table_name format a30 DB2ADMIN EMP 1* select table_schema,table_name,num_rows,blocks from user_tables SQL> SQL> SQL> SQL> SQL> SQL> 1* SQL> 6790032 100234 linesize 150 table_schema table_name num_rows blocks set format a30 col col format a30 col format 999,999,999 col format 999,999,999 l select table_schema,table_name,num_rows,blocks from user_tables / TABLE_SCHEMA -----------------------------DB2ADMIN DB2ADMIN DB2ADMIN DB2ADMIN 25 SQL> col num_rows SQL> col blocks format 999,999,999 format 999,999,999 SQL> l SQL> / TABLE_NAME NUM_ROWS BLOCKS ------------------------------ -------------------- -------------------DEPT 5,033 1,004 SALGRADE 5 1 BONUS 0 0 EMP 6,790,032 100,234 変更した出力形式で出力 © 2009 ISE Corporation CLPPlusでDB2 CLPコマンドが使用可能! • CLPコマンドのExportとImportをCLPPlusから実行 SQL> export to c:¥ c:¥work¥ work¥emp.del of del select * from emp; エクスポートされる行数の合計: 12 DB250000I: コマンドは正常に完了しました。 SQL> host type c:¥work¥emp.del +7369.,"SMITH","CLERK",+7902.,"1980-12-17-00.00.00",+00800.00,,+20. +7499.,"ALLEN","SALESMAN",+7698.,"1981-02-20-00.00.00",+01600.00,+00300.00,+30. ・・・省略・・・ SQL> create table emp2 like emp; デリミタ形式でファイルにExportされている DB250000I: コマンドは正常に完了しました。 SQL> import from c:¥ c:¥work¥ work¥emp.del of del replace into emp2; 読み取り行数の合計: 12 スキップされた行数の合計: 0 挿入された行数の合計: 12 更新行数の合計: 0 拒否された行数の合計: 0 コミットされた行数の合計: 12 DB250000I: コマンドは正常に完了しました。 Import先の表にデータが格納された SQL> select * from emp2; EMPNO ENAME ------ ---------7369 SMITH 7499 ALLEN ・・・省略・・・ 26 JOB MGR HIREDATE SAL COMM DEPTNO --------- ------ --------------------- --------- --------- -----CLERK 7902 1980-12-17 00:00:00 800.00 20 SALESMAN 7698 1981-02-20 00:00:00 1600.00 300.00 30 © 2009 ISE Corporation IBM Data Data Movement Movement Tool Tool IBM を利用したDDL/データの移行 を利用したDDL/データの移行 27 © 2009 ISE Corporation データベース作成前の設定 • 2つのレジストリー つのレジストリー変数 レジストリー変数 • DB2_COMPATIBILITY_VECTOR • Oracle互換機能の有効化 • DB作成前にセットすることが必須 必須 • DB2_DEFERRED_PREPARE_SEMANTICS • 型無しパラメータマーカーのサポート • db2setにて にてレジストリー にてレジストリー変数 レジストリー変数を 変数を設定 $ db2set DB2_COMPATIBILITY_VECTOR=ORA $ db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES • インスタンスを インスタンスを再起動して 再起動して設定 して設定を 設定を反映 $ db2stop force $ db2start 28 © 2009 ISE Corporation データベースを作成 • データベース作成時 データベース作成時の 作成時の一般的な 一般的な推奨 • 自動ストレージを活用しストレージ管理をシンプルに • 表スペース単位の初期サイズ、上限設定が不要 • ストレージ・パス単位での容量管理のみ実施 • 32KBページサイズの使用 • Oracleと異なり、DB2は各レコードが1ページに収まる必要がある。移行をシンプルにする場 合、なるべく大きなページサイズを使用する • 高トランザクションのOLTP環境では、4KB等のより小さなページサイズも考慮 • 複数ページサイズを使用する場合、ページサイズごとにバッファープールが必要 • STMMを活用し、各バッファープールのサイズを最適化(デフォルト) • LOBを格納する表スペースは分割する • インライン格納されていないLOBはバッファープールに載らないため、データ部と表スペース を分割し、ファイル・キャッシュの使用を有効化することとを推奨 • CREATE TABLESPACEに"FILE SYSTEM CACHING"のオプションを付加 29 © 2009 ISE Corporation データベースを作成 • CREATE DATABASEコマンド コマンドの コマンドの例 • /db2data1, /db2data2, /db2data3を自動ストレージパスとして設定 • 各ストレージ・パスは、独立したファイルシステム、物理ディスク上に配置 • データベースディレクトリーは/db2systemに配置 • デフォルトページサイズとして32KBページを指定 CREATE DB TESTDB AUTOMATIC STORAGE YES ON /db2data1, /db2data2, /db2data3 DBPATH ON /db2system PAGESIZE 32 K 30 © 2009 ISE Corporation IBM Data Movement Toolの起動 • IBM Data Movement Toolを を起動 • Linux/UnixではIBMDataMovementTool.shを起動(Windowsでは~.cmdを使用) $ ls -l total 889 -rw-r--r-- 1 db2inst1 db2grp 410 ... IBMDataMovementTool.cmd -rw-r--r-- 1 db2inst1 db2grp 897647 ... IBMDataMovementTool.jar -rwxr--r-- 1 db2inst1 db2grp 919 ... IBMDataMovementTool.sh $ cat IBMDataMovementTool.sh ... java -Xmx990m -jar IBMDataMovementTool.jar $1 $ ./IBMDataMovementTool.sh • Connection Informationの の入力 • GUI画面の起動後にソース、ターゲットDBへの接続情報を入力 • Oracleへの接続ユーザーIDは、システムユーザーを使用することを推奨 31 © 2009 ISE Corporation IBM Data Movement Toolの起動 • データベースへの接続 • ボタン1,2を押下し、ソース/ターゲットDBへ接続する 32 1 2 3 4 © 2009 ISE Corporation IBM Data Movement ToolによるDDL/データの抽出 • DDL/データ データの データの抽出 • 出力先ディレクトリーを設定 • 抽出の対象を選択 • 抽出対象のデータが少量の場合、リモートでの抽出も可能 • 大量データの抽出は、DDLの抽出とは独立してソースDBサーバ上で行うこ とを推奨 • 「Extract DDL/Data」ボタンを押し、抽出を実行 • (前ページチャートの「3」) • 抽出の結果を確認 33 © 2009 ISE Corporation IBM Data Movement Toolの起動 • 必要に を修正 必要に応じてDDLを じて • データ/索引/LOBの格納先表スペースの分割 • ページサイズの指定 • データタイプの再マッピング等々 • DDL/データ データの データの投入 • IBM Data Movement ToolのGUI画面から実施 • 「Deploy DDL/Data」ボタンから一括作成 • 「Interactive Deploy」機能を使用して個別に作成 • ツールが生成するdb2ddl.sh / db2gen.shを手動で実行 • 生成対象のオブジェクト • バッファープール、表スペース、表、制約、シーケンス、シノニム(ALIAS) 34 © 2009 ISE Corporation Note: • IBM Data Movement Toolが が生成する 生成する設定 する設定ファイル 設定ファイル、 ファイル、スクリプト ファイル名 ファイル名 IBMExtract.properties IBM Data Movement Toolの のプロパティファイル。 プロパティファイル。データベースへ データベースへ の接続情報や 接続情報や、前回実行時の 前回実行時のオプションを オプションを保持する 保持する。 する。 geninput ソースDBに ファイルを ソース に接続し 接続し、<SID>.tableファイル ファイルを生成する 生成する <SID>.table 35 内容 移行対象の 移行対象のテーブル一覧 テーブル一覧。 一覧。ソースDB上 ソース 上のテーブルを テーブルを元に生成され 生成され る。このファイル このファイルの ファイルの内容を 内容を編集することで 編集することで、 することで、ツールによる ツールによる移行対象 による移行対象の 移行対象の 表を制御可能。 はオラクルの 制御可能。<SID>は オラクルのシステム識別子 システム識別子を 識別子を表す unload ソースDBに データの ソース に接続し 接続し、DDL/データ データの抽出を 抽出を実行する 実行するスクリプト するスクリプト。 スクリプト。抽出 の対象( のみ、 及びデータ) 対象(DDLのみ のみ、データのみ データのみ、 のみ、DDL及 データ)は、プロパティファ イル( )の設定内容で イル(IBMExtract.properties) 設定内容で決定される 決定される。 される。 db2ddl.sh ターゲットDBに 中に含まれたオブジェクト ターゲット に接続し 接続し、DDL中 まれたオブジェクトを オブジェクトを作成する 作成するス するス クリプト( クリプト(PL/SQLを を含むオブジェクトは オブジェクトは対象外)。 対象外)。DDLのみを のみを抽出対 )。 のみを抽出対 象としたときに生成 としたときに生成される 生成される。 される。 db2gen.sh ターゲットDBに の実行と ターゲット に接続し 接続し、DDLの 実行とデータの データの投入を 投入を行う(PL/SQL を含むオブジェクトは データの オブジェクトは対象外)。 対象外)。DDL/データ )。 データの両方を 両方を抽出した 抽出した際 した際に生 成される。 される。 rowcount ソースDB、 を元にテー ソース 、ターゲットDBの ターゲット の両方に 両方に接続し 接続し、<SID>.tableを ブルの ブルの件数を 件数をカウントする カウントする。 する。 © 2009 ISE Corporation Note: • 前述した 前述した設定 した設定ファイル 設定ファイル、 ファイル、スクリプト以外 スクリプト以外の 以外のファイル オブジェクトの オブジェクトのDDL PL/SQLを を含むDDL その他 その他 db2tsbp.sql db2plsql_function.db2 db2tabcount.sql db2udf.sql db2plsql_package.db2 db2tabstatus.sql db2tables.sql db2plsql_package_body.db2 db2checkpending.sql db2default.sql db2plsql_procedure.db2 db2droptables.db2 db2sequences.sql db2plsql_trigger.db2 db2fkdrop.sql db2synonyms.db2 db2plsql_type.db2 db2objprivs.db2 db2check.sql db2plsql_type_body.db2 db2roleprivs.db2 db2cons.sql db2plsql_views.db2 db2runstats.sql db2uniq.sql db2fkeys.sql データロード用 データロード用スクリプト 権限情報 db2load.sql db2objprivs.db2 db2loadterminate.db2 db2roleprivs.db2 db2checkRemoval.sh 36 © 2009 ISE Corporation IBM Data Movement Tool • 「Interactive deploy mode」 」によるオブジェクト によるオブジェクトの オブジェクトの作成 • GUI画面からのオブジェクト作成も可能 • "Interactive Deploy" タブから“Refresh Objects to be deploy“を選択 • 抽出したDDLを読み込み、オブジェクトのツリーが表示される。 • 個別に対象オブジェクトを選択して作成可能 • 一括作成も可能 37 © 2009 ISE Corporation コンソールモードによる IBM Data Movement Tool の実行 • コマンドラインからの コマンドラインからのツール からのツール実行 ツール実行 • IBM Data Movement Toolはコマンドライン環境からも実行可能 • テキストによる対話式のメニューから実行する 38 © 2009 ISE Corporation コンソールモードによる IBM Data Movement Tool の実行 • コンソール・ コンソール・モードでの モードでの起動 での起動 • TELNET/SSH等のコマンドライン環境から起動した場合、自動的にコ ンソール・モードで起動 • "-console" オプションを負荷することで、強制的にコンソール・モードを選択 することも可能 • コンソール・ コンソール・モードでの モードでの抽出 での抽出の 抽出のステップ • コンソール・モードでの起動 • 動作設定、接続情報の入力 • テーブル一覧の生成 • テーブル一覧の編集(オプション) • ソースDBからの抽出の実行 • ターゲットDBへの投入 39 © 2009 ISE Corporation コンソールモードによる IBM Data Movement Tool の実行 • コンソールモードでの起動後、抽出対象の選択や接続情報の入力を実施。 入力する情報はGUIモードと同様 $ ./IBMDataMovementTool.sh -console Switching to Console Mode of operation [2009-06-07 10.11.04.838] INPUT Directory = . ... Extract DDL (Yes) : 1 Extract DDL (No) : 2 Enter a number (Default=1) : 1 Extract Data (Yes) : 1 Extract Data (No) : 2 Enter a number (Default=1) : 2 • 下記メッセージが出力されたタイミングで、テーブル一覧の生成が完了 • テーブル一覧を編集する場合は、ツールの実行を一旦保留して、別セッションから ファイルの編集を行う • コンソール・モードの場合、全スキーマのテーブルを含んだテーブル一覧が生成され るため、必要な表のみに絞ることを推奨 You can remove tables that you do not want to migrate by editing .tables file Do you want to go ahead and extract data (Yes) : 1 Quit Program : 2 Enter a number (Default=1) : 1 40 © 2009 ISE Corporation コンソールモードによる IBM Data Movement Tool の実行 • テーブル一覧の編集 • 行単位で必要な表のみ残すよう編集 $ cat orcl.tables "TUKI11G"."ACCOUNTS":SELECT * FROM "TUKI11G"."ACCOUNTS" "TUKI11G"."CUSTOMERS":SELECT * FROM "TUKI11G"."CUSTOMERS" "TUKI11G"."DEPARTMENTS":SELECT * FROM "TUKI11G"."DEPARTMENTS" • DDL抽出の再開 • テーブル一覧の編集完了後に、保留していたツールの実行を再開する • このタイミングでDDL、データファイルの抽出が実行される • IBMExtract.propertiesも同時に出力される • DDL/データの投入 • 抽出完了後に、DDL/データの投入を実行するかを選択する • 抽出のみ実行の場合、このタイミングでQuitを選択する [2009-06-07 10.13.08.224] JAR file '/opt/ibm/db2/V9.7/java/db2jcc.jar' found [2009-06-07 10.13.08.225] JAR file '/opt/ibm/db2/V9.7/java/db2jcc_license_cu.jar' found Do you want to go ahead and deploy data (Yes) : 1 Quit Program : 2 Enter a number (Default=1) : 2 41 © 2009 ISE Corporation ブランク・ ブランク・ページ 42 © 2009 ISE Corporation IBM Optim Optim Development Development Studio Studio IBM を利用したオブジェクトの移行 を利用したオブジェクトの移行 43 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • 下記の 下記のオブジェクト作成 オブジェクト作成は 作成は事前に 事前に実施する 実施する • レジストリー変数の設定 • データベースの作成 • バッファープール、表スペースの作成 44 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • Oracle/DB2それぞれに それぞれに接続 それぞれに接続する 接続する • 接続状態では、それぞれのデータソースでオブジェクトツリーが参照可能 • DB2側はLABDB、Oracle側はorclに接続している 45 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • ACCOUNTS表 表を移動する 移動する場合 する場合 • OracleデータソースからACCOUNTS表を選択し、“Copy”を選ぶ 46 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • DB2データソース上で移行先のスキーマを作成する 47 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • DB2データソース上で、作成対象のスキーマにテーブルを “Paste”する 48 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • 移動時のオプションを設定する • DDLのみを移行する場合“Copy database objects only”を選択 • 少量データの場合、データを同時にコピーすることも可能(SELECT/INSERTに よるコピーが行われる) • オブジェクトの依存関係がある場合、“Copy dependent database objects” を選択 49 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • データ・タイプのマッピング • ODSにはデータ・タイプのマッピングルールがデフォルトで設定されている。 • 元となるデータタイプごとにマッピング先のデータタイプを設定できる。 50 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • 生成されたDDLを確認後、Finishボタンを押してオブジェクトを 作成する • 以下の例では、ACCOUNTSテーブルと依存関係にある DEPARTMENTS テーブルも作成されている 51 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • 実行結果を確認する (1/2) • 画面右下に「SQL Result」が表示される Failed/Warningがある場合、 Statusパネルから理由を確認 52 © 2009 ISE Corporation IBM Optim Development Studio によるオブジェクトの移動 • 実行結果を確認する (2/2) • DB2データソース上に、2つのテーブルが追加されている 53 © 2009 ISE Corporation ブランク・ ブランク・ページ 54 © 2009 ISE Corporation ハンズオンシナリオのご紹介 • 2日目 日目の 日目のハンズオンシナリオは ハンズオンシナリオは下記の 下記の移行タスク 移行タスクを タスクを中心に 中心に実施します 実施します • データベース、表、索引等のデータベース・オブジェクトを作成 (LAB4) • テーブルにデータをロード (LAB4) • PL/SQLのオブジェクトを作成 (LAB5) • JavaプログラムのOracleからDB2への移行 (LAB6) Virtual Machine (Suse Linux) IBM Data Movement Tool 抽出済みのDDL オブジェクトを作成 データをロード Oracle Database 55 DB2 9.7 LABDB Java プログラム プログラムを変更 © 2009 ISE Corporation Let’s go to Lab4-5!! 56 © 2009 ISE Corporation