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
手順は以前と変わりありません。
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であればマイグレーションは終了です
おつかれさまでした!