DB2 9.5移行手順ガイド <第1.00版 2009年 3月> 1 ©日本IBMシステムズ・エンジニアリング(株) Information Management部
by user
Comments
Transcript
DB2 9.5移行手順ガイド <第1.00版 2009年 3月> 1 ©日本IBMシステムズ・エンジニアリング(株) Information Management部
DB2 9.5移行手順ガイド <第1.00版 2009年 3月> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 1 本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Systems Engineering Co., Ltd. 2009 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 2 目次 1. はじめに 1-1. 移行に関連する情報のご紹介 1-2. サポートするプラットフォーム、前提 2. 移行シナリオの決定 2-1. DB2 9.5への移行作業フロー 2-2. 移行シナリオの比較 3. 移行作業 3-1. DB2 9.5のインストール 3-2. 移行作業前後のタスク 3-2-1. シナリオに共通して必要な移行前のタスク 3-2-2. シナリオに共通して必要な移行後のタスク 3-2-3. 環境によって必要となるタスク 3-3. 移行作業 3-3-1. 同一サーバ、同一インスタンスでの移行手順 3-3-2. 新規インスタンスへの移行手順(BACKUP/RESTOREを使用) 3-3-3. 新規インスタンスへの移行手順(データ移行ユーティリティを使用) 4. フォールバックのシナリオについて 5. その他 5-1. DB2クライアントの移行 5-2. オンライン・バックアップ・イメージを利用した移行シナリオ ©日本IBMシステムズ・エンジニアリング(株) Information Management部 3 1. はじめに この資料の位置づけ DB2 V8.2以前のバージョンから、DB2 9.5 への移行手順を、いくつ かのシナリオを想定して記述したものです。 既存システム上のDB2を移行する際、手順作成のガイドとして参照 してください。 この資料で想定する環境について エディションとしては、ESE(V7以前の場合EE)を想定します。 プラットフォームとしては、AIX/Windowsをベースとして作成します。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 4 1-1. 移行に関連する情報のご紹介 DB2 V8からDB2 9.5への移行ガイド 『DB2 V8からV9.5へうまく移行するためのガイド』をご参照ください。 DB2の移行を検討する際の考慮点を集めた重要なガイドなので、移行計画を検討す る際は、必ず参照するようにしてください。 DB2 マイグレーション・ポータル 英語サイト – http://www.ibm.com/support/docview.wss?fdoc=imdb2luw&rs=71&uid=swg21200005 その他の移行関連情報 DB2 9新機能WS資料「導入と移行」 インストールに関する新機能、変更点が記載されています。 – http://www.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/005E6AB2 DB2 9.5 for LUW新機能WS資料「第1章 V9.5概要、導入と移行」 インストールに関する変更点、V9.5への移行について記載されています。 – http://www.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/001BED48 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 5 1-2. サポートするプラットフォーム、前提 サポートプラットフォームの変更 DB2 9.5で32bitインスタンスをサポートするのは下記のみ 32 ビットのWindows (x86 と X64) (DB2 バージョン 9.5 32 ビット製品を使用) 32 ビットのLinux (x86) – DB2 Enterprise Server Edition for Linux (x86-32 ハードウェア) では、サポートされない(テストおよび開発の みサポート) 上記以外のプラットフォームでは64bitインスタンスのみ作成可能 UNIX(64 ビットのAIX、HP-UX、Solaris のカーネル) Linux(64 ビットのLinux のカーネル (x86-64、POWER、zSeries)) 64 ビットのWindows (X64) – 同一サーバー上で、32 ビットと 64 ビット・バージョンの共存はサポートしない。 64bitインスタンスの32bitサポート ローカルの32bitアプリケーションと32bitサーバー・サイド・ルーチンの実行をサポート Linux IA64およびLinux zSeriesは、32bitライブラリーの提供なし 上記内容の最新情報は、下記のInformation Centerで確認 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.qb.migration.do c/doc/c0022266.html http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.apdv .embed.doc/doc/c0020913.html http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.qb.s erver.doc/doc/r0023732.html 前提ソフトウェアについて 下記のURLで前提ソフトウェアを公開 http://www.ibm.com/software/data/db2/udb/sysreqs.html ©日本IBMシステムズ・エンジニアリング(株) Information Management部 6 2-1. DB2 9.5への移行作業フロー 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリストア (restore db) 3-3-3章 移行データの 投入(LOADコマンド) 3-2-2章 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 7 解説:DB2 9.5への移行作業フロー 移行作業のフローについて 採用する移行シナリオによって、移行のために必要となる手順は異なります。採用 される移行シナリオに応じて必要な作業を確認し、移行計画を立案してください。 上記のスライドでは、各シナリオ毎の大まかな作業の単位を表しています。 このガイドの構成について このガイドでは、上記スライドの作業単位に対応して、各種作業の詳細を記述いた します。 移行シナリオに応じて、必要な部分を抜粋して参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 8 2-2. 移行シナリオの決定 概要 ケース1 ケース2 ケース3 同一インスタンス上で、 インスタンス/DBの移行を実施 同一サーバ上にDB2 V9.5新規インス タンスを作成し、移行を実施 新規サーバにDB V9.5新規インスタ ンスを作成し、移行を実施 DBサーバ DBサーバ DB2V8 => DB2 V9.5 db2imigr migrate DB 移行元DB2 Backup or Export DBサーバ(旧) DB2V9.5 Restore or Load 移行元DB2 Backup or Export 移行先サーバー 移行元と同一 移行元と同一 新規マシン 移行先インスタンス 移行元と同一 新規インスタンス 新規インスタンス 移行に使用する ツール db2imigr/migrate db backup/restore or Export/Load backup/restore or Export/Load 備考 移行に必要なDISK領域が最小 V8からの移行時のみ選択可能 フォールバック時にインスタンスの 再作成および、DBリストアが必須 DB2 V7以前からの移行が可能 (Export/Loadを使用) 新旧DB分のDISK領域が必要 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 移行前インスタンス/DBの温存が可能 (Windowsの場合、V8のみ) 9 DBサーバ(新) DB2V9.5 Restore or Load 新規マシンに移行する際に使用 解説:移行シナリオの決定 移行シナリオの決定について どのような移行シナリオを選定するべきかは、 HWの入れ替えを伴うかどうか。 V7以前からの移行か、V8からの移行か。 データベースのマイグレーション機能を使用するかどうか。 等で変わってきます。 たとえば、 「DB2 V7.2からの移行で、ハードウェアの移行を伴う。」 場合はケース3のデータ移動ユーティリティ(Export/LOAD)を使用するシナリオを 選択することになります。 プロジェクトの状況を考慮して最適な移行シナリオを選定してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 10 解説:移行シナリオの決定 BACKUP/RESTOREを使用した移行とデータ移動ユーティリティによる移行の比較 BACKUP/RESTOREによる移行と、データ移動ユーティリティによる移行を比較した場合、両者で最 も異なるのは、「データベース全体の移行処理を行うかどうか」です。 BACKUP/RESTOREを使用してデータベースの移行を行う場合、データベース全体に対して一括し た移行処理が実施できるため、オブジェクトの種類/数にかかわらず一定の手順で移行が可能です。 ただし、下記の条件では、BACKUP/RESTOREによる移行ができないため、データ移動ユーティリ ティを使用してください。 V7以前のDB2から、(V8を経由せず)直接移行を行う場合 WindowsからUNIX/Linux等、異なるプラットフォーム間での移行を行う場合。 移行方法によるメリット、デメリット メリット デメリット BACKUP/RESTOREを使用 オブジェクトの種類/数にかかわらず一定の手 順で移行が可能 V8からの移行しかサポートされない バックアップファイルは一括して取得する必要が あるため、一括して取得するDISK領域を確保で きない場合、移行手順の構築が難しい 移行の際、SMS->DMSの変更はできない データ移動ユーティリティを使用 V7以前からの直接移行が可能 異なるプラットフォーム間での移行が可能 表単位の移行なので、表スペースへの表の配 置等、物理設計が柔軟に見直し可能。 テーブル毎にExportするため、全データを一括 して抽出/保持するDISK領域がない場合でも移 行可能。 移行するオブジェクトを手動で作成する必要が ある。 オブジェクトの種類/数が多い場合に手順が煩 雑となる。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 11 解説:pureXMLフィーチャーを使用する場合 DB2 9から新機能として登場したpureXMLフィーチャーを使用するためには、 UNICODEデータベースが推奨されます。 V9.5ではXMLカラムはunicodeデータ ベース以外でも作成できますが、 unicodeデータベースが推奨されます。 そのため、移行対象のデータベースがUNICODE以外のコードページを使用していて、XML データタイプを含む表を追加したい場合、UNICODEデータベースに移行することを検討してく ださい。 データベースのコードページは、いったんデータベースを作成した後は変更できないため、 UNICODEデータベースを新規作成した上で、データ移動ユーティリティによる移行(3-3-3章) を実施してください。 UNICODEデータベースの作成について UNICODEデータベースの作成する場合、CREATE DATABASE時にCODESETパラメーターを UTF-8に設定します。 コマンド実行例 >db2 CREATE DATABASE <DB名称> USING CODESET UTF-8 TERRITORY JP COLLATE USING IDENTITY ©日本IBMシステムズ・エンジニアリング(株) Information Management部 12 3-1. DB2 9.5のインストール 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリストア (restore db) 3-3-3章 移行データの 投入(LOADコマンド) 3-2-2章 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 13 3-1. DB2 9.5のインストール インストールの変更点・注意事項 インストール方式の変更点 日本語パッケージの導入について DB2製品の複数パスへの導入について DB2 V8との共存について ライセンス登録について インストール手順 前提条件の確認 インストール方式の選定 インストールの実行 db2setupの場合 db2_installの場合(Windows以外) ©日本IBMシステムズ・エンジニアリング(株) Information Management部 14 3-1. インストールの変更点、注意事項1 インストール方式の変更点 V9.1から、OSネイティブのインストール・ツールはサポート外となりました。 SMIT/installp(AIX), rpm(Linux), pkgadd(Sun), sam or swinstall(HP)等 DB2提供のツールによるインストールを行う必要があります。 db2setup – JAVAプログラムによるGUIツール GUIツールのため、UNIX/LinuxではXサーバが必要 – インストールする機能の詳細な選択、ユーザー及びグループの作成、インスタンス の作成と構成が可能 db2_install (Windows以外) – スクリプトによる対話形式でのインストール(GUIが必要なし) – インストールする機能の選択や、ユーザー及びグループの作成、インスタンスの作 成/構成はできない。 – インストール・パス及び、インストールする製品の選択は可能 応答ファイルによるインストール – セットアップ設定、構成値を格納したファイルを元にサイレント・インストールが可能 手動インストール(非推奨) – tarファイルの手動解凍によるインストール ©日本IBMシステムズ・エンジニアリング(株) Information Management部 15 解説:インストール方式の変更点 インストール・ツールのサポート インストール方式 Windows LinuxおよびUNIX db2setup あり あり db2_install なし あり 応答ファイル あり あり なし あり 手動インストール (tarファイルの解凍) 参照先 DB2 Information Center:DB2のインストール方式 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.qb.server.doc/doc/c0008711.html ©日本IBMシステムズ・エンジニアリング(株) Information Management部 16 3-1. インストールの変更点、注意事項2 日本語メッセージの導入について V9.5では、DB2製品と日本語メッセージは同じCDメディアに格納されていま す。 National Language Pack(以下、NLPack)の導入は必要ありません。 Fix packについては、Windows以外のプラットフォームでは、NLPackは別に提供され ています。 参考 V9.1では、Windows以外のプラットフォームでは、DB2製品と日本語メッセージは別の CDメディアに格納されます。 – 日本語メッセージの表示のためにはNLPackの導入が必要です。 National Language Packの導入方法 [DB2製品と同時に導入する場合] db2setup/db2_install/応答ファイルのいずれでも使用可能です。 それぞれのオプションは「解説」を参照してください。 [すでに導入されているDB2製品に追加で導入する場合] db2_installスクリプトは使用できません。 db2setup/応答ファイルのどちらかを使用してください ©日本IBMシステムズ・エンジニアリング(株) Information Management部 17 解説:日本語メッセージの導入について 日本語メッセージを導入する場合 db2setupの場合 「インストールタイプ:カスタム」を選択し、 「インストールする言語の選択」で「日本語」を選択する。 db2_installの場合 「-L JP」キーワードで、日本語の導入を指定する。 応答ファイルによるインストールの場合 応答ファイル中の「LANG」キーワードにJPを指定する。 日本語メッセージが導入されたことを確認する方法(AIX) 日本語メッセージが導入されたことを確認するコマンドの実行例 [root /]# /opt/IBM/db2/V9.5_01/install/db2ls -q -b /opt/IBM/db2/V9.5_01 -a │grep Messages DB2_PRODUCT_MESSAGES_EN 9.5.0.0 0 Product Messages -English DB2_PRODUCT_MESSAGES_JP 9.5.0.0 0 Product Messages -Japanese 上記の例で指定したパラメーターの意味について –「-q 」 –「-b /opt/IBM/db2/V9.5_01」 –「-a」 べてリストする ©日本IBMシステムズ・エンジニアリング(株) Information Management部 :インストール済みのDB2製品およびフィーチャーをリストする :インストール先を指定 :可視のフィーチャーだけでなく、非表示のコンポーネントもす 18 3-1. インストールの変更点、注意事項3 DB2製品の複数パスへの導入について V9.1からは全てのプラットフォームで、同一サーバ上の複数のパスへの 導入が可能になりました。 これまで通り、1導入パスに対して複数インスタンスを作成可能。 なおかつ、同一サーバに複数のインストールが可能。 それに伴い、任意のパスへインストール可能となっています。 32bit版と64bit版のDB2製品コードは、同一サーバ上で共存することはで きません。 32bit版の製品コードが導入されているサーバへ、64bit版の製品コードを導入した 場合、32bit版の製品コードはアンインストールされ、インスタンスは64bit版へ移行 されます。 DB2 V8との共存について WindowsプラットフォームでもDB2 9 および DB2 9.5とDB2 V8との共存が 可能になりました。 ただし、「デフォルトDB2コピー」は必ずV8になります。 UNIX/LinuxプラットフォームではDB2 V7/V8の時点から共存が可能です。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 19 解説:複数パスへの導入について DB2 V8との共存について 「DB2コピー」の概念及び、Windowsプラットフォームで複数パスへDB2を 導入する場合の詳細については、「DB2 9新機能W/S 導入と移行」を参 照してください。 – http://www.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/005E6AB2 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 20 3-1. インストールの変更点、注意事項4 ライセンスの登録について ライセンスファイルについて DB2 9.5では、ライセンスファイルは「Activation CD」と書かれた独立したCDメ ディアで提供されます。 上記CD内の「<Mount Point>/db2/license/」にある、「db2xxx.lic」がライセンス ファイルです。 ライセンス登録の方法 db2licmを使用したライセンスファイル登録コマンド >db2licm –a <ライセンスファイルの格納パス>/db2xxx.lic DB2 9.5では、導入パスごとにライセンス情報が独立しています。 複数のパスにDB2製品を導入した場合、それぞれの導入パスごとにライセンス 登録のオペレーションが必要です。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 21 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 22 3-1. インストール作業の流れ 前提条件の確認 インストールイメージを導入先に展開 インストールの実行 ライセンス情報の登録 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 23 3-1. インストール:前提条件の確認 前提条件の確認 インストールイメージを導入先に展開 インストールの実行 ライセンス情報の登録 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 24 3-1. インストール:前提条件の確認 下記のURLよりDB2 9.5の前提条件を確認 http://www.ibm.com/software/data/db2/udb/sysreqs.html 現行OSのfixレベルを取得し、前提を満たしているか確認 AIXの場合 「oslevel –s」もしくは、「-r」を使用(-sオプションではSPレベルまで表示される。) APAR導入の有無を個別に確認する場合、 >instfix –i | grep <APAR番号> Windowsの場合 「ファイル名を指定して実行」より「winver」コマンドを実行して、バージョンを確認 インストール先サーバが前提を満たさない場合、Fixの追加適用等を行う。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 25 解説:前提条件の確認 (参考)2009年03月12日時点での前提条件 下記はあくまで参考情報です。インストール実施の際に必ず前ページのURLを 確認してください。 AIX5.3の場合 AIX 5.3 Technology Level (TL) 6 および Service Pack (SP) 2 および APAR IZ03063 64-bitカーネルが稼動していること xlC.rte 9.0.0.1 および xlC.aix50.rte 9.0.0.1 以降が導入されていること AIX6.1の場合 64-bitカーネルが稼動していること xlC.rte 9.0.0.1 および xlC.aix61.rte 9.0.0.1 以降が導入されていること Windows XP Professionalの場合 Windows XP Service Pack 2 以降 IBM Data Server Provider for .NET クライアント・アプリケーションと CLR サーバー・サイド・プロシージャーには .NET 1.1 SP1 または .NET 2.0 フレームワーク・ランタイムが必要 Windows2003の場合 Service Pack 1 以降 IBM Data Server Provider for .NET クライアント・アプリケーションと CLR サーバー・サイド・プロシージャーには .NET 1.1 SP1 または .NET 2.0 フレームワーク・ランタイムが必要 AIX用fixのダウンロードサイト http://www.ibm.com/support/fixcentral/main/System+p/AIX ©日本IBMシステムズ・エンジニアリング(株) Information Management部 26 解説:前提条件の確認(つづき) AIXでの動作の確認方法について AIXの場合、カーネルが32bit、64bitのどちらで稼働しているかを確認するために はbootinfoコマンドを使用してください。 bootinfoコマンドの使用方法 – >bootinfo –K コマンド実行例 [root /]# bootinfo -K 64 AIXでのC++ Runtimeレベルの確認については、lslppコマンドもしくはSMITを使 用してください。 lslppコマンドの使用方法 – >lslpp -L│grep "xlC.rte" コマンド実行例 [root /] # lslpp -L│grep "xlC.rte" xlC.rte ©日本IBMシステムズ・エンジニアリング(株) Information Management部 8.0.0.4 27 C F C Set ++ Runtime ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 28 3-1. インストール:イメージの展開 必要に応じてインストールイメージの展開を実施する ダウンロードサイトで提供されているDB2 9.5は、アーカイブされた状態で す。 AIX/Linuxの場合はtarコマンドによる展開、Windowsの場合は自己展開 ファイルの起動による展開を行う必要があります。 下記の場合はこの作業は必要ありません 製品CDから直接インストールを行う場合 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 29 解説:イメージの展開 AIXの場合 > ls -l total 1563456 -rw-r----1 root system 800481280 Mar 06 15:12 DB2_ESE_V95_AIX.tar > mkdir ese > cd ese > tar -xvf ../DB2_ESE_V95_AIX.tar 製品コード用にディレクトリを作成 x . して展開する。 x ./db2/aix/bin/db2gpinf, 27503 バイト, 54 メディア・ブロック。 <中略> x ./db2_install, 5090 バイト, 10 メディア・ブロック。 > cd .. > ls -l total 1563456 -rw-r----1 root system 800481280 Mar 06 15:12 DB2_ESE_V95_AIX.tar drwxr-xr-x 6 root system 4096 Mar 06 17:40 ese ©日本IBMシステムズ・エンジニアリング(株) Information Management部 30 3-1. インストール:インストールの実行 前提条件の確認 インストールイメージを導入先に展開 インストールの実行 ライセンス情報の登録 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 31 3-1. インストール:インストールの実行 この節では、下記の2通りのインストール方法について記述します。 db2setupを使用した、Java GUIによるインストール Windowsプラットフォームでの実行例 db2_installを使用したCUIによるインストール(UNIX/Linuxのみ) AIXプラットフォームでの実行例 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 32 解説:インストールの実行 db2setup 解凍したディレクトリ配下のdb2setupを起動 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 33 解説:インストールの実行 db2setup 「製品のインストール」からセットアップ・ウィザードを起動 DB2COPY1 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 34 解説:インストールの実行 db2setup 「使用許諾契約」への同意を選択し、インストールタイプを選択する。 ここでは「カスタム」インストールを選択する。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 35 解説:インストールの実行 db2setup 応答ファイルを作成するかどうかを選択し、「インストールする機能の 選択」へ進む。 ここで、インストール・フォルダを指定することも可能。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 36 解説:インストールの実行 db2setup インストールする言語を選択する。 日本語メッセージの表示が必要な場合、「日本語」が選択されている ことを確認する。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 37 解説:インストールの実行 db2setup DB2の導入パスを区別するための「DB2コピー名」を入力します。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 38 解説:インストールの実行 db2setup DB2インスタンスの作成有無と、作成するインスタンスの構成を設定します。 ポート番号、サービス名等が 設定可能 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 39 解説:インストールの実行 db2setup DASで使用するユーザー名、パスワードを入力します。 「同じユーザー名とパスワードを残りのDB2サービスで使用する」にチェックを入れた 場合、後続のプロセスで作成するインスタンスオーナー等も同じユーザーで作成され ます。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 40 解説:インストールの実行 db2setup その他の設定を行い、「ファイルコピーの開始」で「インストール」を選択するとファイル のコピーが開始されます。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 41 解説:インストールの実行 db2setup セットアップの正常終了を確認し、「完了」を選択する。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 42 解説:インストールの実行 db2setup スタートメニューから「コマンドウインドウ」を起動する。 db2levelコマンドを実行し、DB2 9.5が正常に導入できたことを確認する。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 43 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 44 解説:インストールの実行 db2_install db2_installコマンドについて UNIXおよびLinuxで提供されており、telnet等のCUIからDB2のインストールが可能 コマンド解説書 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0023669.html ESEを導入する際の、実行コマンドの例 db2_install -b /opt/IBM/db2/V9.5_01 -p ESE -L JP 上記の例で指定したパラメータの意味について – – – 「-b /opt/IBM/db2/V9.5_01」:インストール先を指定 「-p ESE」 :インストールするDB2製品を指定(例ではESE) 「-L JP」 :日本語パッケージの導入を指定 考慮点 db2_installを使用する場合、導入するコンポーネントの選択ができません。 – – 応答ファイル使用時の、「INSTALL_TYPE=COMPLETE」オプションに相当します。 そのため、db2setup使用時にはデフォルトでは選択されないコンポーネントも含めて、インストール・イメージにあ る全てのコンポーネントが導入されます。 db2setupではオプションだが、db2_installでは導入されるオプション (下記のコンポーネントが導入されることによる弊害は、とくにありません) – Infomix データ・ソース・サポート – コントロール・サーバー – 等 CUIからの導入を行い、かつ導入するコンポーネントを選択したい場合は、応答ファイルによる導入を 選択してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 45 解説:インストールの実行 db2_install > ls -l total 1563456 -rw-r---1 root system 800481280 Mar 06 15:12 drwxr-xrx 6 root system 4096 Mar 06 17:40 > cd ese > ls -l total 120 drwxr-xrx 6 daemon staff 4096 Oct 04 2007 -r-xr-xrx 1 bin bin 4700 Oct 04 2007 -r-xr-xrx 1 bin bin 4570 Oct 04 2007 -r-xr-xrx 1 bin bin 4560 Oct 04 2007 -r-xr-xrx 1 bin bin 4552 Oct 04 2007 drwxr-xrx 16 bin bin 4096 Oct 04 2007 -r-xr-xrx 1 bin bin 4588 Oct 04 2007 drwxr-xrx 5 root system 256 Oct 04 2007 drwxr-xrx 15 bin bin 4096 Oct 04 2007 -r--r--r1 bin bin 1503 Oct 04 2007 -r--r--r1 bin bin 678 Oct 04 2007 > ./db2_install -b /opt/IBM/db2/V9.5_01 -p ESE -L JP DB2 インストールを初期化しています。 DB2_ESE_V95_AIX.tar ese db2 db2_deinstall db2_install db2prereqcheck db2setup doc installFixPack nlpack readmefirst readmefirst.htm readmefirst.txt 実行されるタスクの合計数: 45 実行される全タスクの合計見積もり時間: 1828 インストールのログは/tmp 配下に出力される。 タスク #1 を開始します。 説明: 非同期入出力を使用可狽ノする 見積もり時間 2 秒 タスク #1 が終了しました。 <中略> 正常に実行が完了しました。 詳しくは、"/tmp/db2_install.log.1241120" にある DB2 インストール・ログを参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 46 解説:インストールの実行 db2_install > ls /opt/IBM/db2/V9.5_01/ .metadata cfg Readme conv acs das adm dasfcn adsm db2xml bin default.env bnd doc dsdriver function gskit ha icc include include32 infopop install instance itma java lib32 lib64 license logs map misc msg profiles.reg samples security32 security64 tivready tools > /opt/IBM/db2/V9.5_01/install/db2ls インストール・パス レベル フィックスパック 特別なインストール番号 インストール日付 インス トーラー UID --------------------------------------------------------------------------------------------------/opt/IBM/db2/V9.5 9.5.0.0 0 Fri Mar 6 16:02:06 2009 JST 0 > /opt/IBM/db2/V9.5_01/install/db2ls -q -b /opt/IBM/db2/V9.5_01 「-q -b」オプションで、指定したインス トール・パスに導入されているコン ポーネントを確認可能 インストール・パス: /opt/IBM/db2/V9.5_01 フィーチャーの応答ファイル ID レベル フィックスパック フィーチャーの説明 --------------------------------------------------------------------------------------------------BASE_CLIENT 9.5.0.0 0 Base client support JAVA_SUPPORT 9.5.0.0 0 Java support SQL_PROCEDURES 9.5.0.0 0 SQL procedures BASE_DB2_ENGINE 9.5.0.0 0 Base server support JDK 9.5.0.0 0 IBM Software Development Kit (SDK) for Java(TM) CONNECT_SUPPORT 9.5.0.0 0 Connect support COMMUNICATION_SUPPORT_TCPIP 9.5.0.0 0 Communication support -TCP/IP REPL_CLIENT 9.5.0.0 0 Replication tools DB2_DATA_SOURCE_SUPPORT 9.5.0.0 0 DB2 data source support <以下略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 47 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 48 3-1. インストール:ライセンス情報の登録 前提条件の確認 インストールイメージを導入先に展開 インストールの実行 ライセンス情報の登録 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 49 3-1. ライセンス情報の登録 ライセンス情報の登録 ダウンロードで入手したDB2製品を使用して、ライセンス情報の登録を行う場合を想定して記述します。 (CDから登録する場合は、Activation CDの「/db2/license」を参照してください) ダウンロード用に提供されているActivation CDのイメージは、ZIP圧縮されています。サーバ上にunzip用 のツールが導入されていない場合は、PC上で展開した上でライセンスファイル(db2xxxx.lic)のみをサーバ に転送してください。 [db2inst2 /tmp/db2/lic/db2/license]$ ls –l *.lic -r--r--r- 1 db2inst2 staff 1316 Jun 23 06:46 db2ese_c.lic [db2inst2 /tmp/db2/lic/db2/license]$ db2licm -l Product name: "DB2 Enterprise Server Edition" License type: "ライセンス登録なし" Expiry date: "ライセンス登録なし" Product identifier: "db2ese" Version information: "9.5" <省略> [db2inst2 /tmp/db2/lic/db2/license]$ db2licm -a db2ese_c.lic LIC1402I ライセンスが正常に追加されました。 LIC1426I この製品は現在、この製品のライセンス・コピーに付属するご使用条件の指定に基づいてご使用いただく ことができます。 この製品をご使用いただくには、次のディレクトリーにある IBM ご使用条件への同意が必要です: "/opt/IBM/db2/V9.5_01/license/ja_JP.sjis" [db2inst2 /tmp/db2/lic/db2/license]$ db2licm -l Product name: "DB2 Enterprise Server Edition" License type: "CPU オプション" Expiry date: "永続" Product identifier: "db2ese" Version information: “9.5” <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 50 3-2. 移行作業前後のタスク 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリストア (restore db) 3-3-3章 移行データの 投入(LOADコマンド) 3-2-2章 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 51 3-2. 移行作業前後のタスク 3-2章では、移行作業の前後に必要なタスクを抜き出して記述します。 3-2-1. シナリオに共通して必要な移行前のタスク DB2 9以降でサポートされなくなった機能の確認と、必要に応じた変更 移行前の情報を保管する – – – 構成パラメーター等、各種構成情報 移行前のパフォーマンス情報、Explain情報 移行前バックアップ 移行時のエラー情報および診断情報収集の準備 テスト環境での移行 3-2-2. シナリオに共通して必要な移行後のタスク 移行の残作業 移行に伴う変更のチェック その他の作業 3-2-3. その他環境によって必要となるタスク Qレプリケーション環境の移行 MSCS環境の移行 HADR環境の移行 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 52 3-2-1.シナリオに共通して必要な移行前のタスク 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリストア (restore db) 3-3-3章 移行データの 投入(LOADコマンド) 3-2-2章 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 53 3-2-1.シナリオに共通して必要な移行前のタスク DB2 9.5への移行前に行うべき作業は下記のように分類されます。 移行シナリオにかかわらず、共通で行うべきタスク DB2 9以降でサポートされなくなった機能の確認と、必要に応じた変更 移行前の情報を保管する – – – 構成パラメーター等、各種構成情報 移行前のパフォーマンス情報、Explain情報 移行前バックアップ フォールバック計画の検討 移行時のエラー情報および診断情報収集の準備 テスト環境での移行 MIGRATE DBやBACKUP/RESTOREを使用する際のタスク(3-3-1を参照) DB2インスタンスの、32bitから64bitへの移行(MIGRATE DBコマンドを使用する場合) 移行処理のため、表スペース、ログファイルのサイズを一時的に拡張する MIGRATE処理の制約事項が該当しないことを確認 データベースが移行できる状態にあることの確認(db2ckmig) データ移動ユーティリティを使用して移行する際のタスク(3-3-3を参照) オブジェクトのDDLを現行データベースから取得 移行先データベースに、オブジェクトを事前作成 この章では、「移行シナリオにかかわらず共通で行うべきタスク」について記述 します。 シナリオ固有のタスクに関しては、各シナリオの章(3-3)を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 54 3-2-1. 移行シナリオに共通の作業 DB2 9以降でサポートされなくなった機能の確認と、必要に応じた変更 『DB2 V8からV9.5へうまく移行するためのガイド』の「X.特に注意が必要な事項」、「A.事前の 確認事項」および、「B.構成上の注意事項」を確認し、DB2 9およびDB29.5でサポートされな くなった機能、非推奨となった機能を使用していないことを確認します。 特に、下記の点には注意してください。 「ARRAY、BINARY、DECFLOAT、VARBINARY、XML」という名前のUDT(ユーザー定義タイプ)が存在する 場合に、データベースのMigrateが失敗します。 Linuxプラットフォームで、表スペース、ログスペースのコンテナとしてロー(文字)・デバイスを使用している場 合、ロー・ブロック・デバイスへ移行する必要があります。 移行前の情報を保管する 構成パラメーター等、各種構成情報 移行前の構成を保管するために、db2supportコマンドを実行してください。 db2supportコマンドは、DB2の構成に関する下記の情報を一括して取得します。 – – – – – – データベース・マネージャー構成パラメーター データベース構成パラメーター DB2レジストリー変数 システムカタログ表のEXPORTデータ(「-cl 0」オプション使用時) 統計情報等、オプティマイザーの動作に関する情報(「-cl 0」オプション使用時) その他DB2システムに関する各種情報 実行コマンド例 >db2support <出力パス> –d <DB名> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 55 -cl 0 3-2-1. 移行シナリオに共通の作業(続き) 移行前の情報を保管する(続き) 移行前のパフォーマンス情報、Explain情報 パフォーマンスが重要なアプリケーションに関しては、事前にパフォーマンス情報やアクセス パスの情報を取得し、移行後の環境と比較することをお勧めします。 db2batchを使用した、パフォーマンス情報の取得 – パフォーマンス情報としては、通常は業務で使用されているバッチ処理やオンライン処理の 処理時間が使用されますが、db2batchコマンドを使用してSQL単体でのベンチマーク情報を 事前に取得しておくことも可能です。 – 実行コマンド例 >db2batch -d <DB名> -f <SQL格納ファイル> -r <出力ファイル> -o r 10 p 5 e yes * 「r 10」 :出力ファイルに結果セットを何行出力するか。この例では10行出力する。 * 「p 5」 :出力するパフォーマンス情報のレベルを指定する。 「p 5」の場合、各種スナップショットまで出力する。 * 「e yes」:SQL実行と同時にEXPLAIN情報をEXPLAIN表へ書き込む Explain情報の取得 – 移行前の処理時間とともに、どのようなアクセスパスを使用していたかという情報は、DB処 理のパフォーマンスに関する問題判別を行う上で非常に重要です。可能な限り、移行前の Explain情報を取得するよう計画してください。 – 実行コマンドの例は、次ページの解説を参照してください。 移行前バックアップ DB2 9.5への移行を行った後に、移行前のバージョンへ逆移行する方法は提供されていませ ん。そのため、フォールバック計画の策定とともに、移行前バックアップをどの時点で取得し ておくかを計画に含めてください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 56 解説:Explain情報の取得 Explain情報取得の流れ EXPLAIN表を作成する EXPLAIN表が存在しない場合、下記のコマンドによりEXPLAIN表を作成してくださ い。 >db2 –tvf ‾/sqllib/misc/EXPLAIN.DDL *デフォルトではテーブルスペースの指定はされていません、 必要に応じてDDLを修正してください。 EXPLAIN情報の収集 静的SQLの場合は、バインド時にEXPLAINオプションを指定して収集します。 – > bind program1.bnd blocking all grant public explain all バインド時にEXPLAIN情報を収集していなかった場合、db2explnツールからEXPLAIN情報を収 集することも可能です。 動的SQLの場合は、SET CURRENT EXPLAIN MODEステートメントを実行後にSQL を実行します。 コマンドの実行例 – – – db2 set current explain mode explain db2 –tvf <SQL格納ファイル> db2exfmt –d <DB名> -1 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 57 解説:Explain情報の取得(続き) EXPLAIN情報取得の実行例 Explain Modeを「Explain(Explain情報のみ 取得して、SQLは実行しない)」に設定。 $ db2 connect to migdb Database Connection Information Database server SQL authorization ID Local database alias Explain情報を取得したいSQLを発行。 Explain Mode=Explainのため、実際には実 行されない。 = DB2/AIX64 8.2.6 = DB2INST2 = MIGDB $ db2 set current explain mode explain DB20000I The SQL command completed successfully. EXPLAIN_STATEMENT表を照会し、 $ db2 "select count(*) from t1 where COL4 < '2006-12-31-23.59.59.000000'" db2exfmtコマンドに与えるタイムスタン SQL0217W The statement was not executed as only Explain information requests プを取得。 are being processed. SQLSTATE=01604 $ db2 "select explain_time ,substr(statement_text,1,100) as statement from explain_statement where explain_level='O'" EXPLAIN_TIME STATEMENT -----------------------------------------------------------------------------------------2006-09-09-21.52.01.558277 select * from t1 where COL1 < 33000 2006-09-09-21.52.02.332014 select count(*) from t1 where COL4 < '200612-3123.59.59.000000' $ db2exfmt -d migdb o explain.out -s % -n % -# 1 -w 2006-09-09-21.52.02.332014 DB2 Universal Database Version 8.1, 5622-044 (c) Copyright IBM Corp. 1991, 2002 Licensed Material -Program Property of IBM IBM DATABASE 2 Explain Table Format Tool Connecting to the Database. Connect to Database Successful. Output is in explain.out. Executing Connect Reset --Connect Reset was Successful. $ head explain.out <省略> ******************** EXPLAIN INSTANCE ******************** DB2_VERSION: SOURCE_NAME: 08.02.5 SQLC2E07 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 58 db2exfmtコマンドにより、Explain情報の フォーマットを行い、explain.outに出力 3-2-1. 移行シナリオに共通の作業(続き) テスト環境での移行 本番環境での実移行を行う前に、必ずテスト環境での試行を実施してください。 テスト環境での試行を行うことにより、 移行手順に含まれる問題の発見 V9.1およびV9.5での変更点がもたらす影響を事前に評価 アプリケーションに移行後の環境を提供し、移行の影響をテスト 移行作業に要する時間見積もりの精密化 等、複数のメリットを得ることが可能です。 DB2 V9.1およびDB2 V9.5 と DB2 UDB V8 は同一サーバ上での共存が可能です。 独立したテスト環境を用意することが難しい場合でも、バージョン8が稼働する環境に事前にインストールし、 稼働環境の縮小版を構築することで、テスト環境の構築が可能です。 ただし、バージョン9.5の前提条件を満たすために、OSへのFix適用等が必要となる場合がありますので注意 してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 59 3-2-1. 移行シナリオに共通の作業(続き) 移行時のエラー情報および診断情報収集の準備 移行時にエラーが発生した場合に、エラーについてのより詳細な情報を取得するため、 診断エラーログ(db2diag.log)及び、管理通知ログ(<INSTANCE名>.nfy)の取得レベルを4 に設定することをお勧めします。 設定方法 診断エラーログ >db2 update dbm cfg using diaglevel <レベル> 管理通知ログ >db2 update dbm cfg using notifylevel <レベル> $ db2 get dbm cfg │grep LEVEL Diagnostic error capture level (DIAGLEVEL) = 3 Notify Level (NOTIFYLEVEL) = 3 $ db2 update dbm cfg using diaglevel 4 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. $ db2 update dbm cfg using notifylevel 4 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. $ db2 get dbm cfg │grep LEVEL Diagnostic error capture level (DIAGLEVEL) = 4 Notify Level (NOTIFYLEVEL) = 4 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 60 3-2-2. シナリオに共通して必要な移行後のタスク 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリスト ア(restore db) 3-3-3章 移行データの投 入(LOADコマンド) 3-2-2章 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 61 3-2-2. シナリオに共通して必要な移行後のタスク シナリオ毎の移行作業後に必要となるタスクには、下記があります。 すべてのタスクが必要とは限らないため、移行する環境に必要な作業を選定して実施してください。 移行の残作業 一時的に拡張したログ領域、カタログ表領域を縮小 データベースをアクティブにしてステータスを確認 移行後のアプリケーションのパフォーマンスを確認 タイプ1索引の移行 Explain表の移行 HADRの再開 パッケージの再バインド USEREXITの再作成もしくは移行 移行に伴う変更のチェック 変更、追加されたレジストリー変数、構成パラメータを確認 グローバル・プロファイル・レジストリー変数の移行 その他の作業 統計情報の更新 以前のバージョンのDB2をアンインストール 移行済みのルーチンより、PUBLICなEXECUTE特権を削除 LARGE DMS表スペースへの移行 移行後バックアップ ©日本IBMシステムズ・エンジニアリング(株) Information Management部 62 3-2-2. 移行後に必要なタスク:移行の残作業 ここでは、各種シナリオによる移行を行った後に残った作業について記述します。 一時的に拡張したログ領域、カタログ表領域を縮小 3-3-1章で、移行のための一時的なテーブルスペース領域、ログ領域の拡張をガイドしました。 移行のために一時的に拡張した領域がある場合は、移行の完了後に元のサイズに戻すことが可能 です。 SMSのシステムカタログ表スペース、一時表スペースの場合 – – SMSで作成している表スペースの場合は、ファイルシステムの容量を縮小してください。 AIX5.3で、JFS2を使用している場合はファイルシステムの縮小が可能です。 実行コマンド例 [root]# df -m │ grep /tmp/db2 /dev/lvtmpdb2 1000.00 232.21 77% 815 [root]# chfs -a size=-128M /tmp/db2 ファイルシステム・サイズが 1785856 に変更されました [root]# df -m │ grep /tmp/db2 /dev/lvtmpdb2 872.00 105.23 88% 815 ファイルシステムが縮小され ている。 2% /tmp/db2 4% /tmp/db2 DMSのシステムカタログ表スペース、一時表スペースの場合 – – – ALTER TABLESPACEコマンドのRESIZE/REDUCEオプションを使用して、コンテナのサイズを縮小することが可能 です。 ただし、RAW-DMSを使用している場合は、ALTER TABLESPACEコマンドでコンテナサイズを縮小させても、OS側 から見たコンテナ領域は開放されません。 実行コマンド例 >db2 "alter tablespace TS1 resize ( all 1000 m )" この例では、TS1を構成するすべてのコンテナを、それぞれ1000MBに縮小してます。 ただし、テーブルスペースのハイ・ウオーター・マークよりも小さくすることはできません。 ハイ・ウオーター・マークは、「LIST TABLESPACES SHOW DETAIL」コマンドで確認することができます。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 63 3-2-2. 移行後に必要なタスク:移行の残作業(続き) 一時的に拡張したログ領域、カタログ表領域を縮小(続き) ログ領域について – ログ領域を縮小する場合は、拡張した際と同様「update db cfg」コマンドを使用して、logfilsiz、 logprimary、および logsecond データベース構成パラメーターを移行前の値に再設定してください。 – 一次ログファイル数設定のコマンド例 >db2 update db cfg for migdb using logprimary 10 データベースをアクティブにしてステータスを確認 データベースの活動化を行い、正常に活動化されるかどうかを確認します。 >db2 activate db <DB名> [db2inst3]$ db2 activate db migdb DB20000I ACTIVATE DATABASE コマンドが正常に完了しました。 DB2 9から、データベース・ディレクトリー・ファイルが変更され、自己調整メモリーなどの新しい機 能のための構成情報が追加されました。このようなメモリー関連の変更点があるため、データベー スの活動化後に、バッファー・プールが問題なくアクティブになるかどうかを確認してください。 そのため、ACTIVATE DATABASEコマンドが成功したことを確認後に、管理通知ログを参照して下記のメッ セージが出力されていないことを確認してください。 ADM6073W 表スペース tsname (ID tsid) は、バッファー・プール ID ondiskBP を使用するように構成さ れていますが、このバッファー・プールは現在アクティブ化されていません。 一時的に、表スペースはバッ ファー・プール ID RTBP を使用します。非アクティブのバッファー・プールは、必要なメモリーが使用可能 であれば、次回データベースを始動したときに使用可能になるはずです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 64 3-2-2. 移行後に必要なタスク:移行の残作業(続き) 移行後のアプリケーションのパフォーマンスを確認 移行前にアプリケーションのパフォーマンスや、アクセスプランを取得していた場合、同様の方法 で移行後のパフォーマンス、アクセスプランを取得し、著しい変動が無いことを確認してください。 タイプ1索引のタイプ2索引への移行 DB2のバージョン7以前で索引を作成し、バージョン8でタイプ2索引への移行を行わなかった場合、 DB2 V9.5に移行した後もタイプ1索引のまま残されています。 DB2 V9からタイプ1索引は非推奨となっており、タイプ1索引を使用していると下記のような制約が あります。 タイプ2索引による、Next Key Lockingを最小限に抑える性能向上が利用できないこと。 索引キーの一部として 255 バイトを超える長さの列を使用できないこと。 バージョン8で拡張された、表をオンライン状態にしたままでのユーティリティ使用ができないこと。 タイプ1索引を持つ表にはXML型の列を追加できないこと。 タイプ2索引への移行には、REORGコマンドのCONVERTオプションを使用してください。 db2 REORG INDEXES ALL FOR TABLE employee CONVERT CONVERTオプションは、表のREORGと同時に実行することも可能です。(REORG TABLE xxxx CONVERT) データベース中にタイプ1索引が存在するかどうかは、INSPECTコマンドを使用して確認できます。 $ db2 INSPECT CHECK DATABASE RESULTS KEEP sample.log DB20000I INSPECT コマンドが正常に完了しました。 $ db2inspf $INSTHOME/sqllib/db2dump/sample.log sample.out $ cat sample.out ... Table phase start (ID Signed: 83, Unsigned: 83; Tablespace ID: 0) : Data phase start. Object: 83 Tablespace: 0 The index type is 2 for this table. DAT Object Summary: Total Pages 1 -Used Pages 0 -Free Space 70 % Data phase end. 65 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 この表の索引はタイプ2 3-2-2. 移行後に必要なタスク:移行の残作業(続き) Explain表の移行 バージョン8とバージョン9.5でEXPLAIN表の構成が異なるため、バージョン8で作成したEXPLAIN表 はバージョン9.5の構成へ移行する必要があります。 MIGRATE処理の中では、EXPLAIN表の移行は実施されません。 移行以前に取得したEXPLAIN情報を、移行後のExplain表に残しておく必要がある場合は、 db2exmigツールを使用して、EXPLAIN表の移行処理を行ってください。 移行以前のEXPLAIN情報を残す必要がない場合は、EXPLAIN表をすべて削除後に、バージョン9 で提供されているDDLを利用してEXPLAIN表を再作成することも可能です。 DDLの所在 <インスタンスHOME>/sqllib/misc/EXPLAIN.DDL db2exmigコマンドの使用例 $ db2exmig -d migdb e db2inst2 DB2 Universal Database Version 9.1, 5622-044 (c) Copyright IBM Corp. 1999, 2006 Licensed Material -Program Property of IBM IBM DATABASE 2 Explain Table Migration Tool <省略> Found all tables OK. Start migration. Old tables renamed...begin creating new explain tables. Creating Explain table DB2INST2.EXPLAIN_OBJECT Creating Explain table DB2INST2.EXPLAIN_PREDICATE Altering Explain table DB2INST2.EXPLAIN_STREAM Creating Explain table DB2INST2.ADVISE_INDEX begin insert into tables. Copying to Explain table EXPLAIN_OBJECT from EMOBJ_001158746990 <省略> Migration of the explain function to Version 09.01.0 format has succeeded. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 66 3-2-2.移行後に必要なタスク:移行の残作業(続き) HADRの再開 HADRを使用していた場合、移行直後はHADRが無効な状態になっています。3-2-3章の記述を元 に、HADRを再開してください。 パッケージの再バインド データベースの移行直後には、ユーザー・アプリケーションおよびルーチンに関するパッケージは すべて無効となっています。無効になったパッケージの再バインドを行う必要があります。 ドロップした表、ビュー、別名、索引、トリガー、参照制約、表チェック制約などのデータベース・オブ ジェクトに依存するパッケージも、無効な状態になります。UDF をドロップすると、パッケージは作 動不能な状態になります。 明示的な再バインドを実行しなかった場合、アプリケーションから初めてパッケージが呼ばれたタ イミングで、暗黙的に再バインドされます。実行中の再バインドによるオーバーヘッドを避けたい場 合には、移行プロセスの完了後に REBIND コマンドか db2rbind コマンドを実行して、無効なパッ ケージを再バインドしてください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 67 3-2-2.移行後に必要なタスク:移行の残作業(続き) パッケージの再バインド(続き) コマンドの実行例 >db2rbind <DB名> -l <ログファイル名> [all] * all オプションをつけて実行した場合、有効なパッケージも含めて、 すべてのパッケージの再バインドを行います。 $ db2rbind migdb -l db2rbind.log all データベース 'MIGDB' の再バインドが正常に行われました。 $ cat db2rbind.log Starting time .... Wed Sep 20 20:49:16 2006 Package Package <省略> Package Package 'NULLID.DB2LOOK' of database 'MIGDB' succeeded to rebind. UniqueID = 72416F5356424957 'NULLID.DB2MOVE' of database 'MIGDB' succeeded to rebind. UniqueID = 4342775356424957 'NULLID.SYSSTAT' of database 'MIGDB' succeeded to rebind. UniqueID = 5359534C564C3031 'NULLID.TUPLEWRT' of database 'MIGDB' succeeded to rebind. UniqueID = 3036303632390 Succeeded to rebind Failed to rebind = = Ending time .... Wed Sep 20 20:49:52 2006 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 68 128 0 3-2-2.移行後に必要なタスク:移行の残作業(続き) USEREXITの再作成もしくは移行 ログのアーカイブにUSEREXITを使用している場合、バージョン9.5で提供されているサンプ ルソースを元にモジュールを再作成する必要があります。 サンプルソースの所在 <インスタンスHOME>/sqllib/samples/c なおDB2 V8.2から、ログのアーカイブ機能がDB2から標準で提供される機能となり、 DB構成パラメーターに、LOGARCHMETH1、LOGARCHMETH2という2つのパラメータが追加 されました。 このパラメータを使用することで、これまでUSEREXITで実現していたログ・アーカ イブの方法を2つまで指定することができます。 この機能への移行を検討される方は、下記に詳細な資料が掲載されているため、参照してください。 – DB2 UDB V8.2(Stinger)新機能 第6章管理機能の強化 ログ・アーカイブ機能の統合 USEREXIT構成パラメーターは使用すべきではなく、DB2 V8.2以降はLOGARCHMETH1構 成パラメーターに置き換えられました。USEREXITをONに設定すると、LOGARCHMETH1 は自動的にUSEREXITに設定されますが、マイグレーション後は、USEREXITが廃止さ れる前に、代わりにLOGARCHMETH1=USEREXITの使用を開始してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 69 3-2-2.移行後に必要なタスク:移行に伴う変更のチェック ここでは、バージョン9.1以降で変更されたパラメータ等、移行後にチェックが必要な項目について記述します。 変更、追加されたレジストリー変数、構成パラメータを確認 DB2 V8.2とV9.1以降では、レジストリー変数、構成パラメータのデフォルト値が変更されている項目があ ります。 移行の形態によって、変更されたデフォルト値が有効になるかどうかは異なります。 詳細は下記の表を参照してください。 レジストリー変数 DBM構成パラメーター DB構成パラメーター インスタンス、データベースともにV8から移行 変更なし 変更なし 変更なし インスタンスを新規作成、データベースをV8から移行 あり あり 変更なし あり あり あり (BACKUP/RESTOREを使用) インスタンス、データベースとも新規作成 変更項目、内容が多岐にわたるため、このガイド中では個別に言及せず、参照先の紹介にとどめます。 DB2 9 Information Center – V9.1 の新機能: 変更された構成パラメーターのデフォルト値 http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.rn.doc/doc/c0023215.htm – V9.1 の新機能: レジストリーおよび環境変数のデフォルト値の変更 http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.rn.doc/doc/c0023534.htm – DB2 のレジストリー変数、構成パラメーター、およびデータベース物理的設計特性の変更点 http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.uprun.doc/doc/r0022380.htm DB2 9.5 Information Center – 一部のデータベース・マネージャー構成パラメーターの変更 – 一部のデータベース構成パラメーターの変更 – DB2 サーバー動作の変更点 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.wn.doc/doc/i0052553.html http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.wn.doc/doc/i0052508.html http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.qb.migration.doc/doc/r0022380.html 70 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 3-2-2.移行後に必要なタスク:移行に伴う変更のチェック(続き) グローバル・プロファイル・レジストリー変数の移行 レジストリー変数は、「グローバル・プロファイル・レジストリー変数」として複数のインスタンス間で共通 の設定を行うことが可能です。 バージョン9.1から、グローバル・レジストリー変数のスコープが変更されています。 V8.2まで V9.1から :同一サーバ上の、同じバージョンのインスタンスすべてで共通。 同一サーバに、V7とV8が共存していた場合は、 V7とV8で異なるグローバル・レジストリー変数を持つ。 :同じ導入パスから作成されたインスタンスで共通。 グローバル・レジストリー変数はインスタンス移行の際に、移行されません。 移行後のインスタンスで同じグローバル・レジストリー変数の設定が必要な場合、手動で再設定してく ださい。 実行コマンドの例 >$DB2DIR/adm/db2set <変数名>=<設定値> [db2inst2]$ db2set -all [i] DB2CODEPAGE=943 [db2inst2]$ su root のパスワード: [root /]# cd /opt/IBM/db2/V9.5_01/adm [root /opt/IBM/db2/V9.5_01/adm]# ls -l db2set -r-xr-xrx 1 bin bin 70598 Aug 14 19:18 db2set [root /opt/IBM/db2/V9.5_01/adm]# ./db2set -g DB2COMM=TCPIP [root /opt/IBM/db2/V9.5_01/adm]# exit [db2inst2]$ db2set -all [i] DB2CODEPAGE=943 [g] DB2COMM=TCPIP ©日本IBMシステムズ・エンジニアリング(株) Information Management部 71 rootユーザーで実行する。 新規にグローバル・レベルの 変数が設定されている。 3-2-2.移行後に必要なタスク:その他の作業 移行後に必要なタスクとして、他には下記のような作業があります。 統計情報の更新 移行作業が完了し、移行後のパフォーマンス測定の結果問題なく移行できたことが確認できた後 に、バージョン9.5での統計情報取得を計画してください。 「インスタンスの移行」や「BACKUP/RESTOREを使用した移行」を実施してデータベースを移行し た場合、バージョン8で取得した統計情報はそのまま保持されます。ただし、バージョン9で追加さ れた新しい統計情報は収集されていないため、「-1」という値になります。 統計情報の収集には、表の単位でRUNSTATSコマンドを実行します。 以前のバージョンのDB2をアンインストール 同一サーバ上で移行を行い、DB2 9.5と以前のバージョンのDB2が共存している場合は、移行タス クが完了して以前のバージョンのDB2が不要になったタイミングで、アンインストールを行ってくださ い。 アンインストールの方法 Windowsプラットフォームの場合は「アプリケーションの追加と削除」から除去してください。 UNIX/Linuxプラットフォームで、DB2提供のツールを使用してインストールした場合、アンインストールには 製品CD上に提供されているdb2_deinstallコマンドを使用してください。 SMITのような、OSネイティブのツールを使用してインストールした場合は、アンインストールにも同じツール を使用してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 72 3-2-2.移行後に必要なタスク:その他の作業(続き) 移行済みのルーチンより、PUBLICなEXECUTE特権を削除 V7以前のバージョンから、V8へデータベースを移行した場合、移行処理中にすべての関数、メソッ ド、外部ストアド・プロシージャのEXECUTE 特権が PUBLICに与えられていました。 バージョン8からバージョン9.5への移行の場合は、同様の現象は発生しません。 しかし、V7以前からV8への移行後にPUBLICなEXECUTE特権の削除を行わなかった場合、V9.5へ の移行後もPUBLICなEXECUTE特権は付与されたままです。 セキュリティ上の問題の回避のため、PUBLICなEXECUTE特権の取り消しを検討してください。 このPUBLICなEXECUTE特権を取り消すために、db2undgp コマンドが提供されています。 このツールは、PUBLICなEXECUTE特権を取り消すためのスクリプトを生成します > db2undgp -d <DB名> -o <スクリプト出力ファイル> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 73 3-2-2.移行後に必要なタスク:その他の作業(続き) LARGE DMS表スペースへの移行 DB2 9より、RIDをこれまでの4バイトから6バイトに拡張した「LARGE DMS表スペース」が使用可能 になっています。(DMSの表スペースのみ) LARGE DMS表スペースは、最大サイズや1ページあたりに格納可能な行数が通常の表スペースと比較して 緩和されており、バージョン9でDMS表スペースを作成した場合、デフォルトでLARGE DMS表スペースが作 成されます。 バージョン8からバージョン9.5へのMIGRATE処理では、LARGE DMS表スペースへの変換は実施されないた め、LARGE DMS表スペースへの移行する場合、手動で変換処理を行う必要があります。 LARGE DMS表スペースへの変更手順 1. ALTER TABLESPACEコマンドを実行する。 – ALTER TABLESPACE <name> CONVERT TO LARGE 2. 移行する表スペースに属する表の再編成、もしくはLOAD/IMPORT REPLACEを行う。 3. 既存の表がLARGE RIDを使用可能になったかを確認する。 LARGE DMS表スペースへの変更後の考慮点 新規作成した表は、LARGE RIDをサポートする。 既存の表は、表の再編成を行わない限り、255行/ページの制限が残る。 LARGE DMS表スペースの詳細について LARGE DMS表スペースの詳細については、下記の資料を参照してください。 – DB2 9新機能WS資料「運用管理機能強化 アーキテクチャー」 – http://www.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/004D44E6 移行後バックアップ 移行後にデータベースをバックアップします。これにより、移行直後の状態にリストアすることが可 能です。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 74 3-2-3. その他環境によって必要となるタスク HADR環境の移行 HADR環境の場合、HADRのスタンバイ・データベースは移行できません。 DB2 V8でのFixpak適用の際は、HADRのリレーションを維持したまま適用する「ローリング・アップグレード」 が使用可能です。しかし、バージョン9.5への移行の際は、ローリング・アップグレードは使用できません。 HADRをいったん停止し、下記のような手順を取る必要があります。 STOP HADRコマンドを使用して一次データベースとスタンバイ・データベースでHADRを停止。 一次データベース側のインスタンス、データベースをV9.5へ移行。 スタンバイ側のHADRデータベースを削除。 スタンバイ側のインスタンスをV9.5へ移行。 一次データベースのバックアップを取得し、スタンバイ側へリストアを実施。(*) HADRの再設定を行い、HADR環境を再スタートさせる。 (*) 一次データベースのスプリット・ミラーから、db2inidbコマンドを使用してスタンバイ・データベースを初期化す ることも可能です。 Qレプリケーション環境の移行 Qレプリケーション環境を移行する場合、追加の手順が必要となります。 サーバ・インスタンスの移行完了後に、以下の移行手順を参考にQレプリケーション環境をバージョン9.5の 環境に移行します。 詳細な手順については、DB2 Information Centerの下記のURLを参照してください。 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.swg.im.iis.repl.mig9.doc/topics/iiyrcmig9ovu9195.html ©日本IBMシステムズ・エンジニアリング(株) Information Management部 75 3-2-3. その他環境によって必要となるタスク(続き) MSCS環境の移行 MSCS環境でDB2を使用している場合、DB2 9.5インストール中にインスタンスを移行するのではなく、別の DB2コピーとしてインストールした後にインスタンスを移行することをお勧めします。 このガイド中では、Windowsプラットフォームについても、別のDB2コピーにインストール後にインスタンス 移行を行う方法を、標準としてガイドしています。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 76 3-3-1. 同一インスタンスでの移行 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリストア (restore db) 3-3-3章 移行データの 投入(LOADコマンド) 3-2-2章 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 77 3-3-1. 同一インスタンスでの移行手順(ケース1) この節では、同一サーバ上、同一インスタンスでDB2 9.5への移行 を行う際の作業の流れを説明します。 この移行シナリオの特徴 V8の既存インスタンスをそのままV9.5へ移行する。(db2imigrを使用) DBのBACKUP/RESTOREや、データ移動ユーティリティによるデータ移動が 必要ない。 DBサーバ(現行) V8インスタンス => V9.5インスタンス MIGDB ©日本IBMシステムズ・エンジニアリング(株) Information Management部 78 3-3-1. 同一インスタンスでの移行作業の流れ 共通の移行前タスクの実施 * 「共通の移行タスク」については、3-2章を参照してください。 MIGRATE DBやBACKUP/RESTOREを使用 する際のタスク インスタンスの移行 データベースの移行 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 79 3-3-1.移行前タスク 共通の移行前タスクの実施 MIGRATE DBやBACKUP/RESTOREを使用 する際のタスク インスタンスの移行 データベースの移行 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 80 3-3-1. MIGRATE DBやBACKUP/RESTOREを使用する際のタスク 32bitインスタンスから64bitインスタンスへの移行 DB2 9では、UNIXプラットフォームでの32bitインスタンスはサポートされません。そのた めバージョンアップの際、64bitインスタンスへの移行が必要となります。 32bit インスタンスを64bitインスタンスへ直接db2imigrすることや、32bitインスタンスで 作成されたDBバックアップを64bitインスタンスへRESTOREすることは可能です。 ただし、「作業を分割して、問題が発生した場合の切り分けを容易にする」という観点か ら、移行前タスクとして実施することをお勧めします。 64bitインスタンスへの切り替えは、db2iupdtコマンドを利用して行います。 実行コマンド例 >db2iupdt –w 64 <インスタンス名> * コマンドの所在 :DB2導入パスの、instanceディレクトリ配下 :DB2 V8の場合Regular Fixpak使用時は「/usr/opt/db2_08_01」 :Alternate Fixpak使用時は「/usr/opt/db2_08_FPXX」 * 実行ユーザーについて :db2iupdtコマンドの実行は、UNIXプラットフォームではrootユーザー。 :Windowsプラットフォームでは管理者ユーザーで行ってください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 81 解説. 32bitから64bitへの移行 db2iupdtコマンドの使用例 32bitインスタンス db2inst2$ db2level DB21085I Instance "db2inst2" uses "32" bits and DB2 code release "SQL08026" with level identifier "03070106". Informational tokens are "DB2 v8.1.1.120", "s060801", "U808888", and FixPak "13". DB2の停止を行う。 Product is installed at "/usr/opt/db2_08_FP13". db2bpプロセスが残っている場合も、 db2iupdtコマンドが失敗するため、注意が 必要。 db2inst2$ db2stop 2006-09-13 17:50:45 0 0 SQL1064N DB2STOP processing was successful. SQL1064N DB2STOP processing was successful. rootユーザーで実行する。 db2inst2$ su root のパスワード: root# ls -l /usr/opt/db2_08_FP13/instance/db2iupdt -r-xr--r-- 1 root bin 7951 Aug 03 12:24 /usr/opt/db2_08_FP13/instance/db2iupdt root# /usr/opt/db2_08_FP13/instance/db2iupdt -w 64 db2inst2 DBI1070I Program db2iupdt completed successfully. 64bitインスタンス root# exit db2inst2$ db2level DB21085I Instance "db2inst2" uses "64" bits and DB2 code release "SQL08026" with level identifier "03070106". Informational tokens are "DB2 v8.1.1.120", "s060801", "U808888", and FixPak "13". Product is installed at "/usr/opt/db2_08_FP13". ©日本IBMシステムズ・エンジニアリング(株) Information Management部 82 3-3-1. MIGRATE DBやBACKUP/RESTOREを使用する際のタスク(続き) 移行処理のため、表スペース、ログファイルのサイズを一時的に拡張する DB2はMIGRATE処理の中で、カタログ情報やログ・ファイル・ヘッダーの書き換え等を行います。 この書き換え処理のため、システムカタログ表スペース、一時表スペース、アクティブ・ログ・ファイ ルには十分な空き容量が必要となります。 システムカタログ表スペースに必要な空き容量について SMSの場合 – SYSCATSPACEの使用ページ数(Used Pages)と同じだけの空き容量が、SYSCATSPACE の格納されているドライブ/ファイルシステムに存在することを確認してください。 SYSCATSPACEのコンテナ・ファイルがどこに格納されているかは、「LIST TABLESPACE CONTAINERS」コマンドで確認が可能です。 DMSの場合 – SYSCATSPACEをDMSで作成している場合、使用ページ数(Used Pages)と同じだけの空き 容量が、SYSCATSPACEのフリーページ数(Free Pages)にあることを確認してください。空 き容量が不足している場合、「Alter Tablespace」コマンドを使用して拡張します。 一時表スペースに必要な空き容量について SMS一時表スペースの場合 – SYSCATSPACEの使用ページ数(Used Pages)の2倍の空き容量が、一時表スペースを格 納しているドライブ/ファイルシステムに存在することを確認してください。 DMS一時表スペースの場合 – SYSCATSPACEの使用ページ数(Used Pages)の2倍の空き容量が、一時表スペースのフ リーページ数(Free Pages)にあることを確認してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 83 解説. 表スペース、ログファイルの空き容量の確認方法について 確保するべき空き容量の確認方法 $ db2 list tablespaces show detail Tablespace ID Name Type 使用ページ数が8638ページ、 ページサイズが4096(byte)なので、 現在の使用容量は 8638 x 4096 / 1024 / 1024 = 33.7MB = 0 = SYSCATSPACE = System managed space Total pages Useable pages Used pages Free pages High water mark (pages) Page size (bytes) = = = = = = 8638 8638 8638 Not applicable Not applicable 4096 Tablespace ID Name Type Total pages Useable pages Used pages Free pages High water mark (pages) Page size (bytes) = = = = = = = = = 1 TEMPSPACE1 System managed space 4 4 4 Not applicable Not applicable 4096 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 SYSCATSPACEに34MB、 TEMPSPACE1に68MB の空き容量が必要。 84 3-3-1. MIGRATE DBやBACKUP/RESTOREを使用する際のタスク(続き) 移行処理のため、表スペース、ログファイルのサイズを一時的に拡張する(続き) アクティブ・ログ・ファイルについて データベースの移行処理は1UOWで実行されます。そのため、移行処理によるすべてのトランザクションを 格納できるだけのログ容量が必要です。 十分に大きなログ容量を既に確保している場合は、新たな拡張は必要ありません。 デフォルトのログ容量に近いサイズで運用している場合、ログ・ファイルサイズの拡張を検討してください。 ログ・ファイルのサイズを拡張する際に使用するデータベース構成パラメーター – – – LOGFILSIZ LOGPRIMARY LOGSECOND :ログファイルのサイズを4KB単位で指定する。1000の場合、1ファイル4MB :データベースがあらかじめ割り振っておくログファイルの数 :必要になった際に、追加で割り振ることができるログファイルの最大数 データベース構成パラメーターの変更コマンド – >db2 update db cfg for <DB名> using <パラメーター名> <設定値> 使用可能な最大ログ容量を求める計算式 ( LOGPRIMARY + LOGSECOND ) x LOGFILSIZ x 4096 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 85 【参考情報】 移行に必要なログファイルサイズについて 参考情報として、幕張環境でデータベースを移行した際の事例をご紹介します。 34MB程度のシステムカタログ表スペースに対して、生成ログ量は42MB程度でした。 移行したデータベース中では、1000個程度のユーザー・テーブルを保持しています。 オブジェクトの種類や数等、環境によって必要となるログ量は異なるため、下記を参考として十分に余裕 のあるログファイル容量を確保してください。 移行データベースの情報 SYSCATSPACE使用ページ数 8639 SYSCATSPACEページサイズ 4096 33.7MB SYSCATSPACE容量 SYSCAT.TABLES行数 1287 (966) SYSCAT.INDEXES行数 3079 (2853) SYSCAT.COLUMNS行数 10082 (5791) * 括弧の中は、ユーザー作成のオブジェクト数 MIGRATE DBを行った23:41∼ 23:42に作成されたアーカイブログ が、移行処理によって作成された ログ・ファイル。 移行後のアーカイブログ・ディレクトリの内容 $ ls -l arclog/db2inst2/MIGDB/NODE0000/C0000000/ -rw-r---- 1 db2inst2 staff 65536 Sep 14 -rw-r---- 1 db2inst2 staff 12288 Sep 14 -rw-r---- 1 db2inst2 staff 16392192 Sep 14 -rw-r---- 1 db2inst2 staff 16392192 Sep 14 -rw-r---- 1 db2inst2 staff 10870784 Sep 14 -rw-r---- 1 db2inst2 staff 397312 Sep 14 -rw-r---- 1 db2inst2 staff 16392192 Sep 15 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 23:34 23:36 23:41 23:42 23:42 23:42 01:43 86 S0000010.LOG S0000011.LOG S0000012.LOG S0000013.LOG S0000014.LOG S0000015.LOG S0000016.LOG 合計サイズ :42MB 3-3-1. MIGRATE DBやBACKUP/RESTOREを使用する際のタスク(続き) MIGRATE処理の制約事項が該当しないことを確認 Net Search Extender(NSE)を導入している場合 NSEを導入している場合、NSEによってData Link Managerサポート用のUDFが作成されます。DB2 9からData Link Managerはサポートされなくなっており、このUDFについても削除する必要があります。 UDFの削除には下記のコマンドを使用します。 db2 db2 db2 db2 DROP DROP DROP DROP SPECIFIC SPECIFIC SPECIFIC SPECIFIC FUNCTION FUNCTION FUNCTION FUNCTION DB2EXT.DATALINKCONTENT1; DB2EXT.DATALINKCONTENT2; DB2EXT.DATALINKCONTENT4; DB2EXT.DATALINKCONTENT3; XML、BINARY、VARBINARY という名前のユーザー定義特殊タイプ (UDT) が存在する場合 DB2 9から新たにXMLデータタイプがサポートされ、また内部データ型としてBINARY、VARBINARYデータタイ プを使用するようになったため、同じ名前のUDTは定義できなくなりました。 既存のUDTとしてXML、BINARY、VARBINARYのいずれかの名称を使用している場合は、UDTの名称を変更 する必要があります。 インスタンスの移行を行う前に、該当するUDTをいったん削除して、別の名前で再作成してください。 その他、MIGRATE処理失敗の原因について データベースのMIGRATE処理に失敗した場合、メッセージSQL1704Nとその理由コードが返却されます。 DB2 Information Centerのメッセージ解説書に各理由コードの内容と対応が記述されていますので、必要に応 じて参照してください。 – http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql017 04n.html ©日本IBMシステムズ・エンジニアリング(株) Information Management部 87 3-3-1. MIGRATE DBやBACKUP/RESTOREを使用する際のタスク(続き) データベースが移行できる状態にあることの確認 移行前の最後のタスクとして、db2ckmigコマンドを実行し、データベースが問題なく移行でき る状態にあることを確認します。 db2ckmigコマンドは下記の項目のチェックを行います。 データベースがカタログされていること。 データベースが不整合な状態にないこと。 データベースがバックアップ・ペンディング状態にないこと。 データベースがリストア・ペンディング状態にないこと。 データベースがロールフォワード・ペンディング状態にないこと。 すべての表スペースのステータスが正常であること。 ARRAY、BINARY、DECFLOAD、VARBINARYおよびXMLという名前のユーザー定義タイプ (UDT) が存在しないこと。 データベースには、システム定義のDATALINKデータ・タイプが含まれていないこと。 システム・カタログ表の中に、データベースのマイグレーションを失敗させるようなデータベースの孤立行が存在しない。 HADR の1 次データベースとして構成されている場合は、1次データベースに対しての接続が可能である必要がありま す。 – 非活動化されているHADRの1次データベースに対して接続を行う場合、スタンバイ・データベースに対してHADR接続を行 おうとするため、あらかじめスタンバイ・データベースが活動化されている必要があります。 HADR を構成している場合、スタンバイ・データベースではないこと。 SYSCATSPACEがDMS表スペースであり、自動サイズ変更機能が有効になっていない場合、SYSCATSPACEに少なくと も総ページ数の50%のフリー・ページが存在すること。 DB2 Information Center[データベースがマイグレーションできる状態にあることの確認] – http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.qb.migration.doc/doc/t0007187.html db2ckmigコマンドは、インスタンスの移行処理中に暗黙的に実行されます。上記項目のチェッ クにパスしない場合、db2imigrによるインスタンスの移行処理は失敗します。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 88 解説. db2ckmigコマンドの実行方法 db2ckmigコマンドの実行方法について db2ckmigコマンドは、DB2 9.5の導入パス配下にあります。 <DB2 9.5インストールディレクトリ>/bin 実行コマンド例 >db2ckmig <DB名> -l <ログファイル名> コマンド実行後には必ずログファイルを参照し、DB2 9.5のdb2ckmigコマンドが実行されたことを確認 してください。 [/home/db2inst2]$ cd /opt/IBM/db2/V9.5_01/bin [/opt/IBM/db2/V9.5_01/bin]$ ls -l db2ckmig -r-xr-xrx 1 bin bin 9716 Jul 14 04:15 db2ckmig [/opt/IBM/db2/V9.5/bin]$ ./db2ckmig migdb -l /tmp/db2ckmig.log db2ckmig was successful. Database(s) can be migrated. [/opt/IBM/db2/V9.5_01/bin]$ cat /tmp/db2ckmig.log Version of DB2CKMIG being run: VERSION 9.5. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 バージョン9.5のdb2ckmigであ ることが確認できる。 89 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 90 3-3-1. インスタンス/データベースの移行 共通の移行前タスクの実施 MIGRATE DBやBACKUP/RESTOREを使用 する際のタスク インスタンスの移行 データベースの移行 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 91 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 92 3-3-1. インスタンス/データベースの移行 インスタンスの移行 インスタンスの移行のためには、DB2 9.5の導入パス配下のdb2imigrコマンドを使用します。 db2imigrコマンド実行 db2imigrコマンドは、rootユーザーもしくは管理者権限で実行します。 – インスタンスオーナーで実行するコマンドではありません。 UNIX/Linuxの場合 – > $DB2DIR/instance/db2imigr -u <fencedユーザーID> <インスタンス名> Windowsの場合 – – > $DB2DIR¥bin¥db2imigr /u:<ユーザー名>,<パスワード> <インスタンス名> 「 /u:<ユーザー名>,<パスワード> 」は、DB2サービスを実行するユーザー名とパスワード $DB2DIRは、DB2 9.5の導入パスです。デフォルトの導入パスは下記の通りです。 – – – UNIXの場合 Linuxの場合 Windowsの場合 :/opt/IBM/db2/V9.5 :/opt/ibm/db2/V9.5 :Program Files¥IBM¥sqllib_XX (XXは数字の連番) 作業の流れ UNIX/Linuxでは、/tmpに20MB以上の空き容量があることを確認 DB2の停止を行う rootユーザーもしくは管理者権限でログオンする db2imigrコマンドの実行 インスタンス・オーナーとして再ログオン DB2の開始を行う ©日本IBMシステムズ・エンジニアリング(株) Information Management部 93 3-3-1. インスタンス/データベースの移行(続き) データベースの移行 インスタンスの移行を行った後、移行したインスタンス配下のデータベースをバージョン9に移行する 必要があります。 MIGRATE DBコマンドの実行 データベースの移行はMIGRATE DBコマンドで行います。 $ db2 migrate db <DB名> [ user <ユーザーID> using <パスワード> ] – ローカルDBに対してMIGRATE DBコマンドを実行する場合はユーザーID/パスワードは必要ありません。 作業の流れ インスタンスオーナーもしくは、SYSADM権限を持つユーザーとしてログオンする。 MIGRATE DBコマンドを実行する。 MIGRATE DBコマンドが正常に完了したことを確認する。 移行後のデータベースに接続し、簡単な照会を実行します。 MIGRATEが正常に完了しない場合 データベースの移行が失敗すると、エラー・メッセージ SQL1704N が失敗の原因を説明した理由コードととも に返却されます。DB2 Information Centerの 「メッセージ・リファレンス」でこの SQL エラー・コード参照してくだ さい。各理由コードに対しての対応策も上記マニュアル中に記載されています。 MIGRATE DB失敗の最も一般的に見られる原因としては、ログ容量の不足が挙げられます。 – この場合理由コード「3」が返却されます。対応策としては、トランザクションログの容量を拡張してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 94 3-3-1. インスタンス/データベースの移行(続き) データベースの移行(続き) MIGRATEが正常に完了しない場合(続き) 移行対象のデータベースに「SYSTOOLS.DB2LOOK_INFO」という名前の表が存在する場合、MIGRATE DBコ マンドは警告としてSQL1243Wを戻します。 – – – – この表がDB2によって自動的に作成された表であった場合、DB2はこの表を削除し、警告は戻しません。 この表の列定義が、自動作成される列定義と異なっていた場合、DB2はこの表を自動削除できないため、 SQL1243Wの警告を戻します。 この表が存在した場合でも、データベースの移行は成功しますが、移行後にALTER TABLEコマンドや、COPY SCHEMAコマンドを実行した場合、コマンドが失敗します。 このメッセージを受け取ったら、「SYSTOOLS.DB2LOOK_INFO」表の名前を変更するか削除してください。 メッセージの出力例 $ db2 migrate db migdb SQL1243W DB2 バージョン 8 データベースの db2look 操作表 SYSTOOLS.DB2LOOK_INFO のドロップが失敗しました。 $ db2 connect to migdb データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 = DB2/AIX64 9.5.0 = DB2INST2 = MIGDB SQL1243Wが出力された場合も、 DBの移行は成功している。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 95 3-3-1. インスタンス/データベースの移行(続き) DASの移行 DASを利用してDB2サーバの管理を行っている場合、DASインスタンスもバージョン9.5である必要が あります。バージョン8以前のDASからバージョン9.5のDB2サーバを管理することはできません。 Windows では、DB2 9.5インストール中に既存のインスタンスを自動移行することが可能ですが、そ れを選択した場合は、DASも同様にバージョン9.5へ移行されます。 バージョン8のDASで DB2 ツール・カタログを作成している場合、作成済みのスクリプト、スケジュー ルを使用する場合には、DASの移行が必要です。 作成済みのスクリプト等を移行する必要がない場合は、バージョン8のDASを削除し、バージョン9.5のDASを 新規に作成することで、dasmigrコマンドによる移行の代替とすることも可能です。 dasmigrコマンドの実行 UNIX/Linuxの場合 – > $DB2DIR/instance/dasmigr Windowsの場合 – > $DB2DIR¥bin¥dasmigr $DB2DIRは、DB2 9.5の導入パスです。デフォルトの導入パスは下記の通りです。 – – – UNIXの場合 Linuxの場合 Windowsの場合 :/opt/IBM/db2/V9.5 :/opt/ibm/db2/V9.5 :Program Files¥IBM¥sqllib_XX (XXは数字の連番) 作業の流れ DASオーナーとしてログオンし、DASを停止する rootユーザーもしくは管理者権限でログオンする dasmigrコマンドを実行してDASを移行する。 DASオーナーとしてログオンし、DASを開始する。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 96 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 97 3-3-1. 移行コマンドの実行例 想定する環境 DBサーバ :AIX インスタンス名 :db2inst2 データベース名 :MIGDB DB2 V8の導入パス :/usr/opt/db2_08_01/ DB2 V9.5の導入パス :/opt/IBM/db2/V9.5_01 DB2のエディション :V8/V9.5ともESE (*) DB2 9.5は、3-1の手順に従って導入済みとします。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 98 3-3-1. 移行コマンドの実行例 移行対象インスタンス、DBの確認 $ db2level DB21085I Instance "db2inst2" uses "32" bits and DB2 code release "SQL08026" with level identifier "03070106". Informational tokens are "DB2 v8.1.1.120", "s060801", "U808888", and FixPak "13". Product is installed at "/usr/opt/db2_08_FP13". $ 現在のDB2はV8.1 FP13 32bitインスタンス db2 list db directory System Database Directory Number of entries in the directory = 1 移行対象DBは「MIGDB」 Database 1 entry: Database alias Database name Local database directory Database release level Comment Directory entry type Catalog database partition number Alternate server hostname Alternate server port number = = = = = = = = = MIGDB MIGDB /home/db2inst2/db2 a.00 Indirect 0 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 99 3-3-1. 移行コマンドの実行例 (続き) 現在の構成情報を取得 $ 対象DBを指定してdb2support コマンドを実行 db2support /out0/backup -d migdb -cl 0 _______ D B 2 S u p p o r t ______ This program generates information about a DB2 server, including information about its configuration and system environment. The output of this program will be stored in a file named 'db2support.zip', located <中略> "list_apps.supp_out" "db2diag.log" 処理の成功を確認 db2support is now complete. 移行前バックアップを取得 $ バックアップの正常取得を確認 db2 backup db migdb to /out0/backup Backup successful. The timestamp for this backup image is : 20060913174858 $ ls -l /out0/backup 合計 492472 -rw-r---- 1 db2inst2 staff -rw-r--r- 1 db2inst2 staff 251740160 Sep 13 17:49 MIGDB.0.db2inst2.NODE0000.CATN0000.20060913174858.001 403897 Sep 13 17:46 db2support.zip ©日本IBMシステムズ・エンジニアリング(株) Information Management部 100 3-3-1. 移行コマンドの実行例 (続き) エラー情報の取得レベルを変更 $ db2 get dbm cfg │grep DIAGLEVEL Diagnostic error capture level (DIAGLEVEL) = 3 $ db2 update dbm cfg using DIAGLEVEL 4 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. $ db2 get dbm cfg │grep DIAGLEVEL Diagnostic error capture level (DIAGLEVEL) = 4 $ db2 get dbm cfg │grep NOTIFYLEVEL Notify Level (NOTIFYLEVEL) = 3 $ db2 update dbm cfg using NOTIFYLEVEL 4 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. $ db2 get dbm cfg │grep NOTIFYLEVEL Notify Level (NOTIFYLEVEL) = 4 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 101 DIAGLEVEL/NOTIFYLEVELが 対象DBを指定してdb2support 4に変更されていることを確認 コマンドを実行 3-3-1. 移行コマンドの実行例 (続き) 32bitインスタンスから64bitインスタンスへ移行 現在は32bitインスタンス $ db2level DB21085I Instance "db2inst2" uses "32" bits and DB2 code release "SQL08026" with level identifier "03070106". Informational tokens are "DB2 v8.1.1.120", "s060801", "U808888", and FixPak "13". Product is installed at "/usr/opt/db2_08_FP13". $ db2stop 2006-09-13 17:50:45 0 0 SQL1064N DB2STOP processing was successful. SQL1064N DB2STOP processing was successful. $ ps -ef│ grep db2inst2 db2inst2 1446120 1577150 0 16:27:22 pts/11 0:00 -ksh db2inst2 1589464 1 0 18:18:10 - 0:00 /home/db2inst2/sqllib/bin/db2bp 1810436A229 5 A $ kill -9 1589464 $ ps -ef│ grep db2inst2 db2inst2 1446120 1577150 0 16:27:22 pts/11 0:00 -ksh $ su root のパスワード: root@kotatsu:/# cd /usr/opt/db2_08_FP13/instance root@kotatsu:/usr/opt/db2_08_FP13/instance# ls -l db2iupdt -r-xr--r- 1 root bin 7951 Aug 03 12:24 db2iupdt root@kotatsu:/usr/opt/db2_08_FP13/instance# ./db2iupdt -w 64 db2inst2 DBI1070I Program db2iupdt completed successfully. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 102 db2bpプロセスが残っている場合 も、db2iupdtが失敗するため、す べて終了させる。 rootユーザーで実行する。 3-3-1. 移行コマンドの実行例 (続き) 32bitインスタンスから64bitインスタンスへ移行(続き) root@kotatsu:/usr/opt/db2_08_FP13/instance# exit $ db2level DB21085I Instance "db2inst2" uses "64" bits and DB2 code release "SQL08026" with level identifier "03070106". Informational tokens are "DB2 v8.1.1.120", "s060801", "U808888", and FixPak "13". Product is installed at "/usr/opt/db2_08_FP13". $ db2start 2006-09-13 17:53:05 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 103 64bitインスタンスになっているこ とを確認 3-3-1. 移行コマンドの実行例 (続き) 必要な空き容量の確認 $ db2 connect to migdb Database Connection Information Database server = DB2/AIX64 8.2.6 SQL authorization ID = DB2INST2 Local database alias = MIGDB show detailオプション付きで、 list tablespacesコマンドを実行 $ db2 list tablespaces show detail Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 8639 Useable pages = 8639 Used pages = 8639 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 104 Used Pages(使用ページ数)が 8639(ページ)、Page Size(ページ サイズ)が4096(byte)であることを 確認。 SYSCATSPACEの容量 :33.7MB 3-3-1. 移行コマンドの実行例 (続き) 必要な空き容量の確認(続き) Tablespace ID=0 (SYSCATSPACE) のコンテナ・ファイルを確認 $ db2 list tablespace containers for 0 /home/db2inst2/db2 に配置されている Tablespace Containers for Tablespace 0 Container ID = 0 Name = /home/db2inst2/db2/db2inst2/NODE0000/SQL00001/SQLT0000.0 Type = Path $ db2 list tablespace containers for 1 Tablespace Containers for Tablespace 1 Container ID = 0 Name = /home/db2inst2/db2/tempts/fs1 Type = Path Container ID Name Type = 1 = /home/db2inst2/db2/tempts/fs2 = Path Container ID Name Type = 2 = /home/db2inst2/db2/tempts/fs3 = Path Container ID Name Type = 3 = /home/db2inst2/db2/tempts/fs4 = Path $ df -m │ egrep "^Filesystem│/home/db2inst2/db2" Filesystem MB ブロック Free %Used Iused %Iused Mounted on /dev/lvinst2db 2048.00 1468.00 29% 304 1% /home/db2inst2/db2 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 105 Tablespace ID=1 (TEMPSPACE1)の コンテナ・ファイルも同様に /home/db2inst2/db2 に配置されている /home/db2inst2/db2 ファイルシステム の空き容量が1468MBであるため、 SYSCATSPACE、TEMPSPACE1ともに、 移行に必要な空き容量が確保可能。 3-3-1. 移行コマンドの実行例 (続き) 必要な空き容量の確認(続き) $ db2 get db cfg for migdb │grep -i "log file" Log file size (4KB) (LOGFILSIZ) = 4000 Number of primary log files (LOGPRIMARY) = 10 Number of secondary log files (LOGSECOND) = 2 LOGFILSIZ x (LOGPRIMARY + LOGSECOND) x4096 が使用可能なログ容量の計算式。 4000 x ( 10 + 2 ) x 4096 = 187.5MB であるため、SYSCATSPACEの使用容量に対して5倍程 度の容量を確保できている。 db2ckmigコマンドで、データベースが移行可能であることを確認する。 $ cd /opt/IBM/db2/V9.5_01/bin [/opt/IBM/db2/V9.5_01/bin]$ ls -l db2ckmig -r-xr-xrx 1 bin bin 9716 Jul 14 04:15 db2ckmig [/opt/IBM/db2/V9.5_01/bin]$ ./db2ckmig migdb -l /tmp/db2ckmig.log インスタンスオーナーで db2ckmigコマンドを実行 db2ckmig was successful. Database(s) can be migrated. [/opt/IBM/db2/V9.5_01/bin]$ cat /tmp/db2ckmig.log Version of DB2CKMIG being run: VERSION 9.5. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 バージョン9.5のdb2ckmigコマン ドを実行していることを確認 106 3-3-1. 移行コマンドの実行例 (続き) インスタンスの移行 $ db2licd -end $ db2 terminate DB20000I The TERMINATE command completed successfully. $ db2 list application SQL1611W No data was returned by Database System Monitor. SQLSTATE=00000 $ db2stop 2006-09-14 23:34:34 0 0 SQL1064N DB2STOP processing was successful. DB2停止後もdb2bpが残ってい SQL1064N DB2STOP processing was successful. る場合、killコマンドで終了させる。 $ ps -ef│ grep db2inst2 db2inst2 1487036 1650940 0 23:35:19 pts/6 0:00 grep db2inst2 db2inst2 1073168 1 0 23:04:34 - 0:00 /home/db2inst2/sqllib/bin/db2bp 1581196A229 5 A db2inst2 1609870 1 0 23:34:26 - 0:00 /home/db2inst2/sqllib/bin/db2bp 1650940A229 5 A db2inst2 1650940 1749240 0 21:37:20 pts/6 0:00 -ksh $ kill -9 1073168 1609870 $ su root のパスワード: rootユーザーでdb2imigrコマン root@kotatsu:/# cd /opt/IBM/db2/V9.5_01/instance ドを実行する。 root@kotatsu:/opt/IBM/db2/V9.5_01/instance# ls -l db2imigr -r-xr--r- 1 root system 50797 Jul 14 04:15 db2imigr* root@kotatsu:/opt/IBM/db2/V9.5_01/instance# ./db2imigr -u db2inst2 db2inst2 db2ckmig was successful. Database(s) can be migrated. DBI1070I プログラム db2imigr は正常に完了しました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 107 3-3-1. 移行コマンドの実行例 (続き) インスタンスの移行(続き) root@kotatsu:/opt/IBM/db2/V9.5_01/instance# su -db2inst2 $ db2level DB21085I インスタンス “db2inst2" は、"64" ビットおよび DB2 コード・リリース "SQL09050" をレベル ID "03010107" で使用します。 情報トークンは、"DB2 v9.5.0.0"、"s070917"、"AIX6495"、およびフィックスパック "0" です。 製品は "/opt/IBM/db2/V9.5_01" にインストールされます。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 108 db2levelの出力結果がバージョ ン9.5であることを確認する。 3-3-1. 移行コマンドの実行例 (続き) データベースの移行 インスタンスの移行時にDB2を停 止していたため、ここで開始する。 $ db2start 2006-09-14 23:38:18 0 0 SQL1063N DB2START の処理が正常に終了しました。 SQL1063N DB2START の処理が正常に終了しました。 $ db2 migrate db migdb DB20000I MIGRATE DATABASE コマンドが正常に完了しました。 $ db2 activate db migdb DB20000I ACTIVATE DATABASE コマンドが正常に完了しました。 $ db2 connect to migdb データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 migrate処理に数分かかる。 = DB2/AIX64 9.5.0 = DB2INST2 = MIGDB $ db2 "select count(*) from syscat.dbauth" DBへの接続ができること、簡単 な照会に成功することを確認する。 1 ---------2 1 record(s) selected. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 109 3-3-1. 移行コマンドの実行例 (続き) DASの移行 DASユーザーからDASを停止す る。 [dasuser /home/dasuser]$ db2admin stop SQL4407W The DB2 Administration Server was stopped successfully. [dasuser /home/dasuser]$ su root のパスワード: [root /]# cd /opt/IBM/db2/V9.5_01/instance [root /opt/IBM/db2/V9.5_01/instance]# ls -l dasmigr -r-xr-xrx 1 bin bin 3318 Jul 14 04:15 dasmigr [root /opt/IBM/db2/V9.5_01/instance]# ./dasmigr SQL4410W The DB2 Administration Server is not active. SQL4406W DB2 Administration Server を正常に開始しました。 DBI1070I プログラム dasmigr は正常に完了しました。 [root /opt/IBM/db2/V9.5_01/instance]# su -dasuser [dasuser /home/dasuser]$ cd das/adm/bin [dasuser /home/dasuser/das/bin]$ ls -l db2daslevel -r-xr-xrx 1 bin bin 32540 Aug 14 19:18 db2daslevel [dasuser /home/dasuser/das/bin]$ ./db2daslevel DB21089I DB2 Administration Server "dasuser" は、 DB2 コード・リリース "DB2 v9.5.0.0" をレベル ID "03010107" で使用します。 情報トークンは、"s070917"、"AIX64"、およびフィックスパック "0" です。 製品は "/opt/IBM/db2/V9.5_01/das" にインストールされます。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 110 rootユーザーから、dasmigrを実 行する。 V9よりDASのバージョンを確認す るdb2daslevelコマンドが提供さ れています。 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 111 3-3-2. Backup/Restoreによる移行 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリストア (restore db) 3-3-3章 移行データの 投入(LOADコマンド) 3-2-2章 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 112 3-3-2. Backup/Restoreを使用した移行手順(ケース2) この節では、Backup/Restoreコマンドを使用して、同一サーバ上も しくは新規サーバ上の、新しいインスタンスへ移行する際の作業の 流れを説明します。 この移行シナリオの特徴 V8の既存インスタンスは保存し、新規のインスタンスへ移行する。 移行にはBACKUP/RESTOREを使用する。 DBサーバ(現行) DBサーバ(同一もしくは新規) V8インスタンス MIGDB V9.5インスタンス(新規) 外部モジュール等 BACKUP RESTORE BACKUP イメージ ©日本IBMシステムズ・エンジニアリング(株) Information Management部 113 MIGDB 3-3-2. Backup/Restoreを使用する際の考慮点 V7以前のバックアップからの復元はできない V7以前のバージョンからの移行の場合は、「3-3-3. データ移動ユーティリティを 使用した移行」の手順を使用してください。 V8のバックアップをV9.5に復元後、V8時のログは適用できない。 V8時点のログは適用不要な状態にした上で、オフライン・バックアップを取得す る必要があります。 新規インスタンスでのログ適用を行う必要や、オンラインバックアップからの移 行をしたい場合は、この章の説明と併せて、「5-2. オンライン・バックアップ・イ メージからの移行」を参照してください。 異なるプラットフォーム間のリストアについて WindowsとUNIX/Linux間のリストアはできません。 また、プラットフォーム・ファミリー間でのリストアもできません。 同一のプラットフォーム・ファミリーとはエンディアンの統一されたUNIX/Linuxを指します。 詳細は下記のDB2 Information Centerを参照してください。 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.ha.doc/doc/c0005960.html ©日本IBMシステムズ・エンジニアリング(株) Information Management部 114 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 115 3-3-2. Backup/Restoreを使用する際の作業の流れ 共通の移行前タスクの実施 * 「移行前のタスク」については、3-2-1章を参照してください。 MIGRATE DBやBACKUP/RESTOREを使用 する際のタスク *このタスクについては、3-3章を参照してください。 新規インスタンスの作成 Backup/Restoreによるデータベースの移行 移行後タスクの実施 * 「移行後のタスク」については、3-2-2章を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 116 3-3-2. 新規インスタンスの作成/データベースの移行 共通の移行前タスクの実施 * 「移行前のタスク」については、3-2-1章を参照してください。 MIGRATE DBやBACKUP/RESTOREを使用 する際のタスク *このタスクについては、3-3章の移行前タスクを参照してください。 新規インスタンスの作成 Backup/Restoreによるデータベースの移行 移行後タスクの実施 * 「移行後のタスク」については、3-2-2章を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 117 3-3-2. 新規インスタンスの作成 新規インスタンスの作成 同一サーバ上で移行する場合も、新規サーバへ移行する場合も移行先のインスタンスの 作成が必要です。 インスタンスの作成にはdb2icrtコマンドを使用します。 同一サーバ上のインスタンス名はユニークである必要があるため、同一サーバ上で移行する場合は、新規 インスタンスはこれまでのインスタンスとは異なる名称で作成してください。 db2icrtコマンド実行 db2icrtコマンドは、rootユーザーもしくは管理者権限で実行します。 UNIX/Linuxの場合 – – – > $DB2DIR/instance/db2icrt [-p <サービス名> ] -u <fencedユーザーID> <インスタンス名> -p :TCP/IPによる接続を使用する場合のサービス名/ポート番号を指定 -u :fenced ユーザー定義関数および fenced ストアード・プロシージャーを実行するユーザー ID の 名前を指定します。サーバインスタンスを作成する際は、必須オプションです。 Windowsの場合 – > $DB2DIR¥instance¥db2icrt <インスタンス名> $DB2DIRは、DB2 9.5の導入パスです。デフォルトの導入パスは下記の通りです。 – – – UNIXの場合 Linuxの場合 Windowsの場合 :/opt/IBM/db2/V9.5 :/opt/ibm/db2/V9.5 :Program Files¥IBM¥sqllib_XX (XXは数字の連番) 作業の流れ インスタンス・オーナーとなるユーザーを作成する。(UNIX/Linuxの場合) rootユーザーもしくは管理者権限でログオンする。 db2icrtコマンドにてインスタンスを作成する。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 118 3-3-2. 新規インスタンスの作成 データベース・マネージャー構成パラメーター、レジストリー変数の移行 新規にインスタンスを作成した場合、データベース・マネージャー構成パラメーター及びレ ジストリー変数はデフォルトの値となります。必要に応じて移行前環境から設定値を移行 してください。 レジストリー変数 レジストリー変数には、変数のスコープによって名称が違い、それぞれ設定方法が異なります。 – – DB2 グローバル・レベル・プロファイル・レジストリー DB2 インスタンス・レベル・プロファイル・レジストリー :該当のDB2コピー全体に対して有効 :該当のインスタンスのみに有効 移行前環境に設定されているすべてのレジストリー変数をリストするには、下記のコマンドを使用します。 – >db2set –all レジストリー変数をインスタンスレベルで設定するためには、下記のコマンドを使用します。 – >db2set [-i] <変数名>=<設定値> レジストリー変数をグローバルレベルで設定するためには、下記のコマンドを使用します。 – – >$DB2DIR/adm/db2set <変数名>=<設定値> -g グローバルレベルのレジストリー変数の設定は、rootユーザーもしくは管理者権限で実行してください。 データベース・マネージャー構成パラメーター データベース・マネージャー構成パラメーターは、インスタンスが保持する構成パラメーターです。 下記コマンドにて取得します。 – >db2 get dbm cfg 更新には、下記コマンドを使用してください。 – >db2 update dbm cfg using <変数名> <設定値> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 119 解説:レジストリー変数の設定 インスタンスレベルのレジストリー 変数は、インスタンスオーナーか ら設定 [tukiv9 /home/tukiv9]$ db2set -all [g] DB2COMM=TCPIP [tukiv9 /home/tukiv9]$ db2set DB2_SKIPDELETED=ON [tukiv9 /home/tukiv9]$ db2set -all [i] DB2_SKIPDELETED=ON [g] DB2COMM=TCPIP [tukiv9 /home/tukiv9]$ su root のパスワード: [root /]# cd /opt/IBM/db2/V9.5_01/adm [root /opt/IBM/db2/V9.5_01/adm]# ./db2set DB2_SKIPINSERTED=ON -g [root /opt/IBM/db2/V9.5_01/adm]# exit [tukiv9 /home/tukiv9]$ db2set -all [i] DB2_SKIPDELETED=ON [g] DB2_SKIPINSERTED=ON [g] DB2COMM=TCPIP ©日本IBMシステムズ・エンジニアリング(株) Information Management部 120 グローバルレベルのレジストリー 変数は、rootユーザーから設定 3-3-2. インスタンス/データベースの移行 Backup/Restoreによるデータベースの移行 このシナリオでは、データベースの移行のためBACKUP/RESTOREコマンドを使用します。 BACKUP DBコマンドの実行 BACKUP DBは、移行前のデータベースが存在するV8のインスタンスにて行います。 シナリオの考慮点でも記述しましたが、 – オフラインバックアップが必要であること – 移行後には、移行前のログは適用できないこと に注意してください。 BACKUPコマンドの実行(DISK上に取得する場合) >db2 backup db <DB名> to <BACKUP先> RESTORE DBコマンドの実行 上記のBACKUP DBコマンドにて取得したバックアップ・イメージを新規のV9.5インスタンスへリストアします。 このガイドでは、リダイレクト・リストアを使用してリストアを行います。 リストア用のコマンドは、V9からの新機能である「リダイレクト・リストア・スクリプトの生成」を使用して行いま す。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 121 参考:Redirect Restoreについて リダイレクト・リストアは、リストアの実行オプションの一つであり、リストアを実行する際に テーブルスペース・コンテナのレイアウトを変更するために使用することができます。 リダイレクトリストアの特徴 RESTORE時に表スペースのコンテナの追加・変更・削除が可能 SMS表スペースでもコンテナを増やすことが可能 DMS表スペースのコンテナのFILE<=>DEVICEの変更が可能 DMS表スペース<=>SMS表スペースの変更は不可能 異なるDB名としてリストアすることによって、同一インスタンス内にクローンDBを作成することが可能 移行のためにBackup/Restoreを使用するシナリオでは、 既存のテーブルスペース・コンテナを避けて新規の名称のコンテナにリストアするため 新規サーバへ移行する際、新しいネーミング・ルールにあわせて、コンテナの命名規則を変更するため。 新規サーバのDISK構成にあわせて物理設計を見直すため。 等、いろいろな状況で使用することが可能です。 コマンドの実行 リダイレクトリストアは、下記の3種類のコマンドを組み合わせて実行します。 >RESTORE DATABASE <DB名> …… REDIRECT >SET TABLESPACE CONTAINERS >RESTORE DATABASE <DB名> CONTINUE ©日本IBMシステムズ・エンジニアリング(株) Information Management部 122 参考:Redirect Restoreについて(続き) DB2 9からの新機能として、データベース・バックアップ・イメージから、リダイレクト リストアのためのスクリプトを生成することが可能となっています。 生成されたスクリプトを修正して使用することで、移行用のスクリプトを作成するワークロー ドを低減することが可能です。 このスクリプト生成は、DB2 V8のバックアップ・イメージに対しても実行することが可能です。 スクリプトの生成方法 スクリプトの生成にはRESTOREコマンドの「GENERATE SCRIPT」オプションを使用します。 db2 restore db <DB名> from <BACKUPディレクトリ> taken at <BACKUP取得時間> redirect generate script <出力スクリプト名> スクリプト生成の詳細については、下記の資料を参照してください。 「DB2 9新機能ワークショップ 運用管理機能強化 – バックアップ・リカバリー」 http://www.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/004D44E6 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 123 参考:Redirect Restoreについて(続き) 作成スクリプトからの抜粋 RESTORE DB xxxxx REDIRECTのセクション RESTORE DBで指定可能なオプション がコメントアウトされて記述されている。 RESTORE DATABASE MIGDB 変更したいオプションを記述後に、コメン --USER <username> トアウトを削除する。 --USING '<password>' FROM '/out0/backup' TAKEN AT 20060919000842 --DBPATH ON '<target-directory>' INTO MIGDB --NEWLOGPATH '/home/db2inst2/db2/db2inst2/NODE0000/SQL00001/SQLOGDIR/' --WITH <num-buff> BUFFERS --BUFFER <buffer-size> --REPLACE HISTORY FILE --REPLACE EXISTING REDIRECT --PARALLELISM <n> WITHOUT ROLLING FORWARD --WITHOUT PROMPTING ; *下線部は、それぞれ新規のDBディレクトリー、アクティブログディレクトリーを指定できるキーワード ©日本IBMシステムズ・エンジニアリング(株) Information Management部 124 参考:Redirect Restoreについて(続き) 作成スクリプトからの抜粋(続き) SET TABLESPACE CONTAINERSのセクション <省略> --***************************************************************************** --** Tablespace name = TS1 --** Tablespace ID = 4 --** Tablespace Type = Database managed space --** Tablespace Content Type = All permanent data. Regular table space. --** Tablespace Page size (bytes) = 4096 --** Tablespace Extent size (pages) = 32 バックアップ・イメージ中に記録された --** Using automatic storage = No コンテナー情報が記述されているため、 --** Auto-resize enabled = No リストア先DB環境でのコンテナー情報 --** Total number of pages = 65536 (名称、サイズ、数等)で書き換える。 --** Number of usable pages = 65504 --** High water mark (pages) = 62336 --***************************************************************************** SET TABLESPACE CONTAINERS FOR 4 --IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( FILE '/home/db2inst2/db2/tscont/ts1.DAT' 65536 ); RESTORE DB CONTINUEのセクション スクリプトの最後で、RESTORE --***************************************************************************** CONTINUEを発行するセクション --** start redirected restore --***************************************************************************** RESTORE DATABASE MIGDB CONTINUE; ©日本IBMシステムズ・エンジニアリング(株) Information Management部 125 3-3-2. 移行コマンドの実行例 想定する環境 DBサーバ :AIX V8インスタンス名 :db2inst2 V9インスタンス名 (新規作成) :db2inst3 データベース名 :MIGDB DB2 V8の導入パス :/usr/opt/db2_08_01/ DB2 V9.5の導入パス :/opt/IBM/db2/V9.5_01 DB2のエディション :V8/V9.5ともESE (*) DB2 9.5は、3-1の手順に従って導入済みとします。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 126 3-3-2. 移行コマンドの実行例 (続き) V8インスタンス上で、事前に「移行前タスク」を実施する。 移行前タスクの詳細は「3-2章」及び、「3-3-1章」を参照してください。 インスタンスの作成 [root /]# cd /opt/IBM/db2/V9.5_01/instance [root /opt/IBM/db2/V9.5_01/instance]# ls -l db2icrt -r-xr--r- 1 root system 8191 Jul 14 04:15 db2icrt* [root /opt/IBM/db2/V9.5_01/instance]# ./db2icrt u db2inst3 db2inst3 DBI1070I プログラム db2icrt は正常に完了しました。 [root /opt/IBM/db2/V9.5_01/instance]# su -db2inst3 $ db2level DB21085I インスタンス “db2inst3" は、"64" ビットおよび DB2 コード・リリース "SQL09050" をレベル ID "03010107" で使用します。 情報トークンは、"DB2 v9.5.0.0"、"s070917"、"AIX6495"、およびフィックスパック "0" です。 製品は "/opt/IBM/db2/V9.5_01" にインストールされます。 $ db2start 2006-09-19 00:05:22 0 0 SQL1063N DB2START の処理が正常に終了しました。 SQL1063N DB2START の処理が正常に終了しました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 127 rootユーザーでDB2 9.5の導入 パスへ移動 インスタンスの作成コマンドを実 行 DB2 9.5のインスタンスであること を確認する。 3-3-2. 移行コマンドの実行例 (続き) データベースのバックアップを取得(V8インスタンス) V8のインスタンス・オーナー (db2inst2)から実行 [db2inst2] $ db2 list application Auth Id Application Appl. Application Id DB # of Name Handle Name Agents ---------------------------------------------------------------DB2INST2 db2bp 779 *LOCAL.db2inst2.060918145802 MIGDB 1 DB2INST2 db2bp 23 *LOCAL.db2inst2.060918040638 MIGDB 1 [db2inst2] $ db2 force application all DB20000I The FORCE APPLICATION command completed successfully. DB21024I This command is asynchronous and may not be effective immediately. [db2inst2] $ db2 list application SQL1611W No data was returned by Database System Monitor. SQLSTATE=00000 [db2inst2] $ db2 deactivate db migdb DB20000I The DEACTIVATE DATABASE command completed successfully. [db2inst2] $ db2 backup db migdb to /out0/backup 移行DBへの接続がある場合、 force applicationで切断する。 接続アプリケーションが無いこと を確認する。 オフライン・バックアップを取得 Backup successful. The timestamp for this backup image is : 20060919000842 [db2inst2] $ ls -l /out0/backup/*20060919000842* -rw-r---- 1 db2inst2 staff 755179520 Sep 19 00:09 /out0/backup/MIGDB.0.db2inst2.NODE0000.CATN0000.20060919000842.001 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 128 3-3-2. 移行コマンドの実行例 (続き) リダイレクトリストアのスクリプトを作成(V9インスタンス) V9のインスタンスオーナー(db2inst3) からアクセスできることを確認 [db2inst3]$ ls -l /out0/backup/*20060919000842* -rw-r---- 1 db2inst2 staff 755179520 Sep 19 00:09 /out0/backup/MIGDB.0.db2inst2.NODE0000.CATN0000.20060919000842.001 [db2inst3]$ db2 restore db migdb from /out0/backup taken at 20060919000842 redirect generate script redirect_restore.clp DB20000I The RESTORE DATABASE command completed successfully. [db2inst3]$ ls -l redirect_restore.clp generate scriptオプション付きで -rw-r--r- 1 db2inst3 staff 9032 Sep 19 01:08 redirect_restore.clp restoreコマンドを実行し、リダイレクト・ [db2inst3]$ cat redirect_restore.clp リストアのスクリプトを作成する。 --***************************************************************************** --** automatically created redirect restore script --***************************************************************************** UPDATE COMMAND OPTIONS USING S ON Z ON MIGDB_NODE0000.out V ON; SET CLIENT ATTACH_DBPARTITIONNUM 0; SET CLIENT CONNECT_DBPARTITIONNUM 0; --***************************************************************************** --** automatically created redirect restore script 出力されたRESTOREコマンドのスクリ --***************************************************************************** プトから、必要な部分を修正する。 RESTORE DATABASE MIGDB --USER <username> --USING '<password>' FROM '/out0/backup' FROM/TAKEN ATには、スクリプト作 TAKEN AT 20060919000842 成時に与えたキーワードが埋め込まれ --DBPATH ON '<target-directory>' る。 <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 129 3-3-2. 移行コマンドの実行例 (続き) 今回の実行例での修正結果 FILE-DMS表スペースのコンテナ・ファイル 名を、db2inst3へ変更。 [db2inst3]$ cat redirect_restore.clp│egrep -v "^-" UPDATE COMMAND OPTIONS USING S ON Z ON MIGDB_NODE0000.out V ON; SET CLIENT ATTACH_DBPARTITIONNUM 0; SET CLIENT CONNECT_DBPARTITIONNUM 0; RESTORE DATABASE MIGDB DBディレクトリー、ログパス FROM '/out0/backup' をdb2inst3配下に修正 TAKEN AT 20060919000842 DBPATH ON '/home/db2inst3/db2' INTO MIGDB NEWLOGPATH '/home/db2inst3/db2/db2inst3/NODE0000/SQL00001/SQLOGDIR/' REDIRECT WITHOUT ROLLING FORWARD ; SET TABLESPACE CONTAINERS FOR 0 USING ( PATH 'SQLT0000.0' ); SET TABLESPACE CONTAINERS FOR 1 USING ( PATH '/home/db2inst3/db2/tempts/fs1' , PATH '/home/db2inst3/db2/tempts/fs2' , PATH '/home/db2inst3/db2/tempts/fs3' , PATH '/home/db2inst3/db2/tempts/fs4' ); TEMPSPACE(SMS)のパスを db2inst3配下に変更 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 130 SET TABLESPACE CONTAINERS FOR 2 USING ( PATH 'SQLT0002.0' ); SET TABLESPACE CONTAINERS FOR 3 USING ( PATH 'SYSTOOLSPACE' ); SET TABLESPACE CONTAINERS FOR 4 USING ( FILE '/home/db2inst3/db2/tscont/ts1.DAT' 65536 ); SET TABLESPACE CONTAINERS FOR 5 USING ( FILE '/home/db2inst3/db2/tscont/its1.DAT'65536 ); SET TABLESPACE CONTAINERS FOR 6 USING ( DEVICE '/dev/rlvinst3ts2' 65536 ); SET TABLESPACE CONTAINERS FOR 7 USING ( DEVICE '/dev/rlvinst3its2' 65536 ); RESTORE DATABASE MIGDB CONTINUE; RAW-DMS表スペースのコンテ ナ・ファイル名を、db2inst3へ変 更。 3-3-2. 移行コマンドの実行例 (続き) スクリプトを実行することで、RESTOREの 開始から、完了までを一貫して実行する。 リストアの実行 [db2inst3]$ db2 -tvf redirect_restore.clp UPDATE COMMAND OPTIONS USING S ON Z ON MIGDB_NODE0000.out V ON DB20000I UPDATE COMMAND OPTIONS コマンドが正常に完了しました。 <省略> REDIRECTオプションによる RESTOREの実行 RESTORE DATABASE MIGDB FROM '/out0/backup' TAKEN AT 20060919000842 DBPATH ON '/home/db2inst3/db2' INTO MIGDB NEWLOGPATH '/home/db2inst3/db2/db2inst3/NODE0000/SQL00001/SQLOGDIR/' REDIRECT WITHOUT ROLLING FORWARD SQL1277W リダイレクトされたリストア操作が実行中です。現在、表スペース構成が表示 可能であり、自動ストレージを使用しない表スペースにコンテナーを再構成できます。 DB20000I RESTORE DATABASE コマンドが正常に完了しました。 SET TABLESPACE CONTAINERS FOR 0 USING ( PATH 'SQLT0000.0' ) DB20000I SET TABLESPACE CONTAINERS コマンドが正常に完了しました。 SET TABLESPACE CONTAINERS FOR 1 USING ( PATH '/home/db2inst3/db2/tempts/fs1' , PATH '/home/db2inst3/db2/tem pts/fs2' , PATH '/home/db2inst3/db2/tempts/fs3' , PATH '/home/db2inst3/db2/tempts/fs4' ) DB20000I SET TABLESPACE CONTAINERS コマンドが正常に完了しました。 <省略> RESTOREと同時にMIGRATE処理 SET TABLESPACE CONTAINERS FOR 7 USING ( DEVICE '/dev/rlvinst3its2' 65536 ) が実行される。 DB20000I SET TABLESPACE CONTAINERS コマンドが正常に完了しました。 RESTORE DATABASE MIGDB CONTINUE SQL2517W リストアされたデータベースは現行リリースに移行されました。移行は sqlcode "0" およびトークン "" を戻しました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 131 MIGRATE成功時にはSQL2517W が戻される。 3-3-2. 移行コマンドの実行例 (続き) リストア成功の確認 [db2inst3]$ db2 list db directory システム・データベース・ディレクトリー データベース別名 データベース名 ローカル・データベース・ディレクトリー データベース・リリース・レベル コメント ディレクトリー項目タイプ <省略> = = = = = = MIGDB MIGDB /home/db2inst3/db2 b.00 MIGDBがV9.5インスタンスにカタ ログされていることを確認 間接 [db2inst3]$ db2 activate db migdb DB20000I ACTIVATE DATABASE コマンドが正常に完了しました。 [db2inst3]$ db2 connect to migdb データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 = DB2/AIX64 9.5.0 = DB2INST3 = MIGDB [db2inst3]$ db2 "select count(*) from syscat.dbauth" 1 ---------3 1 レコードが選択されました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 132 DBへの接続及び、シンプルな照会 に成功 3-3-2. 移行コマンドの実行例 (続き) リストア時の異常とその対応 MIGRATE処理が行われない リストアは完了したが、MIGRATE処理が行われなかった場合、SQL2519Nが戻されます。 下記は、コードページの違い(Ja_JPとC等)によりデータベースへの接続ができなかった 例です。(SQL1006) エラーの原因を取り除いて、手動でMIGRATEコマンドを実行してください。 RESTORE DATABASE MIGDB CONTINUE SQL2519N The database was restored but the restored database was not migrated to the current release. Error "1006" with tokens " 3 " is returned. 既に使用済みのコンテナを指定した場合 ほかのデータベースが既に使用しているコンテナに対してリストアを行おうとした場合、 SQL0294N(同じDB内の衝突の場合は、SQL0299N)が戻されます。 誤った指定であった場合はコンテナの指定を修正して、中断したステートメントから処理を 再開してください。 SET TABLESPACE CONTAINERS FOR 6 USING ( DEVICE '/dev/rlvinst3ts2' SQL0294N コンテナーはすでに使用中です。 SQLSTATE=42730 65536 ) SET TABLESPACE CONTAINERS FOR 4 USING ( FILE '/home/db2inst3/db2/tscont/ts1.DAT' 65536 ) SQL0299N コンテナーは、すでに表スペースに割り当てられています。 SQLSTATE=42731 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 133 3-3-2. 移行コマンドの実行例 (続き) リストア時の異常とその対応(続き) 既に使用済みのコンテナを指定した場合(続き) 他のデータベースから使用したコンテナを、別のデータベースから再利用する場合、 – – – SMSの場合、指定するディレクトリからDBファイルを削除してください。 FILE-DMSの場合、指定するコンテナファイルをOSコマンドで削除してください。 RAW-DMSの場合、db2untagコマンドを利用してコンテナ・タグをキャラクタデバイスから削除する。 のいずれかを行ってください。 重要 いずれの場合も、そのコンテナを元々使用していたデータベースからは、テーブルスペー スへのアクセスが不可能になり、格納されていたデータは失われます。 既存のコンテナを指定するのは、元々そのコンテナを使用していたデータベースを削除し た後となるよう、留意してください。 db2untagコマンドの使用方法 $ db2untag -f /dev/rlvinst3ts2 <省略> WARNING: This tool should only be used by informed sysadmins. version = 213 db seed = 96338921 poolID = 6 contID = 0 created = 0 used = 0 poolLSN = 0000 0102 EAAE CSum = 2B87964D <省略> Container tag has been removed successfully. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 134 3-3-2. 移行コマンドの実行例 (続き) リストア時の異常とその対応(続き) エラーで中断したスクリプトを、途中から再開したい。 リダイレクト・リストアのスクリプトは、コマンドにエラーが発生した場合、その時点で処理を 中断する設定となっています。 (スクリプト1行目の「UPDATE COMMAND OPTIONS USING S ON」) 中断したスクリプトを再度開始するためには、下記のようにしてください。 RESTOREを開始したセッションが、まだ残っている場合。 – 3行目の「SET CLIENT CONNECT_DBPARTITIONNUM」ステートメント及び、 – 4行目以降の「RESTORE DB xxxxx REDIRECT」ステートメント をコメントアウトして、「SET TABLESPACE CONTAINERS」ステートメントから再実行してく ださい。同じテーブルスペースに対して「SET TABLESPACE CONTAINERS」ステートメント を複数回実行することは、特に問題ありません。 コメントアウトする部分 コメントアウト対象 UPDATE COMMAND OPTIONS USING S ON Z ON MIGDB_NODE0000.out V ON; SET CLIENT ATTACH_DBPARTITIONNUM 0; --SET CLIENT CONNECT_DBPARTITIONNUM 0; --RESTORE DATABASE MIGDB --FROM '/out0/backup' --TAKEN AT 20060919000842 --DBPATH ON '/home/db2inst3/db2' --INTO MIGDB --NEWLOGPATH '/home/db2inst3/db2/actlog' --REDIRECT --WITHOUT ROLLING FORWARD --; ©日本IBMシステムズ・エンジニアリング(株) Information Management部 135 3-3-2. 移行コマンドの実行例 (続き) リストア時の異常とその対応(続き) エラーで中断したスクリプトを、途中から再開したい。(続き) RESTOREを開始したセッションが、終了している場合。 RESTOREを開始したセッションが残っていない場合は、エラーが発生した部分を修正して 再度スクリプトを実行してください。 再実行する際に特別な作業は特に必要ありません。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 136 3-3-2. 移行コマンドの実行例 (続き) リストア時の異常とその対応(続き) 一度開始したRESTOREセッションを終了したい。 terminateコマンドを繰り返し実行してセッションを終了させてください。 セッション終了後に、リストア途中のデータベースを削除することも可能です。 リストアが途中まで進行していた場合、テーブルスペースコンテナにタグ情報が残る場合 があります。この場合は、前述の方法を参照して削除してください。 RESTOREセッションの終了方法 $ db2 terminate SQL1350N アプリケーションが、この要求を処理するための正しい状態ではありません。 理由コード = "3"。 $ db2 terminate DB20000I TERMINATE コマンドが正常に完了しました。 一度、terminateコマンドがエラーを $ db2 drop db migdb 返すので、再度terminateコマンドを DB20000I DROP DATABASE コマンドが正常に完了しました。 実行する。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 137 3-3-3. データ移動ユーティリティによる移行 同一インスタンスで移行 Backup/Restore使用 Export/LOADを使用 (ケース1) (ケース2/3) (ケース2/3) 2-2章 移行シナリオの決定 3-1章 DB2 9.5のインストール 3-2-1章 移行前タスクの実施 3-3-1章 インスタン スの移行(db2imigr) 3-3-2章 インスタン スの作成(db2icrt) 3-3-3章 インスタン スの作成(db2icrt) 3-3-3章 データベー ス作成(create db) 3-3-3章 オブジェクト 作成 3-3-1章 データベース の移行(migrate db) 3-3-2章 DBバックアッ プ取得(backup db) 3-3-3章 移行データの 抽出(EXPORTコマンド) 3-3-2章 DBのリストア (restore db) 3-3-3章 移行データの 投入(LOADコマンド) 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 138 3-3-3. データ移動ユーティリティによる移行 この節では、データ移動ユーティリティを使用して、同一サーバ上 もしくは新規サーバ上の、新しいインスタンスへ移行する際の作業 の流れを説明します。 この移行シナリオの特徴 V8の既存インスタンスは保存し、新規のインスタンスへ移行する。 データ移動ユーティリティを使用して、データの移行を行う。 移行元となるDB2のバージョンに依存せず移行可能。 DBサーバ(現行) DBサーバ(同一もしくは新規) V9.5インスタンス(新規) 移行前インスタンス db2look CREATE DDL MIGDB EXPORT UserExit、外部モジュール等 移行データ ©日本IBMシステムズ・エンジニアリング(株) Information Management部 139 新規DB LOAD 3-3-3. データ移動ユーティリティによる移行 共通の移行前タスクの実施 * 「共通の移行タスク」については、3-2-1章を参照してください。 新規インスタンス/DBの作成 移行オブジェクトの作成 移行データの抽出と投入 移行後タスクの実施 * 「移行後のタスク」については、3-2-2章を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 140 3-3-3. データ移動ユーティリティによる移行 共通の移行前タスクの実施 * 「共通の移行タスク」については、3-2-1章を参照してください。 新規インスタンス/DBの作成 移行オブジェクトの作成 移行データの抽出と投入 移行後タスクの実施 * 「移行後のタスク」については、3-2-2章を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 141 3-3-3. 新規インスタンス/DBの作成 新規インスタンスの作成 新規インスタンスの作成については、「3-3-2. 新規インスタンスの作成」を参照してください。 新規データベースの作成 移行データを格納するためのデータベースを新規に作成してください。 下記の項目については、データベース作成時点で決定しておく必要があります。デフォルトの 設定から変更する必要がある場合はデータベースの作成コマンドで指定してください。 データベースのCodeset、Teritorry、Collate データベース・ディレクトリー システムカタログ表スペース システム一次表スペース(手動にて作り直しが可能) アクティブログディレクトリ(DB構成パラメーターより変更可能) 自動ストレージを使用するかどうか(バージョン9, 9.5では、デフォルトでON) – – – 自動ストレージを使用する場合、システムカタログ表スペースはDMSで作成されます。 自動ストレージを使用しない場合は、これまでと同様SMSで作成されます。 自動ストレージ使用の有無は、データベース作成のタイミングで決定する必要があり、データベース作成後に切 り替えることはできません。 実行コマンド db2 create database <DB名> <DB作成オプションを指定> DB作成オプションについては多岐にわたるため、DB2 Information Centerを参照してください。 – http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0001941.ht ml ©日本IBMシステムズ・エンジニアリング(株) Information Management部 142 3-3-3. 新規インスタンス/DBの作成(続き) レジストリー変数、構成パラメータの移行 DB2の観点から移行すべきパラメータとしては、下記の3種類が存在します。 レジストリー変数 データベース・マネージャー構成パラメーター データベース構成パラメーター レジストリー変数及び、データベース・マネージャー構成パラメーターについては、「3-3-2 新規インスタンス の作成」を参照してください。 データベース構成パラメーターの移行 データ移動ユーティリティを使用して移行した場合、データベース構成パラメーターは移行されません。 移行先サーバのシステム構成にあわせてメモリー関連パラメータの設計見直し等を行った上で、必要な項目 の移行を行ってください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 143 3-3-3. データ移動ユーティリティによる移行 共通の移行前タスクの実施 * 「共通の移行タスク」については、3-2-1章を参照してください。 新規インスタンス/DBの作成 移行オブジェクトの作成 移行データの抽出と投入 移行後タスクの実施 * 「移行後のタスク」については、3-2-2章を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 144 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 145 3-3-3. 移行オブジェクトの作成 移行すべきオブジェクトの特定とDDLの取得について データ移動ユーティリティによって移行を行う場合、データベース内に存在するオブジェ クトの移行は手動で行う必要があります。 移行の対象となるオブジェクトのDDLは、db2lookコマンドで取得可能です。 db2lookでDDLを取得可能なオブジェクトは、DB2のバージョンによって異なります。詳細は次ページの 解説を参照してください。 db2lookでDDLを取得できないオブジェクトは、システムカタログ表等を参照して手動でDDLを作成する 必要があります。 実行コマンド例 DBオブジェクトのDDLを取得する – > db2look -d migdb -a -e -td % -o db2look.e.log 表スペース、バッファープール、データベース・パーティション・グループ作成用のDDLを取得 – > db2look -d migdb -l -o db2look.l.log GRANTステートメント等権限関連のステートメントを取得 – > db2look -d migdb -a -xd -o db2look.xd.log 実行コマンドの注意点 データベース・オブジェクトを取得するdb2lookのステートメントでは、トリガーやルーティンに「;(セミコロ ン)」が含まれる場合があるため、ここでは「%」をセパレータとして使用しています。「%」をセパレータと して取得したDDLは、下記のように実行します。 – > db2 –td% -vf db2look.e.log – セパレータとしては、移行する環境のDDLに含まれない文字を選定してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 146 db2lookでDDLを取得可能かどうか ○ :取得可能 × :取得不可能(手動作成要) − :該当バージョンに存在しない 解説:オブジェクトの取得方法一覧 オブジェクト種別 取得コマンド DB2バージョン 備考 V9.5 V9 V8.2 V8.1 V7 V6 データベース なし × × × × × × 表 db2look -e ○ ○ ○ ○ ○ ○ ビュー db2look -e ○ ○ ○ ○ ○ ○ マテリアライズ照会表 (MQT) or AST db2look -e ○ ○ ○ ○ ○ ○ 別名 db2look -e ○ ○ ○ ○ ○ ○ 索引 db2look -e ○ ○ ○ ○ ○ ○ トリガー db2look -e ○ ○ ○ ○ ○ × シーケンス db2look -e ○ ○ ○ ○ ○ - ユーザー定義特殊タイプ db2look -e ○ ○ ○ ○ ○ ○ 主キー、参照保全、およびチェック制約 db2look -e ○ ○ ○ ○ ○ ○ ユーザー定義構造化タイプ db2look -e ○ ○ ○ ○ ○ × ユーザー定義関数 db2look -e ○ ○ ○ ○ ○ × ユーザー定義メソッド db2look -e ○ ○ ○ ○ ○ - ユーザー定義トランスフォーム db2look -e ○ ○ ○ ○ ○ - ラッパー db2look -e ○ ○ ○ ○ × × サーバー db2look -e ○ ○ ○ ○ × × AUTHORIZATION/PASSWORDは修正する必要あり ユーザー・マッピング db2look -e ○ ○ ○ ○ × × PASSWORDは修正する必要あり ニックネーム db2look -e ○ ○ ○ ○ × × タイプ・マッピング db2look -e ○ ○ ○ ○ × × 関数テンプレート db2look -e ○ ○ ○ ○ × × 関数マッピング db2look -e ○ ○ ○ ○ × × 索引の指定 db2look -e ○ ○ ○ ○ × × ストアード・プロシージャー db2look -e ○ ○ ○ × × × 権限設定ステートメント db2look -xd ○ ○ ○ ○ × × 表スペース db2look -l ○ ○ ○ ○ ○ ○ バッファープール db2look -l ○ ○ ○ ○ ○ ○ データベースパーティション・グループ db2look -l ○ ○ ○ ○ ○ ○ × ×147 × × × × なし イベントモニター ©日本IBMシステムズ・エンジニアリング(株) Information Management部 CREATE DBステートメントを手動で作成 外部モジュールは別途移動が必要 CREATE EVENT MONITORステートメントを手動作成 3-3-3. 移行オブジェクトの作成 オブジェクト移行についての考慮点 シーケンスオブジェクトの値を保持したい場合、START WITHキーワードで指定してください。 UDFが外部ルーチンである場合、バイナリファイル(外部モジュール)の移行が必要です。CREATE FUNCTIONステートメントの実行時には、EXTERNALオプションで指定した外部モジュールが存在し なくてもUDFの作成自体は可能ですが、UDFが実行される時点では、UDFが参照する外部モジュー ルが存在しなければなりません。 サーバー、ユーザーマッピング作成の際に必要なAUTHORIZATION/PASSWORDはdb2lookで作成 されるDDLに含まれません。手動で修正する必要があります。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 148 3-3-3. 移行オブジェクトの作成 移行先環境でのオブジェクト作成 移行先環境でのオブジェクト作成は、下記の手順で実施します。 各種DBリソース用のファイルシステム、RAW-DMSコンテナ用のドライブ、LV等を作成する。 インスタンス、データベースを作成する テーブルスペース、バッファープールを作成する。(db2look –lの出力) テーブル、ビュー等のデータベースオブジェクトを生成する。(db2look –eの出力) 権限設定ステートメントを実行する。(db2look –xdの出力) コマンドの実行 db2 –tvf <DDL格納ファイル> オブジェクト作成時の考慮点 物理構成の変更に対応 – 移行元環境で実行した「db2look –l」コマンドの出力は、移行後の環境の物理構成とは異なる可能性が あります。テーブルスペースのコンテナ情報や、バッファープールサイズについては、移行先の環境に 合わせて見直しを行ってください。 db2lookの出力に含まれるスキーマ設定は、必要に応じて変更してください。 – – – – データベースオブジェクトを作成する際、スキーマを明示的に宣言しなかった場合、インスタンスオー ナーのユーザーIDが暗黙的に使用されます。 db2lookコマンドから出力されるCREATEステートメントには、暗黙的に設定されたスキーマ(ユーザー ID)が明示的に付加されます。 スキーマが指定されていない場合の、暗黙的なユーザーIDの付加は、アプリケーションからのSQLアク セスの場合も同様です。 そのため、移行先環境でユーザーIDが変更された場合、アプリケーションから発行されるSQLに対して 暗黙的に付加されるスキーマと、db2lookの出力で明示的に付加されたスキーマが不一致を起こす可 能性があります。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 149 3-3-3. データ移動ユーティリティによる移行 共通の移行前タスクの実施 * 「共通の移行タスク」については、3-2-1章を参照してください。 新規インスタンス/DBの作成 移行オブジェクトの作成 移行データの抽出と投入 移行後タスクの実施 * 「移行後のタスク」については、3-2-2章を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 150 3-3-3. 移行データの抽出と投入 EXPORTによる移行データの抽出 移行元環境からのデータ抽出にはEXPORTを使用します。 db2lookにより出力されたテーブルのCREATEステートメントを参照し、データ 抽出の漏れが発生しないよう注意してください。 テーブルから全件を抽出する場合のコマンドの実行 >db2 export to <EXPORT先> OF <EXPORT形式> select * from <TABLE名称> EXPORT形式にはDEL(文字区切り)、IXFが使用可能です。 IXF形式を利用した場合、IMPORT中にテーブルの作成が可能ですが、当ガイドでは LOADを使用することを前提としているため、データの可読性の観点からDEL形式での EXPORTを紹介します。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 151 3-3-3. 移行データの抽出と投入(続き) EXPORTによる移行データの抽出(続き) ラージオブジェクト(LOB)の抽出について 移行前のデータベースに保持されているオブジェクトとしてLOBが存在する場合、 EXPORTの際に考慮点があります。 LOBのExport方法 – LOBを含む表の抽出を行う際は、EXPORTコマンドを下記のように指定してください。 – >db2 export to <EXPORT先> OF <EXPORT形式> LOBS TO <LOB出力先ディレクトリ> LOBFILE <LOBファイル名> modified by lobsinfile select * from <TABLE名称> >>-EXPORT TO--filename--OF--filetype-------------------------> >--+----------------------+-+---------------------+--------> │ .-,-------. │ │ .-,--------. │ │ V ││ │ V ││ '-LOBS TO----lob-path-+-' '-LOBFILE---filename-+-' >--+-----------------------------+-------------------------> │ .-------------. │ │ V ││ '-MODIFIED BY---filetype-mod-+-' ©日本IBMシステムズ・エンジニアリング(株) Information Management部 152 3-3-3. 移行データの抽出と投入(続き) EXPORTによる移行データの抽出(続き) ラージオブジェクト(LOB)の抽出について(続き) 「LOB出力先ディレクトリ」及び、「LOBファイル名」は複数指定可能です。 – – – – DB2 V8のEXPORTコマンドに与えたLOBファイル名一つに付き、「<LOBファイル名>.nnn」の形 式で000∼999まで999個のファイルが作成可能です。EXPORTコマンドに与えることができる LOBファイル名の上限は999であるため、1回のEXPORTコマンドで出力可能なLOBファイルの 数は、約100万個(999 x 999)です。 DB2 V7のFP7以降では複数のLOBオブジェクトが一つのLOBファイル中に含まれるため、上 記の制約は大きくありませんが、FP6以前のバージョンでは一つのLOBオブジェクトに付き一 つのLOBファイルが生成されます。一括してEXPORT可能なLOBオブジェクト数の上限に注意 してください。 ただし、V7のFP7およびFP8では、出力先のLOBファイル・サイズが2GBを超えた時点でエラー を出力して停止するという障害があります。そのため、下記のような回避策を行う必要があり ます。 LOBファイル出力先のパスを複数指定し、各パスのファイルシステムのサイズを2GB より小さくすることで、この障害の発生条件を回避する。(パスが一杯になった時点で 次の出力パスへ切り替えるため、2GBに達しない)。 V7のFP9以降を適用してからデータ抽出を行う。 レジストリー変数DB2_LOAD_OLD_LOBFILESをONに設定して、FP6までと同様の動き に変更する。 詳細については、「DB2 V8.1 運用管理ガイド データ移動ユーティリティ」のEXPORTコマンドの 部分を参照してください。 http://www.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/001DC824 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 153 3-3-3. 移行データの抽出と投入(続き) LOADによる移行データの投入 一般的に、LOADによるデータ投入はIMPORTと比較して大幅に高速であるた め、当ガイドではLOADによるデータ投入を前提として記述します。 コマンドの実行 load from <LOADファイル名> of <ファイル形式> replace into <テーブル名>; 初期移行を想定しているため、LOADの動作モードは「REPLACE」としています。 ラージオブジェクト(LOB)の投入について ラージオブジェクトを含むテーブルにLOADを行う場合、下記のようなオプションを追加して ください。 load from <LOADファイル名> of <ファイル形式> LOBS FROM <LOBファイル格納ディレクトリ> modified by lobsinfile replace into <テーブル名>; ©日本IBMシステムズ・エンジニアリング(株) Information Management部 154 3-3-3. 移行データの抽出と投入(続き) IMPORTコマンドによる表の作成を行う場合の考慮点 IXF形式のファイル・フォーマットを使用してIMPORTする場合、「CREATE」もしくは 「CREATE_REPLACE」オプションを使用して表の作成を一括して行うことが可能で す。 ただし、下記のような制約事項があるため、IMPORTコマンドによる表の作成を行 う際には注意してください。 EXPORT時に列を指定することはできない。(「SELECT *」によるEXPORTのみ可能) ビュー、トリガー、エイリアス、表に関連するシーケンス・オブジェクト等は作成されない。 格納されていた表スペース、MDCの次元列、分散キーなど物理編成に関連する項目は引き 継がれない。 参照制約、チェック制約、LOBオプション、生成列オプション等は保存されない。 下記のマニュアルに、保存される属性と保存されない属性について詳細な記載がありますの で、参照してください。 – DB2 Information Center インポート表の再作成 – http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.dm.doc/doc/c0004580. html その他IMPORTの考慮点 IMPORTコマンドはSQLによるデータ投入を行うため、表にトリガーが作成されている場合、 投入される行ごとにトリガーが起動されます。 – トリガーの起動がデータの整合性に問題となったり、IMPORT性能の劣化につながる可能性 があるため、データ投入後にトリガーを作成するか、LOADによるデータ投入をお勧めします。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 155 3-3-3. 移行コマンドの実行例 想定する環境 DBサーバ :AIX V7インスタンス名 :tukiv7 V9インスタンス名 (新規作成) :db2inst4 データベース名 :SAMPLE DB2 V7の導入パス :/usr/lpp/db2_07_01/ DB2 V9.5の導入パス :/opt/IBM/db2/V9.5 DB2のエディション :V7はEE、V9.5はESE (*) DB2 9.5は、3-1の手順に従って導入済みとします。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 156 3-3-3. 移行コマンドの実行例(続き) 移行前環境での作業 db2lookでオブジェクトの構成情報 を取得する。 [tukiv7 /home/tukiv7]$ db2look -d sample -l o db2look.l.log % ユーザー ID が指定されていません。db2look は環境変数 USER の使用を試行します % USER は次の通りです: TUKIV7 [tukiv7 /home/tukiv7]$ db2look -d sample -a e -td % -o db2look.e.log % すべての作成者に統計を生成する % 表の DDL の作成 % 出力がファイルに送信されます: db2look.e.log [tukiv7 /home/tukiv7]$ ls l db2look* -rw-r--r- 1 tukiv7 sys 6579 Sep 29 11:48 db2look.e.log -rw-r--r- 1 tukiv7 sys 1039 Sep 29 11:47 db2look.l.log [tukiv7 /home/tukiv7]$ head -30 db2look.l.log CONNECT TO SAMPLE; 移行前環境の構成情報が出力され るため、移行後の環境に合わせて 修正が必要。 --------------------------------TABLESPACES の DDL ステートメント -------------------------------- CREATE REGULAR TABLESPACE TS1 IN NODEGROUP IBMDEFAULTGROUP PAGESIZE 4096 MANAGED BY DATABASE USING (FILE '/home/tukiv7/work/tscont/ts1.dat'76800) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL IBMDEFAULTBP OVERHEAD 24.100000 TRANSFERRATE 0.900000; <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 157 3-3-3. 移行コマンドの実行例(続き) 移行前環境での作業 db2lookの出力から、EXPORT処 理用のステートメントを作成 [tukiv7 /home/tukiv7/work]$ cat export.clp connect to sample; export to ./export/BLOB1.del of del LOBS TO ./export/BLOB1.lobs/ LOBFILE blob11 ,blob12 modified by lobsinfile select * from TUKIV7.BLOB1; export to ./export/CL_SCHED.del of del select * from TUKIV7.CL_SCHED; export to ./export/DEPARTMENT.del of del select * from TUKIV7.DEPARTMENT; export to ./export/EMP_ACT.del of del select * from TUKIV7.EMP_ACT; export to ./export/EMP_PHOTO.del of del LOBS TO ./export/EMP_PHOTO.lobs/ LOBFILE emp_photo.1 ,emp_photo.2 modified by lobsinfile select * from TUKIV7.EMP_PHOTO; export to ./export/EMP_RESUME.del of del LOBS TO ./export/EMP_RESUME.lobs/ LOBFILE emp_resume.1 ,emp_resume.2 modified by lobsinfile select * from TUKIV7.EMP_RESUME; export to ./export/EMPLOYEE.del of del select * from TUKIV7.EMPLOYEE; export to ./export/IN_TRAY.del of del select * from TUKIV7.IN_TRAY; export to ./export/ORG.del of del select * from TUKIV7.ORG; export to ./export/PROJECT.del of del select * from TUKIV7.PROJECT; export to ./export/SALES.del of del select * from TUKIV7.SALES; export to ./export/STAFF.del of del select * from TUKIV7.STAFF; export to ./export/STAFFG.del of del select * from TUKIV7.STAFFG; export to ./export/T1.del of del select * from TUKIV7.T1; export to ./export/T2.del of del select * from TUKIV7.T2; ©日本IBMシステムズ・エンジニアリング(株) Information Management部 158 ラージオブジェクト(LOB)を含む テーブルには、LOB TO、LOBFILE、 modefied by lobsinfileの三つの キーワードを追加。 3-3-3. 移行コマンドの実行例(続き) 移行前環境での作業 EXPORTステートメントを実行 [tukiv7 /home/tukiv7/work]$ db2 tvf export.clp connect to sample データベース接続情報 データベース・サーバー = DB2/6000 7.2.9 SQL 権限 ID = TUKIV7 ローカル・データベース別名 = SAMPLE export to ./export/BLOB1.del of del LOBS TO ./export/BLOB1.lobs/ LOBFILE blob11 ,blob12 modified by lobsin file select * from TUKIV7.BLOB1 SQL3104N エクスポート・ユーティリティーが、ファイル "./export/BLOB1.del" への データのエクスポートを開始しています。 「エクスポートされた行数」を、テー ブルのSELECT COUNT(*)の結果 と比較する。 SQL3105N エクスポート・ユーティリティーが、"1998" 行のエクスポートを終了しました。 エクスポートされた行数: 1998 export to ./export/CL_SCHED.del of del select * from TUKIV7.CL_SCHED SQL3104N エクスポート・ユーティリティーが、ファイル "./export/CL_SCHED.del" への データのエクスポートを開始しています。 SQL3105N エクスポート・ユーティリティーが、"0" 行のエクスポートを終了しました。 エクスポートされた行数: 0 <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 159 3-3-3. 移行コマンドの実行例(続き) 移行前環境での作業 [tukiv7 /home/tukiv7/work]$ ls -l export 合計 90008 -rw-r--r- 1 tukiv7 staff 58657 Sep 29 drwxr-xrx 2 tukiv7 staff 256 Sep 29 -rw-r--r- 1 tukiv7 staff 0 Sep 29 -rw-r--r- 1 tukiv7 staff 374 Sep 29 -rw-r--r- 1 tukiv7 staff 3729 Sep 29 -rw-r--r- 1 tukiv7 staff 3547 Sep 29 -rw-r--r- 1 tukiv7 staff 569 Sep 29 drwxr-xrx 2 tukiv7 staff 256 Sep 29 -rw-r--r- 1 tukiv7 staff 378 Sep 29 drwxr-xrx 2 tukiv7 staff 256 Sep 29 <省略> -rw-r--r- 1 tukiv7 staff 27070881 Sep 29 -rw-r--r- 1 tukiv7 staff 18900663 Sep 29 [tukiv7 /home/tukiv7/work]$ ls -l export/*.lobs export/BLOB1.lobs: 合計 2000 -rw-r--r- 1 tukiv7 staff 1022976 Sep 29 export/EMP_PHOTO.lobs: 合計 1272 -rw-r--r- 1 tukiv7 staff export/EMP_RESUME.lobs: 合計 24 -rw-r---- 1 tukiv7 staff EXPORTディレクトリを確認 12:16 10:59 12:16 12:16 12:16 12:16 12:16 11:08 12:16 12:16 BLOB1.del BLOB1.lobs CL_SCHED.del DEPARTMENT.del EMPLOYEE.del EMP_ACT.del EMP_PHOTO.del EMP_PHOTO.lobs EMP_RESUME.del EMP_RESUME.lobs 12:16 T1.del 12:16 T2.del 12:16 blob11.001 647939 Sep 29 12:16 emp_photo.1.001 12061 Sep 29 12:16 emp_resume.1.001 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 ラージオブジェクトは、サブディレク トリに格納 160 今回のテストでは、テーブル中の全 ラージオブジェクトが1ファイルに格 納された。 3-3-3. 移行コマンドの実行例(続き) 移行前環境での作業 [tukiv7 /home/tukiv7/work]$ chmod [tukiv7 /home/tukiv7/work]$ ls -l 合計 90000 -rw-r--r- 1 tukiv7 staff drwxr-xrx 2 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff drwxr-xrx 2 tukiv7 staff -rw-r--r- 1 tukiv7 staff drwxr-xrx 2 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff -rw-r--r- 1 tukiv7 staff 移行先インスタンスから出力ファイ ルを参照できるよう、READ権限を 追加。 -R o+r export/* export 58657 256 0 374 3729 3547 569 256 378 256 0 326 1541 1308 1516 2032 27070881 18900663 Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep ©日本IBMシステムズ・エンジニアリング(株) Information Management部 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 12:16 10:59 12:16 12:16 12:16 12:16 12:16 11:08 12:16 12:16 12:16 12:16 12:16 12:16 12:16 12:16 12:16 12:16 BLOB1.del BLOB1.lobs CL_SCHED.del DEPARTMENT.del EMPLOYEE.del EMP_ACT.del EMP_PHOTO.del EMP_PHOTO.lobs EMP_RESUME.del EMP_RESUME.lobs IN_TRAY.del ORG.del PROJECT.del SALES.del STAFF.del STAFFG.del T1.del T2.del 161 3-3-3. 移行コマンドの実行例(続き) 移行先環境での作業(インスタンス、データベースの作成) # cd /opt/IBM/db2/V9.5/instance # ls -l db2icrt -r-xr--r- 1 root system # ./db2icrt -u db2inst4 db2inst4 DBI1070I プログラム db2icrt は正常に完了しました。 rootユーザーからdb2icrtコマンド を実行し、インスタンスを作成 8191 Jul 13 14:15 db2icrt # su -db2inst4 [db2inst4 /home/db2inst4]$ db2level DB21085I インスタンス "db2inst4" は、"64" ビットおよび DB2 コード・リリース "SQL09050" をレベル ID "03010107" で使用します。 情報トークンは、"DB2 v9.5.0.0"、"s070917"、"AIX6495"、およびフィックスパック "0" です。 製品は "/opt/IBM/db2/V9.5" にインストールされます。 [db2inst4 /home/db2inst4]$ db2start 2006-09-29 11:46:03 0 0 SQL1063N DB2START の処理が正常に終了しました。 SQL1063N DB2START の処理が正常に終了しました。 [db2inst4 /home/db2inst4]$ cat create.db.clp !mkdir /home/db2inst4/work/dbpath; create db sample on /home/db2inst4/work/dbpath; [db2inst4 /home/db2inst4]$ db2 -tvf create.db.clp !mkdir /home/db2inst4/work/dbpath create db sample on /home/db2inst4/work/dbpath DB20000I CREATE DATABASE コマンドが正常に完了しました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 162 データベースを作成 3-3-3. 移行コマンドの実行例(続き) 移行先環境での作業(バッファープール、テーブルスペースの作成) [db2inst4 /home/db2inst4]$ cd work [db2inst4 /home/db2inst4/work]$ cat db2look.l.log <省略> CREATE REGULAR TABLESPACE TS1 IN NODEGROUP IBMDEFAULTGROUP PAGESIZE 4096 MANAGED BY DATABASE USING (FILE '/home/db2inst4/work/tscont/ts1.dat'76800) EXTENTSIZE 32 移行前環境で取得したテーブルス PREFETCHSIZE 32 ペースDDLを元に、移行先環境に BUFFERPOOL IBMDEFAULTBP 合わせて修正 OVERHEAD 24.100000 TRANSFERRATE 0.900000; <省略> [db2inst4 /home/db2inst4/work]$ db2 -tvf db2look.l.log <省略> CREATE REGULAR TABLESPACE TS1 IN NODEGROUP IBMDEFAULTGROUP PAGESIZE 4096 MANAGED BY DATABASE USING (FILE '/home /db2inst4/work/tscont/ts1.dat'76800) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL IBMDEFAULTBP OVERHEAD 24.100000 T RANSFERRATE 0.900000 DB20000I SQL コマンドが正常に完了しました。 <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 163 3-3-3. 移行コマンドの実行例(続き) 移行先環境での作業(オブジェクト作成DDLの確認) [db2inst4 /home/db2inst4/work]$ cat db2look.e.log <省略> --別名の DDL ステートメント CREATE ALIAS "DB2INST4 セパレータとして「%」を使用 "."ALIAST1" FOR "DB2INST4 "."T1"% ------------------------------シーケンスの DDL ステートメント ----------------------------CREATE SEQUENCE "DB2INST4 "."SEQ1" AS INTEGER MINVALUE 10000 MAXVALUE 2147483647 START WITH 10000 INCREMENT BY 1 CACHE 20 NO CYCLE NO ORDER% 移行先のインスタンス名にあわせて スキーマ名を変更 「tukiv7 => db2inst4」 ------------------------------------------表の DDL ステートメント "DB2INST4 "."ORG" ----------------------------------------CREATE TABLE "DB2INST4 "."ORG" ( "DEPTNUMB" SMALLINT NOT NULL , "DEPTNAME" VARCHAR(14) , "MANAGER" SMALLINT , "DIVISION" VARCHAR(10) , "LOCATION" VARCHAR(13) ) IN "USERSPACE1" % <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 164 3-3-3. 移行コマンドの実行例(続き) 移行先環境での作業(オブジェクトの作成) [db2inst4 /home/db2inst4/work]$ db2 -td% -vf db2look.e.log <省略> 「%」をセパレータとして解釈するよ うに、「d%」オプションを追加 CREATE ALIAS "DB2INST4 "."ALIAST1" FOR "DB2INST4 "."T1" SQL0403W 新しく定義された別名 "DB2INST4.ALIAST1" は、現在、未定義のオブジェクト "DB2INST4.T1" によって解決されています。 SQLSTATE=01522 CREATE SEQUENCE "DB2INST4 "."SEQ1" AS INTEGER MINVALUE 10000 MAXVALUE 2147483647 START WITH 10000 INCREMENT BY 1 CACHE 20 NO CYCLE NO ORDER DB20000I SQL コマンドが正常に完了しました。 CREATE TABLE "DB2INST4 "."ORG" ( "DEPTNUMB" SMALLINT NOT NULL , "DEPTNAME" VARCHAR(14) , "MANAGER" SMALLINT , "DIVISION" VARCHAR(10) , "LOCATION" VARCHAR(13) ) IN "USERSPACE1" DB20000I SQL コマンドが正常に完了しました。 CREATE TABLE "DB2INST4 "."STAFF" ( "ID" SMALLINT NOT NULL , "NAME" VARCHAR(9) , "DEPT" SMALLINT , "JOB" CHAR( 5) , "YEARS" SMALLINT , "SALARY" DECIMAL(7,2) , "COMM" DECIMAL(7,2) ) IN "USERSPACE1" DB20000I SQL コマンドが正常に完了しました。 CREATE TABLE "DB2INST4 "."STAFFG" ( "ID" SMALLINT NOT NULL , "NAME" VARGRAPHIC(9) , "DEPT" SMALLINT , "JOB" G RAPHIC(5) , "YEARS" SMALLINT , "SALARY" DECIMAL(9,0) , "COMM" DECIMAL(9,0) ) IN "USERSPACE1" DB20000I SQL コマンドが正常に完了しました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 165 3-3-3. 移行コマンドの実行例(続き) 移行先環境での作業(オブジェクトの作成を確認) [db2inst4 /home/db2inst4/work]$ db2 list tables Table/View Schema Type Creation time ----------------------------------------------------------------ALIAST1 DB2INST4 A 2006-09-29-11.54.18.375184 BLOB1 DB2INST4 T 2006-09-29-11.54.31.434692 CL_SCHED DB2INST4 T 2006-09-29-11.54.28.633776 DEPARTMENT DB2INST4 T 2006-09-29-11.54.21.278742 EMP_ACT DB2INST4 T 2006-09-29-11.54.22.489670 EMP_PHOTO DB2INST4 T 2006-09-29-11.54.23.652853 EMP_RESUME DB2INST4 T 2006-09-29-11.54.25.918875 EMPLOYEE DB2INST4 T 2006-09-29-11.54.21.817601 IN_TRAY DB2INST4 T 2006-09-29-11.54.29.276117 ORG DB2INST4 T 2006-09-29-11.54.18.454797 PROJECT DB2INST4 T 2006-09-29-11.54.22.969237 SALES DB2INST4 T 2006-09-29-11.54.28.160641 STAFF DB2INST4 T 2006-09-29-11.54.20.056241 STAFFG DB2INST4 T 2006-09-29-11.54.20.744622 T1 DB2INST4 T 2006-09-29-11.54.29.779141 T2 DB2INST4 T 2006-09-29-11.54.30.720358 VIEWT1 DB2INST4 V 2006-09-29-11.54.33.047042 17 レコードが選択されました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 166 3-3-3. 移行コマンドの実行例(続き) 移行先環境での作業(LOADステートメントの確認) [db2inst4 /home/db2inst4/work]$ cat load.clp connect to sample; load from /home/tukiv7/work/export/BLOB1.del of del LOBS FROM /home/tukiv7/work/export/BLOB1.lobs/ modified by lobsinfile replace into db2inst4.BLOB1; load from /home/tukiv7/work/export/CL_SCHED.del of del replace into db2inst4.CL_SCHED; load from /home/tukiv7/work/export/DEPARTMENT.del of del replace into db2inst4.DEPARTMENT; load from /home/tukiv7/work/export/EMP_ACT.del of del replace into db2inst4.EMP_ACT; load from /home/tukiv7/work/export/EMP_PHOTO.del of del LOBS FROM /home/tukiv7/work/export/EMP_PHOTO.lobs/ modified by lobsinfile replace into db2inst4.EMP_PHOTO; load from /home/tukiv7/work/export/EMP_RESUME.del of del LOBS FROM /home/tukiv7/work/export/EMP_RESUME.lobs/ modified by lobsinfile replace into db2inst4.EMP_RESUME; load from /home/tukiv7/work/export/EMPLOYEE.del of del replace into db2inst4.EMPLOYEE; load from /home/tukiv7/work/export/IN_TRAY.del of del replace into db2inst4.IN_TRAY; load from /home/tukiv7/work/export/ORG.del of del replace into db2inst4.ORG; load from /home/tukiv7/work/export/PROJECT.del of del replace into db2inst4.PROJECT; load from /home/tukiv7/work/export/SALES.del of del replace into db2inst4.SALES; load from /home/tukiv7/work/export/STAFF.del of del replace into db2inst4.STAFF; load from /home/tukiv7/work/export/STAFFG.del of del replace into db2inst4.STAFFG; load from /home/tukiv7/work/export/T1.del of del replace into db2inst4.T1; load from /home/tukiv7/work/export/T2.del of del replace into db2inst4.T2; ©日本IBMシステムズ・エンジニアリング(株) Information Management部 167 ラージオブジェクトを含むテーブ ルは、LOBS FROM、modied by lobsinfileオプションを追加。 3-3-3. 移行コマンドの実行例(続き) 移行先環境での作業(LOADの実施) [db2inst4 /home/db2inst4/work]$ db2 -tvf load.clp <省略> load from /home/tukiv7/work/export/BLOB1.del of del LOBS FROM /home/tukiv7/work/export/BLOB1.lobs/ modifie d by lobsinfile replace into db2inst4.BLOB1 SQL3501W 順方向リカバリーがデータベースに対して使用できないため、表が存在する表 スペースが、バックアップ・ペンディング状態に置かれません。 SQL3109N ユーティリティーが、ファイル "/home/tukiv7/work/export/BLOB1.del" からデータのロードを開始しています。 SQL3500W ユーティリティーが "2006-09-29 12:22:07.123029" に "LOAD" フェーズを開始しています。 SQL3519W ロード整合点が開始されました。入力レコード・カウント = "0"。 SQL3520W ロード整合点が成功しました。 SQL3110N ユーティリティーが処理を完了しました。 "1998" 行が、入力ファイルから読み取られました。 SQL3519W ロード整合点が開始されました。入力レコード・カウント = "1998"。 SQL3520W ロード整合点が成功しました。 SQL3515W ユーティリティーは、"2006-0929 12:22:07.794094" に "LOAD" フェーズを完了しました。 読み込まれた行数 スキップされた行数 ロードされた行数 拒否された行数 削除された行数 コミットされた行数 <省略> = = = = = = EXPORTされた行数とLOADさ れた行数が等しいことを確認 1998 0 1998 0 0 1998 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 168 3-3-3. 参考:db2moveを利用した移行 db2moveを使用した移行について db2moveは、指定したデータベースに属する表のデータを一括してEXPORT、 IMPORT/LOADすることが可能なツールです。 EXPORT/LOADのステートメントを手動で作成する場合と比較して、制約や考 慮点はありますが、表や索引の数が多い環境ではワークロードの低減が可能 なケースがあるため、参考として紹介します。 db2moveを使用した場合の作業の流れ db2moveを使用した場合に代替可能なのは、「移行データの抽出と投入」のス テップです。 次ページの考慮点に記載した理由から、多くのケースでは事前にオブジェクト を作成しておく必要があります。 そのため、db2moveを使用するケースについても、LOADでの実行ケースを紹介します。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 169 3-3-3. 参考:db2moveを利用した移行(続き) db2moveを使用する場合の考慮点 db2moveで移行できるオブジェクトについての制約 IMPORTモードで、表の作成を使用する場合、自動作成可能なのは表と索引のみです。 それ以外のオブジェクトは手動で作成する必要があります。 また、LOADモードを使用する際は、LOAD先の表を事前に作成する必要があります。 IMPORTモードによる表の作成を使用する場合の考慮点 – 表を作成する表スペースが指定できない。 db2moveは、V9から追加された「コピーモード」以外では、表を移行する先の表スペースを指 定することはできません。コピーモードを使用するためにはソース、ターゲット両方のデータ ベースがV9以上である必要があるため、V9への移行に使用することはできません。 – 表と索引のみが作成され、ビュー、別名、トリガー、シーケンスオブジェクト等は作成さ れない。 – IXFファイルのインポートに伴う制約(「3-3-3. IMPORTコマンドによる表の作成を行う場 合の考慮点」参照)は、db2moveでも同様に発生する。 – 表、索引のスキーマ名を変更する場合、db2move.lstを修正する必要がある。 デフォルトでは、移行前環境のスキーマがdb2move.lstに格納され、そのスキーマで作成され ます。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 170 3-3-3. 参考:db2moveを利用した移行(続き) db2moveを使用する場合の考慮点(続き) ラージ・オブジェクトについて db2moveを使用した場合、使用可能なLOBファイル名は約26000個(26x999個)までです。 DB2 V7 FP6以前のDB2から移行する場合、1LOBファイル名に付き1LOBオブジェクトしか格 納できないため、26000個を超えるLOBオブジェクトが一つのテーブル内に存在している場合、 db2moveは使用できません。EXPORTコマンドを使用してください。 また、DB2 V7 FP7およびFP8では、複数のLOBオブジェクトが一つのLOBファイルに格納され るため、26000個を超えるLOBオブジェクトを抽出可能ですが、出力先のLOBファイル・サイズ が2GBを超えた時点でエラーを出力して抽出が停止してしまう障害があります。 – そのため、DB2 V7 FP7/8で、1テーブルあたりのLOBオブジェクト数が26000個を超え、かつ 合計サイズが2GBを超える場合も、やはりEXPORTコマンドを使用する必要があります。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 171 3-3-3. 参考:db2moveを利用した移行(続き) コマンドの実行例 実行例は、EXPORT/LOADによる移行と同様の環境です。 移行先環境でのオブジェクトの作成は、前述のページを参照して実施してください。 LOAD対象の表、その他のオブジェクトは作成済みであることを前提とします。 [tukiv7 /home/tukiv7]$ mkdir db2move [tukiv7 /home/tukiv7]$ chmod 777 db2move [tukiv7 /home/tukiv7]$ cd db2move [tukiv7 /home/tukiv7/db2move]$ mkdir lobs [tukiv7 /home/tukiv7/db2move]$ chmod 777 lobs [tukiv7 /home/tukiv7/db2move]$ ls -la 合計 24 drwxrwxrwx 3 tukiv7 sys 1024 Oct 13 03:46 . drwxr-sr-x 9 tukiv7 sys 512 Oct 13 03:37 .. drwxrwxrwx 2 tukiv7 staff 512 Oct 13 03:46 lobs ©日本IBMシステムズ・エンジニアリング(株) Information Management部 172 移行先インスタンスからアクセス できるよう、ディレクトリの権限を 設定 3-3-3. 参考:db2moveを利用した移行(続き) db2moveによるEXPORT [tukiv7 /home/tukiv7/db2move]$ db2move sample export -l lobs ***** DB2MOVE ***** Action: EXPORT Start time: Fri Oct 13 03:46:47 2006 移行元データベースからデータを EXPORT。LOBは「-l」オプション で「lobs」ディレクトリへ格納 Connecting to database SAMPLE ... successful! Server: DB2 Common Server V7.2.9 EXPORT: 8 rows from EXPORT: 35 rows from EXPORT: 35 rows from EXPORT: 9 rows from EXPORT: 32 rows from EXPORT: 75 rows from EXPORT: 20 rows from EXPORT: 12 rows from EXPORT: 8 rows from EXPORT: 41 rows from EXPORT: 0 rows from EXPORT: 0 rows from EXPORT: 300001 rows from EXPORT: 300000 rows from EXPORT: 1998 rows from table table table table table table table table table table table table table table table "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 "TUKIV7 必要なテーブルがすべて EXPORTされていること、 EXPORTされた件数が、各テー ブルのSELECT COUNT(*)の結 果と一致することを確認。 "."ORG" "."STAFF" "."STAFFG" "."DEPARTMENT" "."EMPLOYEE" "."EMP_ACT" "."PROJECT" "."EMP_PHOTO" "."EMP_RESUME" "."SALES" "."CL_SCHED" "."IN_TRAY" "."T1" "."T2" "."BLOB1" Disconnecting from database ... successful! End time: Fri Oct 13 03:47:00 2006 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 173 3-3-3. 参考:db2moveを利用した移行(続き) 抽出データの権限設定 [tukiv7 /home/tukiv7/db2move]$ ls -l 合計 112304 -rw-r--r-rw-r--rdrwxr-xrx -rw-r--r-rw-r----rw-r----rw-r----rw-r---<省略> 1 1 2 1 1 1 1 1 tukiv7 tukiv7 tukiv7 tukiv7 tukiv7 tukiv7 tukiv7 tukiv7 staff staff staff staff staff staff staff staff 974 657 512 0 6602 193 8079 195 Oct Oct Oct Oct Oct Oct Oct Oct 13 13 13 13 13 13 13 13 03:47 03:47 03:47 03:46 03:46 03:46 03:46 03:46 EXPORT.out db2move.lst lobs system.msg tab1.ixf tab1.msg tab10.ixf tab10.msg [tukiv7 /home/tukiv7/db2move]$ chmod -R og+wr * [tukiv7 /home/tukiv7/db2move]$ ls -l 合計 112320 -rw-rw-rw-rw-r--r-rw-rw-rwdrwxrwxrwx -rw-rw-rw-rw-rw-rw-rw-rw-rw-rw-rw-rw-rw-rw-rw<省略> 1 1 1 2 1 1 1 1 1 tukiv7 db2inst4 tukiv7 tukiv7 tukiv7 tukiv7 tukiv7 tukiv7 tukiv7 staff staff staff staff staff staff staff staff staff 974 4837 689 512 0 6602 193 8079 195 Oct Oct Oct Oct Oct Oct Oct Oct Oct ©日本IBMシステムズ・エンジニアリング(株) Information Management部 13 13 13 13 13 13 13 13 13 03:47 03:51 03:50 03:47 03:46 03:46 03:46 03:46 03:46 EXPORT.out LOAD.out db2move.lst lobs system.msg tab1.ixf tab1.msg tab10.ixf tab10.msg 174 LOADを行うユーザーから、デー タファイルに対してREAD権限が、 メッセージファイルに対して READ/WRITE権限が必要である ため、権限を付与。 3-3-3. 参考:db2moveを利用した移行(続き) db2move.lstファイルの修正 [tukiv7 /home/tukiv7/db2move]$ su -db2inst4 db2inst4 のパスワード: [db2inst4 /home/db2inst4]$ cd /home/tukiv7/db2move [db2inst4 /home/tukiv7/db2move]$ cat db2move.lst !"DB2INST4 "."ORG"!tab1.ixf!tab1.msg! !"DB2INST4 "."STAFF"!tab2.ixf!tab2.msg! !"DB2INST4 "."STAFFG"!tab3.ixf!tab3.msg! !"DB2INST4 "."DEPARTMENT"!tab4.ixf!tab4.msg! !"DB2INST4 "."EMPLOYEE"!tab5.ixf!tab5.msg! !"DB2INST4 "."EMP_ACT"!tab6.ixf!tab6.msg! !"DB2INST4 "."PROJECT"!tab7.ixf!tab7.msg! !"DB2INST4 "."EMP_PHOTO"!tab8.ixf!tab8.msg! !"DB2INST4 "."EMP_RESUME"!tab9.ixf!tab9.msg! !"DB2INST4 "."SALES"!tab10.ixf!tab10.msg! !"DB2INST4 "."CL_SCHED"!tab11.ixf!tab11.msg! !"DB2INST4 "."IN_TRAY"!tab12.ixf!tab12.msg! !"DB2INST4 "."T1"!tab13.ixf!tab13.msg! !"DB2INST4 "."T2"!tab14.ixf!tab14.msg! !"DB2INST4 "."BLOB1"!tab15.ixf!tab15.msg! ©日本IBMシステムズ・エンジニアリング(株) Information Management部 移行先のインスタンスにあわせて 表のスキーマを事前に変更して おく。 tukiv7 => db2inst4 175 3-3-3. 参考:db2moveを利用した移行(続き) db2moveを使用したLOAD [db2inst4 /home/tukiv7/db2move]$ db2move sample load -l lobs Application code page not determined, using ANSI codepage 943 ***** DB2MOVE Action: ***** LOAD Start time: Fri Oct 13 03:52:40 2006 Connecting to database SAMPLE ... successful! * LOAD: table "DB2INST4 -Rows read: 8 -Loaded: 8 -Rejected: 0 -Deleted: 0 -Committed: 8 <省略> * LOAD: table "DB2INST4 -Rows read: 1998 -Loaded: 1998 -Rejected: 0 -Deleted: 0 -Committed: 1998 Server : DB2 Common Server V9.1.0 "."ORG" 必要なテーブルがすべてLOADさ れていること、LOADされた件数 が、EXPORTされた件数と一致し ていることを確認。 "."BLOB1" Disconnecting from database ... successful! End time: Fri Oct 13 03:53:13 2006 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 176 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 177 4. フォールバックのシナリオについて フォールバックについて バージョン9.5への移行後に、DB2提供のユーティリティ等を使用して移行元の バージョンに逆移行することはできません。 そのため、バックアップからのリストアを前提としてフォールバックを計画する必 要があります。 DB2の観点から、回復を計画する必要があるリソース DB2製品コード :システムバックアップのリストアにより復旧 インスタンス、外部ファイル :システムバックアップのリストアにより復旧 :共有ディスクに配置されている場合は、インスタンスホームの バックアップからのリストア あるいは インスタンスの再作成 データベース :データベースのリストアにより復旧 DB2クライアント :旧バージョンの再導入と、接続構成定義の適用により復旧 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 178 4. フォールバックのシナリオについて 移行シナリオに応じて、回復が必要なリソースを確認する。 前ページに記載したすべてのリソースの回復が必ずしも必要となるわけではなく、 例えば新規インスタンスを作成し、データベースを新規インスタンスへの Backup/Resotreして移行した場合、インスタンスや外部ファイルの回復は必要あ りません。(旧インスタンスが保管できる場合) どのリソースの復旧が必要になるかは、下記の表を参照してください。 各リソースの復旧が必要かどうか DB2製品 コード インスタンス データベース DB2クライアント 既存のインスタンスを移行 *1 あり あり *3 同一サーバ上の新規インスタンスへ移行 (移行前環境のDB、DBコンテナは削除) *1 必要なし(*2) あり *3 同一サーバ上の新規インスタンスへ移行 (移行前環境のDB、DBコンテナは保存) *1 必要なし(*2) 必要なし(*2) *3 新規サーバへ移行 必要なし 必要なし 必要なし *3 (*1) V9.5と旧バージョンで製品コードの共存が不可の場合、復旧が必要 Windows :移行前のDB2バージョンがV8の場合共存可能。V7以前の場合共存不可能 Windows以外 :バージョンを問わず共存可能 (*2) 製品コードの共存ができない場合は、復旧の必要あり。 (*3) 製品コードの共存が可能かどうかはサーバ(*1)と同様。DB2クライアントについては、 選択した移行シナリオに関わらず、構成変更を行った場合は復旧が必要。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 179 4. フォールバックのシナリオについて DB2製品コード、インスタンス、外部ファイルの復旧について 復旧作業に必要な時間を短縮するため、これらのリソースの復旧には、システムバッ クアップ あるいは インスタンスホームのバックアップからのリストアを使用すること をお勧めします。 何らかの理由でシステムバックアップのリストアが難しい場合、下記のような手順でイ ンスタンスを復旧することが可能です。 バージョン9.5のデータベース、インスタンスを削除する。 バージョン9.5の製品コードをアンインストール(製品コードの共存が不可能な場合) 移行元バージョンの製品コードを再導入(製品コードの共存が不可能な場合) db2icrtコマンドを使用して、移行前のインスタンスを再作成 移行前に取得したレジストリー変数、データベース・マネージャー構成パラメーターを再度設定 USERESITやストアドプロシージャー等外部ファイルを復旧 (後続作業のデータベースリストアを実施) データベースの復旧について データベースの復旧にはRESTORE DATABASEコマンドを使用してください。 フラッシュコピーによるバックアップ運用を行っている場合、フラッシュコピーのコピー バックによる復旧も可能です。その場合はバックアップ運用構築時に確立した復旧手 順に従って復旧を行ってください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 180 4. フォールバックのシナリオについて DB2クライアントの復旧について DB2サーバの復旧を行った場合、DB2クライアントについても移行前のバージョ ンに復旧してください。 DB2クライアントの復旧は、下記の手順で実施可能です。 Windowsプラットフォームの場合 – バージョン9.5のDB2クライアント製品コードをアンインストールする。(製品コードの共存が不可能な場 合) – 移行前バージョンのDB2クライアントをインストールする。 (製品コードの共存が不可能な場合) – db2cfimpコマンドを使用して、移行前に取得した接続構成定義ファイルをインポートする。 クライアントの接続定義、構成パラメーターが復旧される。 取得手順は「5-1. クライアントの移行」を参照してください。 Linux/UNIXプラットフォームの場合 – 復旧対象のクライアント・インスタンスを削除する。 – 移行元バージョンのクライアント・インスタンスを作成する。 – db2cfimpコマンドを使用して、移行前に取得した接続構成定義ファイルをインポートする。 クライアントの接続定義、構成パラメーターが復旧される。 取得手順は「5-1. クライアントの移行」を参照してください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 181 解説. サーバ・インスタンスの戻し作業コマンド実行例 コマンド実行例 インスタンスの戻し作業(システムバックアップを使用しないケースについて) [db2inst2@kotatsu /home/db2inst2]$ db2level DB21085I インスタンス "db2inst2" は、"64" ビットおよび DB2 コード・リリース "SQL09050" をレベル ID "03010107" で使用します。 情報トークンは、"DB2 v9.5.0.0"、"s070917"、"AIX6495"、およびフィックスパック "0" です。 製品は "/opt/IBM/db2/V9.5_01" にインストールされます。 作業前のバージョンはV9.5 [db2inst2@kotatsu /home/db2inst2]$ db2 list db directory システム・データベース・ディレクトリー データベース別名 データベース名 ローカル・データベース・ディレクトリー データベース・リリース・レベル コメント ディレクトリー項目タイプ カタログ・データベース・パーティション番号 代替サーバー・ホスト名 代替サーバーのポート番号 = MIGDB = MIGDB = /home/db2inst2 = b.00 = = 間接 = 0 = = [db2inst2@kotatsu /home/db2inst2]$ db2 drop db migdb DB20000I DROP DATABASE コマンドが正常に完了しました。 [db2inst2@kotatsu /home/db2inst2]$ db2stop 2006-10-30 11:53:44 0 0 SQL1064N DB2STOP の処理が正常に終了しました。 SQL1064N DB2STOP の処理が正常に終了しました。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 182 バージョン9.5へ移行したDBは削 除(V8時点のDBバックアップをリス トアするため) 解説. サーバ・インスタンスの戻し作業コマンド実行例(続き) コマンド実行例(続き) [db2inst2 /home/db2inst2]$ su root のパスワード: root:/# cd /opt/IBM/db2/V9.5_01/instance root:/opt/IBM/db2/V9.5_01/instance# ./db2idrop db2inst2 DBI1070I プログラム db2idrop は正常に完了しました。 root:/opt/IBM/db2/V9.5_01/instance# cd /usr/opt/db2_08_01/instance root:/usr/opt/db2_08_01/instance# ./db2icrt -u db2inst2 db2inst2 DBI1070I Program db2icrt completed successfully. V9.5インスタンスを削除 同じユーザーにV8インスタンスを再 作成 V8インスタンスが再作成されたこと root:/usr/opt/db2_08_01/instance# su -db2inst2 を確認 [db2inst2 /home/db2inst2]$ db2level DB21085I Instance "db2inst2" uses "32" bits and DB2 code release "SQL08020" with level identifier "03010106". Informational tokens are "DB2 v8.1.1.64", "s040812", "U498350", and FixPak "7". Product is installed at "/usr/opt/db2_08_01". [db2inst2 /home/db2inst2]$ db2start 2006-10-30 11:57:58 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 183 解説. サーバ・インスタンスの戻し作業コマンド実行例(続き) コマンド実行例(続き) [db2inst2 /home/db2inst2]$ ls -l /out0/backup/backup.dbm.cfg -rw-r--r-- 1 db2inst2 staff 258 Oct 30 16:17 /out0/backup/backup.dbm.cfg [db2inst2 /home/db2inst2]$ cat /out0/backup/backup.dbm.cfg update dbm cfg using MON_HEAP_SZ 2048; 移行前の設定事項をあらかじめ待 避しておき、V8インスタンスの新規 update dbm cfg using SHEAPTHRES 50000; 作成後に適用する。 update dbm cfg using MAXAGENTS 100; update dbm cfg using NUM_POOLAGENTS 100; update dbm cfg using NUM_INITAGENTS 100; update dbm cfg using SVCENAME 60067; 正常に適用されたことを確認 [db2inst2 /home/db2inst2]$ db2 -tvf /out0/backup/backup.dbm.cfg update dbm cfg using MON_HEAP_SZ 2048 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. update dbm cfg using SHEAPTHRES 50000 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. update dbm cfg using MAXAGENTS 100 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. update dbm cfg using NUM_POOLAGENTS 100 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. update dbm cfg using NUM_INITAGENTS 100 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. update dbm cfg using SVCENAME 60067 DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. ©日本IBMシステムズ・エンジニアリング(株) Information Management部 184 解説. サーバ・インスタンスの戻し作業コマンド実行例(続き) コマンド実行例(続き) インスタンスを新規作成したため、 ディレクトリー情報は空。 [db2inst2 /home/db2inst2]$ db2 list db directory SQL1031N The database directory cannot be found on the indicated file system. SQLSTATE=58031 [db2inst2 /home/db2inst2]$ ls -l /out0/backup 合計 3487592 -rw-r----- 1 db2inst2 staff 755179520 Sep 19 00:09 MIGDB.0.db2inst2.NODE0000.CATN0000.20060919000842.001 -rw-r--r-- 1 db2inst2 staff 403897 Sep 13 17:46 db2support.zip [db2inst2 /home/db2inst2]$ db2 restore db migdb from /out0/backup taken at 20060919000842 DB20000I The RESTORE DATABASE command completed successfully. [db2inst2 /home/db2inst2]$ db2 list db directory 移行前に取得したオフライン・バック アップからリストアを実行 System Database Directory Database 1 entry: Database alias Database name Local database directory Database release level Comment Directory entry type Catalog database partition number Alternate server hostname Alternate server port number = = = = = = = = = MIGDB MIGDB /home/db2inst2 a.00 Indirect 0 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 185 MIGDBのディレクトリー情報が復旧 解説. サーバ・インスタンスの戻し作業コマンド実行例(続き) Rollforward Pendingのため、ま だ接続は不可能 コマンド実行例(続き) [db2inst2 /home/db2inst2]$ db2 connect to migdb SQL1117N A connection to or activation of database "MIGDB" cannot be made because of ROLL-FORWARD PENDING. SQLSTATE=57019 [db2inst2 /home/db2inst2]$ db2 rollforward db migdb complete Rollforward Status Input database alias Number of nodes have returned status = migdb = 1 Node number Rollforward status Next log file to be read Log files processed Last committed transaction = = = = = 0 not pending S0000009.LOG -S0000010.LOG 2006-09-18-14.24.43.000000 DB20000I The ROLLFORWARD command completed successfully. [db2inst2 /home/db2inst2]$ db2 connect to migdb Database Connection Information Database server SQL authorization ID Local database alias ここではオフライン・バックアップか らのリストアのため、Rollforward せずにComplete = DB2/6000 8.2.0 = DB2INST2 = MIGDB ©日本IBMシステムズ・エンジニアリング(株) Information Management部 186 正常な接続の完了を確認 解説. DB2クライアントの戻し作業コマンド実行例 コマンド実行例 クライアントの戻し作業(AIXの場合) [tukiv7 /home/tukiv7]$ db2level DB21085I インスタンス “tukiv7" は、"64" ビットおよび DB2 コード・リリース "SQL09050" をレベル ID "03010107" で使用します。 情報トークンは、"DB2 v9.5.0.0"、"s071001"、"AIX6495"、およびフィックスパック "0" です。 製品は "/opt/IBM/db2/V9.5" にインストールされています。 [tukiv7 /home/tukiv7]$ su root のパスワード: [root /]# cd /opt/IBM/db2/V9.5/instance [root /opt/IBM/db2/V9.5/instance]# ./db2idrop tukiv7 DBI1070I プログラム db2idrop は正常に完了しました。 バージョン9.5に移行済みのクライア ント・インスタンスを、移行前バー ジョン(この場合はV7)へ復旧する。 V9へ移行したインスタンスは削除す る。 [root /opt/IBM/db2/V9.5/instance]# cd /usr/lpp/db2_07_01/instance [root /usr/lpp/db2_07_01/instance]# ./db2icrt -s client -u tukiv7 tukiv7 DBI1070I プログラム db2icrt は正常に完了しました。 移行前インスタンスのdb2icrtを使 用してクライアント・インスタンスを作 成する。 [root /usr/lpp/db2_07_01/instance]# su -tukiv7 [tukiv7 /home/tukiv7]$ db2level DB21085I インスタンス "tukiv7" は、レベル ID "03070105" および通知トークン "DB2 v7.1.0.75"、"s021110" および "U484610" を指定して、 DB2 コード・リリース "SQL07026" を使用します。 移行前バージョンのクライアント・イ ンスタンスが再作成された。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 187 解説. DB2クライアントの戻し作業コマンド実行例(続き) コマンド実行例 [tukiv7 /home/tukiv7]$ db2 list node directory SQL1027N ノード・ディレクトリーが見つかりません。 [tukiv7 /home/tukiv7]$ db2 list db directory SQL1031N 指定されたファイル・システムには、データベース・ ディレクトリーが見つかりません。 SQLSTATE=58031 [tukiv7 /home/tukiv7]$ db2cfimp db2client.before.cfg [tukiv7 /home/tukiv7]$ db2 list db directory システム・データベース・ディレクトリー データベース別名 = データベース名 = ノード名 = データベース・リリース・レベル = コメント = ディレクトリー項目タイプ = カタログ・ノード番号 = [tukiv7 /home/tukiv7]$ db2 list db directory システム・データベース・ディレクトリー データベース別名 データベース名 ノード名 データベース・リリース・レベル コメント ディレクトリー項目タイプ カタログ・ノード番号 = = = = = = = db2cfimpコマンドを使用して移行 前構成ファイルの設定をインポート ノード・カタログ、DBカタログとも復 旧された。 V8DB SAMPLE KOTATSU 9.00 リモート -1 V8DB SAMPLE KOTATSU 9.00 リモート -1 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 新規作成したため、ノード・カタログ、 DBカタログとも空の状態。 188 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 189 5. その他 この章では下記の項目について記述します。 5-1.DB2クライアントの移行 5-2.オンライン・バックアップ・イメージからの移行 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 190 5-1. DB2クライアントの移行 クライアント移行の方針 移行計画をシンプルにするためには、DB2サーバと同期してDB2クライアントを移行 してください。この場合、異なるバージョン間の接続を考慮する必要はありません。 しかし、DB2サーバと同期してクライアント移行を行うことが難しい場合、DB2サーバ が先行して移行されるように、移行シナリオを検討してください。 DB2サーバを先行して移行する形態の場合、現在のDB2クライアントがバージョン 9.5のDB2サーバと接続可能かどうかを『DB2 V8からV9.5へうまく移行するためのガ イド』の「サポートされるクライアント・サーバー構成一覧」で確認してください。 移行すべきエディションの選定 バージョン9より、クライアントの種別が下記のように変更になっています。 現在使用しているクライアントの種別に応じて、移行先のバージョン9.5クライアント を決定してください。 目的 DB2 V8のクライアント種別 DB2 9の該当するクライアント DB2 9.5の該当するクライアント データベース管理 DB2 Administration Client DB2 Client IBM Data Server Client アプリケーション開発 DB2 Application Development Client ランタイム環境 DB2 Run-Time Client DB2 Runtime Client IBM Data Server Runtime Client ランタイム環境(軽量) DB2 Run-Time Client Lite ODBC/CLIドライバのみ必要 N/A DB2 Driver for ODBC and CLI IBM Data Server Driver for ODBC and CLI ©日本IBMシステムズ・エンジニアリング(株) Information Management部 191 5-1. DB2クライアントの移行(続き) 移行の方法について DB2クライアントの移行には下記の2方法があります。 現行のクライアント・インスタンスをそのまま移行する方法 この形態がサポートされるのは、移行元のDB2クライアントがバージョン8の場合のみです。 これは、DB2サーバの移行処理サポート対象と同様です。 バージョン9.5のクライアント・インスタンスを新規作成する方法 V7以前のDB2クライアントからの移行を行う場合はこの方法を使用する必要があります。 構成パラメーターや接続構成情報を手動で移行する必要があります。 当ガイドでは、 バージョンを問わず移行が可能な点 現行インスタンスを移行する場合と比較して、それほど手順が増加しない点 から、実行例としてはインスタンスを新規作成して移行する方法を記述します。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 192 5-1. DB2クライアントの移行(続き) 現行クライアント・インスタンスの移行処理による移行 移行の手順 移行対象サーバへDB2 9.5のクライアントをインストールする。 クライアント・インスタンスを停止する。 rootユーザーもしくは管理者権限でログオンする。 db2imigrコマンドを使用してクライアント・インスタンスをバージョン9へ移行する。 インスタンスオーナーからクライアント・インスタンスを開始する。 「DB2クライアントの移行後タスク」を実施する。 クライアント・インスタンスの移行処理について クライアント・インスタンスに対しても、インスタンス移行を行う場合はdb2imigrコマンドを使用 します。 インスタンスの移行を行う場合は、「3-3-1. 同一インスタンスでの移行」のdb2imigrコマンド実 行方法を参考として実施してください。 DB2クライアントの移行後タスクについて 下記2点の作業を行います。 DB2 バージョン 9からは、NetBIOS プロトコル及び、SNA プロトコルをサポートしなくなりまし た。移行前の環境でこの二つのプロトコルを使用していた場合は、TCP/IPによるカタログへ 移行してください。 db2imigrコマンドの処理中にカタログ情報の移行が行われますが、移行されたカタログ情報 が正常かどうかを確認するため、DB2サーバへの接続確認を行ってください。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 193 5-1. DB2クライアントの移行(続き) 新規クライアント・インスタンスの作成による移行 移行の手順 移行対象サーバへDB2 9.5のクライアントをインストールする。 移行前バージョンのクライアント・インスタンスより構成情報を取得する。 – 接続構成情報 – データベース・マネージャー構成パラメーター クライアント・インスタンスを停止する。 移行前バージョンのクライアント・インスタンスを削除する。 新規のクライアント・インスタンスを作成する。 事前に取得した構成情報を、新規インスタンスへ設定する。 「DB2クライアントの移行後タスク」を実施する。 移行元バージョンのDB2クライアントをアンインストールする。 クライアント・インスタンスの構成情報取得について DB2クライアントの構成情報は、db2cfexpコマンドで一括して取得可能です。 実行コマンド – db2cfexp <出力ファイル名称> backup 取得した構成情報を、新規インスタンスに設定するためにはdb2cfimpコマンドを使用します。 – db2cfimp <db2cfexpで出力したファイル名> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 194 5-1. DB2クライアントの移行(続き) 新規クライアント・インスタンスの作成による移行(続き) 新規のクライアント・インスタンス作成について クライアント・インスタンス作成のためには、db2icrtを使用します。 db2icrtコマンドは、rootユーザーもしくは管理者権限で実行します。 UNIX/Linuxの場合 – – – > $DB2DIR/instance/db2icrt –s client -u <fencedユーザーID> <インスタンス名> -p :TCP/IPによる接続を使用する場合のサービス名/ポート番号を指定 -u :fenced ユーザー定義関数および fenced ストアード・プロシージャーを実行するユーザー ID の 名前を指定します。サーバインスタンスを作成する際は、必須オプションです。 Windowsの場合 – > $DB2DIR¥instance¥db2icrt –s client <インスタンス名> $DB2DIRは、DB2 9.5の導入パスです。デフォルトの導入パスは下記の通りです。 – – – UNIXの場合 Linuxの場合 Windowsの場合 :/opt/IBM/db2/V9.5 :/opt/ibm/db2/V9.5 :Program Files¥IBM¥sqllib_XX (XXは数字の連番) ©日本IBMシステムズ・エンジニアリング(株) Information Management部 195 解説 クライアントの移行 コマンド実行例AIX編 DB2クライアントの移行(AIX編) ここでは、DB2 V7.2のRuntime Clientから、バージョン9.5のRuntime Clientへ移行 する場合のコマンド実行例を紹介します。 移行元バージョンはV7.2 $ db2level DB21085I インスタンス "tukiv7cl" は、レベル ID "030A0105" および通知トークン "DB2 v7.1.0.98"、"s040510" および "U497037" を指定して、 DB2 コード・リリース "SQL07029" を使用します。 $ db2cfexp db2client.before.cfg backup -rw-r---- 1 tukiv7cl staff 900 Sep 28 15:29 db2client.before.cfg $ cat db2client.before.cfg ;Use BINARY file transfer [FILE_DESCRIPTION] APPLICATION=DB2/6000 7.2.9 FILE_CONTENT=DB2 CCA Exported Data Sources FILE_TYPE=CommonServer FILE_FORMAT_VERSION=2.0 Platform=4 DB2SYSTEM= Instance=tukiv7cl <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 196 移行元の構成パラメーター、カタロ グ情報を出力 解説 クライアントの移行 コマンド実行例AIX編(続き) 移行元のカタログ情報を確認 $ db2 list node directory ノード・ディレクトリー ノード 1 項目 : ノード名 コメント ノード名 ホスト名 サービス名 $ db2 list db directory システム・データベース・ディレクトリー データベース 1 項目 : データベース別名 データベース名 ノード名 データベース・リリース・レベル コメント ディレクトリー項目タイプ カタログ・ノード番号 = = = = = KOTATSU = = = = = = = SAMPLE SAMPLE KOTATSU 9.00 TCPIP 9.188.198.30 60042 リモート -1 $ db2 get dbm cfg データベース・マネージャー構成 ノード・タイプ データベース・マネージャー構成リリース・レベル 連合データベース・システム・サポート トランザクション・プロセッサー・モニター名 デフォルトのチャージ・バック・アカウント <省略> ©日本IBMシステムズ・エンジニアリング(株) Information Management部 = クライアント = 0x0900 (FEDERATED) = YES (TP_MON_NAME) = (DFT_ACCOUNT_STR) = 197 解説 クライアントの移行 コマンド実行例AIX編(続き) $ db2stop SQL1064N DB2STOP の処理が正常に終了しました。 $ su root のパスワード: # cd /usr/lpp/db2_07_01/instance # ls -l db2idrop -r-xr--r- 1 bin bin 4568 Apr 17 2001 # ./db2idrop tukiv7cl DBI1070I プログラム db2idrop は正常に完了しました。 移行元バージョンのdb2idropを使 用してクライアント・インスタンスを削 除 db2idrop # cd /opt/IBM/db2/V9.5/instance # ls -l db2icrt -r-xr--r- 1 root system 8191 Jul 13 14:15 db2icrt # ./db2icrt -s client -u tukiv7cl tukiv7cl DBI1070I プログラム db2icrt は正常に完了しました。 # su -tukiv7cl $ db2level DB21085I インスタンス “tukiv7cl" は、"64" ビットおよび DB2 コード・リリース "SQL09050" をレベル ID "03010107" で使用します。 情報トークンは、"DB2 v9.5.0.0"、"s071001"、"AIX6495"、およびフィックスパック "0" です。 製品は "/opt/IBM/db2/V9.5" にインストールされます。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 198 DB2 9.5のディレクトリに移動して db2icrtを実行 「-s client」オプションを使用して、ク ライアント・インスタンスを作成 バージョン9.5のインスタンスである ことを確認 解説 クライアントの移行 コマンド実行例AIX編(続き) $ db2 list db directory SQL1031N 指定されたファイル・システムには、データベース・ディレクトリーが見か りません。 SQLSTATE=58031 $ ls -l *cfg -rw-r---- 1 tukiv7cl staff 900 Sep 28 15:29 db2client.before.cfg $ db2cfimp db2client.before.cfg $ db2 list db directory インスタンスを新規作成したため、 カタログ情報は存在しない。 db2cfimpコマンドを使用してカタロ グ情報、構成パラメーターを設定 システム・データベース・ディレクトリー データベース 1 項目: データベース別名 データベース名 ノード名 データベース・リリース・レベル コメント ディレクトリー項目タイプ カタログ・データベース・パーティション番号 代替サーバー・ホスト名 代替サーバーのポート番号 = SAMPLE = SAMPLE = KOTATSU = b.00 = = リモート = -1 = = 接続の成功を確認 $ db2 connect to sample user tukiv9 using PASSWORD データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 カタログ情報が復旧していることを 確認 = DB2/AIX64 9.5.0 = TUKIV9 = SAMPLE 199 解説 クライアントの移行 コマンド実行例Windows編 DB2クライアントの移行(Windows編) Windowsプラットフォームでも、作業の流れ自体はAIXプラットフォームと変わらな いため、ここではWindowsプラットフォームに特有の項目について記述します。 Windowsプラットフォームでは、インストールの際デフォルトでインスタンスが作成されます。 そのため、インストール後に手動でインスタンスを作成する必要はありません。 V7以前のDB2クライアントが導入されている環境に、バージョン9.5のDB2クライアントを導入 する場合、バージョン9.5のDB2クライアントが強制的にデフォルトDB2コピーになります。そ のため、以前のバージョンのDB2クライアントは機能しなくなります。 V8のDB2クライアントが導入されている環境であれば、バージョン9.5のDB2クライアントとの 共存が可能です。 V8のDB2クライアント V9のDB2クライアント ©日本IBMシステムズ・エンジニアリング(株) Information Management部 200 解説 クライアントの移行 コマンド実行例Windows編 DB2クライアントの移行(Windows編) (続き) 移行元のDB2クライアントが、DB2 Administration Client または DB2 Application Development Clientでかつ、移行先のDB2クライアントがDB2 Clientである場合、バージョン 9.5の導入作業中に一括して移行することが可能です。 「既存の製品を操作」からイン ストールを開始した場合、イン ストールと移行を一括して実施 可能。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 201 5-2. オンライン・バックアップ・イメージからの移行 オンライン・バックアップ・イメージからの移行 BACKUP/RESTOREを使用した移行を行う場合、オフライン・バックアップにより取得し たバックアップ・イメージが必要です。 可用性要件から、オフライン・バックアップの取得が困難なシステムも想定されるため、 派生シナリオとして、オンライン・バックアップで取得したバックアップ・イメージからの移 行手順に言及します。 この移行シナリオの特徴 オンライン・バックアップのイメージを使用して移行が可能となるため、本番環境でオフ ライン・バックアップを取得する必要がない。 いったんV8インスタンスへとリストアを行った後で、バージョン9.5のインスタンス移行を 行うため、移行先サーバにV8の製品コードが必要。 BACKUP/RESTOREとインスタンス移行の両方を行うため、必要な手順はやや多い。 DBサーバ(現行) DBサーバ(同一もしくは新規) V8インスタンス MIGDB V8インスタンス => V9.5インスタンス UserExit、外部モジュール等 BACKUP RESTORE MIGDB BACKUP イメージ インスタンス/データ ベースを移行 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 202 5-2. 移行時の作業の流れ システム停止のタイミング オンラインバックアップによる移行の場合、バックアップ取得中にシステムを稼働させる ことが可能ですが、更新ログの適用はV8の時点で実施する必要があります。 そのため、ログ適用が完了する前に移行前環境のシステムを停止し、V9.5への移行中 の更新ログ発生を抑止する必要があります。 移行前環境で稼働 システム停止 移行先環境で稼働 移行前環境 オンライン BACKUP取得 本番稼働による更新ログ生成 更新ログ BACKUP イメージ 適用 移行先環境 適用 V8インスタンスへ RESTORE ©日本IBMシステムズ・エンジニアリング(株) Information Management部 ログの適用 203 V9.5へ移行 本番稼働 5-2. 移行時の作業の流れ(続き) 移行作業の流れ 共通の移行前タスクの実施 MIGRATE DBやBACKUP/RESTOREを使用する際のタスク 3-3-2章の手順を参照 移行先環境で、V8 インスタンスの新規作成 Backup/Restoreでデータベースを移動 インスタンスの移行 データベースの移行 移行後タスクの実施 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 204 3-3-1章の手順を参照 ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 205