Db2 にはコンテナ版が提供されていて、オンプレミス版同様に無償(※)で利用することができます。
(※) Db2 Community Edition:4 cores,16 GB RAM までのサーバであれば無償
Db2 11.5 の製品ライセンス体系についてはこちらに整理されています。
→ Db2 11.5 KnowledgeCenter[Db2 データベース製品のエディションおよび Db2 オファリング]
Db2 11.5.4 ライセンスの確認・登録作業は、下記のページを参考に実施します。
→ Db2 11.5 KnowledgeCenter [Db2 Community Edition ライセンス証明書キーのアップグレード]
ここでは、導入済みのDb2 11.5.4 on OpenShiftに、ライセンスを登録する手順をメモとして残します。
-
補足:Db2 11.5.4 on OpenShift 導入時の手順・ログはこちら
→ Db2 11.5.4 on OpenShift をデプロイしてみた -
補足2:Db2 11.5.5 では手順が変わっています。
→ Db2 11.5 KnowledgeCenter
Upgrading your Db2 Community Edition license certificate key
##Step1. ライセンス登録状況の確認
コマンド構文:
$DB2PATH=`oc rsh <RELEASE_NAME>-db2u-0 bin/bash -c "db2ls | cut -d ' ' -f 1 | awk 'NR==4'" | sed $'s/[^[:print:]\t]//g'`
$oc rsh <RELEASE_NAME>-db2u-0 /bin/bash -c "sudo $DB2PATH/adm/db2licm -l"
実行例:
$ DB2PATH=`oc rsh db2u-oltp-0-db2u-0 bin/bash -c "db2ls | cut -d ' ' -f 1 | awk 'NR==4'" | sed 's/[^[:print:]\t]//g'`
$ oc rsh db2u-oltp-0-db2u-0 /bin/bash -c "sudo $DB2PATH/adm/db2licm -l"
Product name: "DB2 Enterprise Server Edition"
License type: "License not registered"
Expiry date: "License not registered"
Product identifier: "db2ese"
Version information: "11.5"
Product name: "IBM DB2 Developer-C Edition"
License type: "Community" ← Community Edition ライセンス
Expiry date: "Permanent"
Product identifier: "db2dec"
Version information: "11.5"
Max amount of memory (GB): "16"
Max number of cores: "4"
Max amount of table space (GB): "100"
---> この環境には、Community Edition(無償版)ライセンスが適用されていることがわかります。
##Step2. ライセンス・ファイルの登録
Advanced Edition などのライセンスを適用する必要がある場合は、予め入手しておいたライセンスファイルを、ocコマンド実行ノードに配置し、下記のコマンドを oc コマンド実行可能なノードで実行する。
環境変数 RELEASE_NAME と、 LICENSE_FILE (ライセンスファイルパス名) は、環境に応じて編集した上で実行する。
コマンド構文:
$ RELEASE_NAME="db2u-oltp-0"
$ LICENSE_FILE="./db2adv_vpc.lic"
$ oc delete configmap "${RELEASE_NAME}-db2u-lic"
$ oc create configmap "${RELEASE_NAME}-db2u-lic" --from-file=db2u-lic=${LICENSE_FILE}
$ oc delete pods "${RELEASE_NAME}-db2u-0"
補足:
上の手順で最後に delete pods を行っているのは、Db2再起動しなければライセンスファイルが再読み込みされないことから、Pod を再起動するための操作。
delete pods の後まもなく、Db2U の Pod は再起動される。
実行例:
$ ls -la .
total 8
drwxr-xr-x. 2 root root 28 May 28 22:09 .
drwxr-xr-x. 16 root root 4096 May 28 22:09 ..
-rw-------. 1 user01 user01 941 May 31 2019 db2adv_vpc.lic
$ RELEASE_NAME="db2u-oltp-0"
$ LICENSE_FILE="./db2adv_vpc.lic"
$ oc delete configmap "${RELEASE_NAME}-db2u-lic"
configmap "db2u-oltp-0-db2u-lic" deleted
$ oc create configmap "${RELEASE_NAME}-db2u-lic" --from-file=db2u-lic=${LICENSE_FILE}
configmap/db2u-oltp-0-db2u-lic created
$ oc delete pods "${RELEASE_NAME}-db2u-0"
pod "db2u-oltp-0-db2u-0" deleted
ここまでの手順で、Db2ライセンスの入れ替えは完了。
Db2 on Openshift の Pod を再起動し、新しいライセンスファイルを認識させる。
$ oc get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
db2u-oltp-0-db2u-0 1/1 Running 0 107s 10.131.0.98 worker3 <none> <none>
db2u-oltp-0-db2u-engn-update-job-r6jsr 0/1 Completed 0 21d 10.131.0.96 worker2 <none> <none>
db2u-oltp-0-db2u-ldap-67589cbdb9-s6pn9 1/1 Running 0 5d6h 10.128.2.199 worker2 <none> <none>
db2u-oltp-0-db2u-nodes-cfg-job-rz4mp 0/1 Completed 0 21d 10.128.2.48 worker2 <none> <none>
db2u-oltp-0-db2u-restore-morph-job-ktscl 0/1 Completed 0 21d 10.128.2.81 worker2 <none> <none>
db2u-oltp-0-db2u-sqllib-shared-job-f8zg7 0/1 Completed 0 21d 10.128.2.44 worker2 <none> <none>
db2u-oltp-0-db2u-tools-695f4bf9f6-ptwnb 1/1 Running 0 5d6h 10.128.2.206 worker2 <none> <none>
db2u-oltp-0-etcd-0 1/1 Running 0 5d6h 10.128.2.203 worker2 <none> <none>
db2u-oltp-0-etcd-1 1/1 Running 0 5d6h 10.129.2.5 worker1 <none> <none>
db2u-oltp-0-etcd-2 1/1 Running 0 5d6h 10.131.0.156 worker3 <none> <none>
---> db2u-sto0-db2u-0 (Db2本体)のPodが再起動され、Running状態に戻っています。
##Step3. ライセンス登録状況の確認
ライセンス・ファイルが登録されたことを確認する。
$ oc rsh db2u-oltp-0-db2u-0 /bin/bash -c "sudo $DB2PATH/adm/db2licm -l"
Product name: "DB2 Advanced Edition"
License type: "Virtual Processor Core"
Expiry date: "Permanent"
Product identifier: "db2adv"
Version information: "11.5"
Enforcement policy: "Hard Stop"
Features:
IBM DB2 Performance Management Offering: "Not licensed"
---> Advanced Edition(有償版)ライセンスが適用されていることが確認できました。
Tips:
2020.07時点のKnowledgeCenterに記載の手順ではPermission Deniedエラーのためdb2licmコマンドが失敗する。
Db2U 11.5.4 のログイン時のユーザは db2uadm というユーザIDで、db2licmコマンドの実行権限が与えられていないためと考えられる。
そこで、上の手順ではsudoで実行することでroot権限にてdb2licmコマンドを実行している。
以上となります。