...

DB2 V9.7新機能ワークショップ Oracle互換 (後半)

by user

on
Category: Documents
71

views

Report

Comments

Transcript

DB2 V9.7新機能ワークショップ Oracle互換 (後半)
DB2 V9.7新機能ワークショップ
<第1.00版 2009年 7月>
Oracle互換 (後半)
本書に含まれている情報は、正式な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での保持も可能
一律NUMBERでの保持も可能
一律NUMBERでの保持も可能
NUMBER
32-38,0
DECFLOAT
34桁以上では桁落ちが発生。
文字列としての保持を検討
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桁以上では桁落ちが発生。
文字列としての保持を検討
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 GAレベルでの主要な非互換/未サポート機能
Function / procedure定義のネスト
は不可(複数階層の定義)
一階層のパッケージ等に移行。名前
の衝突に注意する。
Function はOUT / IN OUTパラメー
ターをもてない
Procedureに変更し、戻り値をパラ
メーターとして受け渡すよう変更
独立したType宣言は未サポート
パッケージ内部で宣言し、タイプの参
照にパッケージの接頭辞を追加
マルチ・アクションのトリガーは未サ
ポート
複数のシングル・アクションのトリガー
に分割する
DB2では、UNIQUE INDEXは複数
のNULL値を許容しない
カラムのNOT NULL化や非UNIQUE
INDEXへの定義変更を検討
11
© 2009 ISE Corporation
ブランク・
ブランク・ページ
12
© 2009 ISE Corporation
移行をサポートするツール
移行をサポートするツール
13
© 2009 ISE Corporation
移行をサポートするツール
• 移行の
移行の容易性を
容易性をアセスする
アセスする
• MEET DB2
IBM Confidential
• データオブジェクトを
データオブジェクトを移行する
移行する
• IBM Data Movement Tool
• IBM Optim Development Studio
• データを
データを移行する
移行する
• IBM Data Movement Tool
• アプリケーションを
アプリケーションを移行する
移行する
• IBM Optim Development Studio
• スクリプトの
スクリプトの移行を
移行を容易にする
容易にする
• CLP Plus
14
© 2009 ISE Corporation
Migration Enablement Evaluation Tool for DB2 (MEET DB2)
IBM Confidential
• Oracleから
からDB2へ
へ各種オブジェクト
から
各種オブジェクトを
オブジェクトを移行するときの
移行するときの互換性
するときの互換性を
互換性をアセス
• 主としてPL/SQLを含むオブジェクトの互換性を評価
• Package, Procedure, Function, Trigger, View等が対象
• 使用方法
• 起動する際、定期的にIntranet ID/Passwordを要求される
• 認証時はIBM Intranetへの接続が必要(一旦認証すると14日間有効)
• DDLを含むテキストファイルを読み込んで評価
• 結果はHTMLによるレポートとして出力される
• 前提
• プラットフォームはWindowsのみ
• JDK 1.6以降
• 1.5GB以上のメモリーを搭載したPCを推奨
15
© 2009 ISE Corporation
Migration Enablement Evaluation Tool for DB2 (MEET DB2)
IBM Confidential
• 使用にあたっての
使用にあたっての制約事項
にあたっての制約事項
• 現時点では、IBM外(ISV/BP)への提供は禁止
• IBMのエンジニアが移行プロジェクトで使用することを想定
• 出力されたレポートをお客様へ提示することは可
• ただし、ハードコピー、ソフトコピーともお客様への提供は禁止
• 入手方法
• IBM Intranet Siteよりダウンロード可能
• http://sockeye-ubuntu.torolab.ibm.com/releases/beta/
• 現時点ではBeta版のサイトなので、今後変更の可能性あり
16
© 2009 ISE Corporation
MEET DB2 - GUI Window
IBM Confidential
• ディレクトリー中
を使用して
ディレクトリー中のmeet.batを
使用して起動
して起動
• 起動に失敗する場合、meet.bat中の「-Xmx」オプションを変更
• 2009/6/27時点の最新版では-Xmx1300MBが規定値
• PCで使用可能なメモリー量に会わせて変更
17
© 2009 ISE Corporation
MEET DB2 - Reports
IBM Confidential
18
© 2009 ISE Corporation
MEET DB2 - Reports
IBM Confidential
19
© 2009 ISE Corporation
MEET DB2 - knowledge base
IBM Confidential
• MEET Toolの
のパッケージに
パッケージに既知の
既知の非互換情報が
非互換情報が含まれる
• HTML形式で提供
• ファイル名「knowledgebase.html」
20
© 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)
21
© 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/
• ツールの詳細な使用方法の解説もあり
22
© 2009 ISE Corporation
IBM Data Movement Tool
• GUI画面
画面
23
© 2009 ISE Corporation
ブランク・
ブランク・ページ
24
© 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の移行及び、デバッグ機能を提供
25
© 2009 ISE Corporation
IBM Optim Development Studio
26
© 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等
27
© 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>
28
© 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
データベース接続情報
ホスト名 = localhost
データベース・サーバー = DB2/NT SQL09070
SQL 許可 ID = db2admin
ローカル・データベース別名 = TESTDB
ポート = 50000
login.sqlでdefineした
変数を指定
CLPPlus: バージョン 1.0
Copyright (c) 2009, IBM CORPORATION. All rights reserved.
SQL>
29
© 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
置換変数
実行前に置き
換えができる
元のステートメント::
for cur1 in (SELECT * FROM dept WHERE deptno = &depno
ステートメント::
&depno)
depno)
置換された
置換された新規
された新規ステートメント
新規ステートメント::
ステートメント:: for cur1 in (SELECT * FROM dept WHERE deptno = 10)
========================
DEPTNO:10
DNAME :ACCOUNTING
LOC
:NEW YORK
DB250000I: コマンドは正常に完了しました。
30
© 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
DB2ADMIN
SALGRADE
SQL> set linesize 150
5
1
TABLE_SCHEMA
-------------------------------------------------TABLE_NAME
NUM_ROWS
-------------------------------------------------- -------------------BLOCKS
-------------------DB2ADMIN
BONUS
0
0
DB2ADMIN
EMP
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
1*
SQL>
100234
linesize 150
table_schema
table_name
num_rows
blocks
6790032
set
col
format a30
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
31
デフォルトでは80バイトで行
が折り返される
SQL> col table_schema format a30
SQL> col table_name format a30
SQL> col num_rows
SQL> col blocks
format 999,999,999
format 999,999,999
SQL> l
1* select
table_schema,table_name,num_rows,blocks from
user_tables
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;
DB250000I: コマンドは正常に完了しました。
デリミタ形式でファイルにExportされている
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
・・・省略・・・
32
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/データの移行
33
© 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
34
© 2009 ISE Corporation
データベースを作成
• データベース作成時
データベース作成時の
作成時の一般的な
一般的な推奨
• 自動ストレージを活用しストレージ管理をシンプルに
• 表スペース単位の初期サイズ、上限設定が不要
• ストレージ・パス単位での容量管理のみ実施
• 32KBページサイズの使用
• Oracleと異なり、DB2は各レコードが1ページに収まる必要がある。移行をシンプルにする場
合、なるべく大きなページサイズを使用する
• 高トランザクションのOLTP環境では、4KB等のより小さなページサイズも考慮
• 複数ページサイズを使用する場合、ページサイズごとにバッファープールが必要
• STMMを活用し、各バッファープールのサイズを最適化(デフォルト)
• LOBを格納する表スペースは分割する
• インライン格納されていないLOBはバッファープールに載らないため、データ部と表スペース
を分割し、ファイル・キャッシュの使用を有効化することとを推奨
• CREATE TABLESPACEに"FILE SYSTEM CACHING"のオプションを付加
35
© 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
36
© 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は、システムユーザーを使用することを推奨
37
© 2009 ISE Corporation
IBM Data Movement Toolの起動
• データベースへの接続
• ボタン1,2を押下し、ソース/ターゲットDBへ接続する
38
1
2
3
4
© 2009 ISE Corporation
IBM Data Movement ToolによるDDL/データの抽出
• DDL/データ
データの
データの抽出
• 出力先ディレクトリーを設定
• 抽出の対象を選択
• 抽出対象のデータが少量の場合、リモートでの抽出も可能
• 大量データの抽出は、DDLの抽出とは独立してソースDBサーバ上で行うこ
とを推奨
• 「Extract DDL/Data」ボタンを押し、抽出を実行
• (前ページチャートの「3」)
• 抽出の結果を確認
39
© 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)
40
© 2009 ISE Corporation
Note:
• IBM Data Movement Toolが
が生成する
生成する設定
する設定ファイル
設定ファイル、
ファイル、スクリプト
ファイル名
ファイル名
41
内容
IBMExtract.properties
IBM Data Movement Toolの
のプロパティファイル。
プロパティファイル。データベースへ
データベースへ
の接続情報や
接続情報や、前回実行時の
前回実行時のオプションを
オプションを保持する
保持する。
する。
geninput
ソースDBに
ファイルを
ソース に接続し
接続し、<SID>.tableファイル
ファイルを生成する
生成する
<SID>.table
移行対象の
移行対象のテーブル一覧
テーブル一覧。
一覧。ソース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
42
© 2009 ISE Corporation
IBM Data Movement Tool
• 「Interactive deploy mode」
」によるオブジェクト
によるオブジェクトの
オブジェクトの作成
• GUI画面からのオブジェクト作成も可能
• "Interactive Deploy" タブから“Refresh Objects to be deploy“を選択
• 抽出したDDLを読み込み、オブジェクトのツリーが表示される。
• 個別に対象オブジェクトを選択して作成可能
• 一括作成も可能
43
© 2009 ISE Corporation
コンソールモードによる IBM Data Movement Tool の実行
• コマンドラインからの
コマンドラインからのツール
からのツール実行
ツール実行
• IBM Data Movement Toolはコマンドライン環境からも実行可能
• テキストによる対話式のメニューから実行する
44
© 2009 ISE Corporation
コンソールモードによる IBM Data Movement Tool の実行
• コンソール・
コンソール・モードでの
モードでの起動
での起動
• TELNET/SSH等のコマンドライン環境から起動した場合、自動的にコ
ンソール・モードで起動
• "-console" オプションを負荷することで、強制的にコンソール・モードを選択
することも可能
• コンソール・
コンソール・モードでの
モードでの抽出
での抽出の
抽出のステップ
• コンソール・モードでの起動
• 動作設定、接続情報の入力
• テーブル一覧の生成
• テーブル一覧の編集(オプション)
• ソースDBからの抽出の実行
• ターゲットDBへの投入
45
© 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
46
© 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
47
© 2009 ISE Corporation
ブランク・
ブランク・ページ
48
© 2009 ISE Corporation
IBM Optim
Optim Development
Development Studio
Studio
IBM
を利用したオブジェクトの移行
を利用したオブジェクトの移行
49
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• 下記の
下記のオブジェクト作成
オブジェクト作成は
作成は事前に
事前に実施する
実施する
• レジストリー変数の設定
• データベースの作成
• バッファープール、表スペースの作成
50
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• Oracle/DB2それぞれに
それぞれに接続
それぞれに接続する
接続する
• 接続状態では、それぞれのデータソースでオブジェクトツリーが参照可能
• DB2側はLABDB、Oracle側はorclに接続している
51
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• ACCOUNTS表
表を移動する
移動する場合
する場合
• OracleデータソースからACCOUNTS表を選択し、“Copy”を選ぶ
52
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• DB2データソース上で移行先のスキーマを作成する
53
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• DB2データソース上で、作成対象のスキーマにテーブルを
“Paste”する
54
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• 移動時のオプションを設定する
• DDLのみを移行する場合“Copy database objects only”を選択
• 少量データの場合、データを同時にコピーすることも可能(SELECT/INSERTに
よるコピーが行われる)
• オブジェクトの依存関係がある場合、“Copy dependent database objects” を選択
55
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• データ・タイプのマッピング
• ODSにはデータ・タイプのマッピングルールがデフォルトで設定されている。
• 元となるデータタイプごとにマッピング先のデータタイプを設定できる。
56
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• 生成されたDDLを確認後、Finishボタンを押してオブジェクトを
作成する
• 以下の例では、ACCOUNTSテーブルと依存関係にある
DEPARTMENTS テーブルも作成されている
57
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• 実行結果を確認する (1/2)
• 画面右下に「SQL Result」が表示される
Failed/Warningがある場合、
Statusパネルから理由を確認
58
© 2009 ISE Corporation
IBM Optim Development Studio によるオブジェクトの移動
• 実行結果を確認する (2/2)
• DB2データソース上に、2つのテーブルが追加されている
59
© 2009 ISE Corporation
ブランク・
ブランク・ページ
60
© 2009 ISE Corporation
Fly UP