DB29.5マイグレーション手順

以下はDB2 9(express-c V9.1)32bit+NSEの構成をしているサーバに
DB2 9.5へマイグレーションする際の手順です。
NSEマイグレーションがうまくできなかったので
NSEインデックスは再生成という方法で対応していますので
db2text ctrate indexのDDL文も事前に用意しておいてください。

NSEを利用しない構成の場合はNSE部分を省いてすすめればOKです。
たぶんDB2 V8からもこの手順でいけるでしょう。
あと、DB2イメージがExpress-C版で進めているので
製品版の場合はイメージのファイル名が若干違ったりしますので
そのあたりは読み替えたりしてください。
(tar.gzがtarになってたり、解凍が必要なかったりすると思います)
と、ライセンスの設定もおわすれなく・・
(Express-CはインストールするとExpress-Cライセンスが入ってます)


■必要なもの
以下ディレクトリに各イメージがあることを前提に進めます
/usr/local/src/db2_95_32
db2exc_950_LNX_x86_64.tar.gz
db2_v95_linuxia32_nse.tar.gz
libaio-0.3.103-3.i386.rpm

DB2イメージはexpress-cホームページから
http://www-306.ibm.com/software/data/db2/express/download.html
libaioは各ディストリビューションから・・



■NSEインデックス削除とインスタンス停止

db2inst1ユーザで

su - db2inst1

NSEインデックスを削除します(うまくNSEマイグレーションができないので・・)
db2text DISABLE DATABASE FOR TEXT FORCE CONNECT TO DB名
もし帰ってこなかった場合、インデックスファイルが消えていれば
forceをはずしてdisableをするといいみたい
$ db2text DISABLE DATABASE FOR TEXT CONNECT TO DB名

DBが複数あってdb2text enableしてあるならそれらもdb2text disableしてください。


ll sqllib/db2ext/indexes/NODE0000/
 きれいさっぱりなければインデックス削除成功!


接続・処理中がいるか確認
db2 list applications

まあ、居ても切ってよければforce
db2 force application all

非活性化
db2 deactivate db DB名

NSE停止
db2text stop

インスタンス停止
db2stop

ターミネート
db2 terminate

メモリをきれいに・・・
ipclean
ipcs
 してもぽろぽろ出てくるようだったら
 ps auxwww|grep db2bp
 出てきたプロセスをkill -9する
 (db2bpはバックエンドプロセスでdb2コマンド等すると一緒にあがってくるもの)
 (db2 terminateがバックエンドプロセスも一緒に落とすものなのです。。)


■9.5インストール

rootユーザで

9.5からはlibaioが必要になるので用意します。

cd /usr/local/src/db2_95_32

rpm -iUvh libaio-0.3.103-3.x86_64.rpm

解凍する
tar xzf db2exc_950_LNX_x86_64.tar.gz
mkdir nse
cd nse
tar xzf ../db2_v95_linuxx64_nse.tar.gz
cd ..

インストールします
cd exp
./db2_install
手順は以前と変わりありません。



インスタンス・DASマイグレーション

rootユーザで
インスタンスマイグレーション
/opt/ibm/db2/V9.5/instance/db2imigr db2inst1

DASマイグレーション
/opt/ibm/db2/V9.5/instance/dasmigr




■データベースマイグレーション

db2inst1ユーザで

su - db2inst1

環境変数セット
db2set DB2COMM=tcpip
db2set DB2DAS00 DB2COMM=tcpip

インスタンス開始
db2start

一応バージョン確認
(インスタンスマイグレーションは成功していれば9.5.0という文字が見れるはず)
db2level

DBマイグレーション
(複数DBがあるならそのDB分マイグレーションします)
db2 MIGRATE DATABASE DB名

DBマイグレーションが完了したら基本selectやらupdateやらは使えるようになります!

インスタンスを停止します
db2stop





■9.5NSEインストール
rootユーザで

vi /etc/group

    • 以下追加----------

db2grp1:x:500:db2inst1,db2fenc1
db2fgrp1:x:501:db2inst1,db2fenc1
db2asgrp:x:997:db2as,db2inst1,db2fenc1

                                      • -

db2fenc1を追加すればいいだけだけど、いまいちよくわからない・・


■NSEインストール
rootユーザで

cd /usr/local/src/db2_95_32/nse/linux/
./nsesetup.sh

インスタンスアップデートをします
(Future系を導入したらdb2iupdtはしましょう。無駄にやっても問題はでませんし)
/opt/ibm/db2/V9.5/instance/db2iupdt db2inst1

■NSE有効化
db2inst1ユーザで
su - db2inst1

db2start
db2text start
db2 activate db DB名

NSEの有効化をします。
複数のDBがあってNSEをつかっているならその分も
db2text enable database for text connect to DB名

NSEインデックス作成
db2text "CREATE INDEX xxxx FOR TEXT ON xxxxx(xxxxx) CONNECT TO DB名"
db2text "UPDATE INDEX xxxx FOR TEXT CONNECT TO DB名"

ll sqllib/db2ext/indexes/NODE0000/
ファイルがあればNSEインデックスは作成されているでしょう!


select等打ってみて問題ないか確認しましょう
OKであればマイグレーションは終了です
おつかれさまでした!