目的は、暗号化済DBの移行手順を確認すること。
以下2つの作業を実施。
- 【1】ネイティブ暗号化データベースを作成
- 【2】ネイティブ暗号化データベースのバージョンアップ
結論を先に書いてしまうと、
暗号化データベースも、非暗号化データベースと同じ手順でバージョンアップできました。
環境
単一サーバー上で、Db2バージョンをアップグレードする
- Ubuntu 22.04 on WSL2
- Db2 11.5.9 (-> 12.1.1)
- 暗号化データベース
- マスターキーはDB作成時にDb2が自動生成したものを利用
【1】ネイティブ暗号化データベースを作成
最もシンプル&ミニマム構成の、暗号化データベースを作成。
Step1. インスタンス作成
※既にDb2の他インスタンス、DB作成済の環境でありDb2 Fencedユーザー(OSユーザーdb2fenc1)やOSグループは作成済。
OSユーザー作成
# useradd -g db2iadm1 -m v1159mig
パスワード変更
# passwd v1159mig
Db2インスタンス作成
# /opt/ibm/db2/1159serv/instance/db2icrt -u db2fenc1 v1159mig
DBI1446I The db2icrt command is running.
DB2 installation is being initialized.
Total number of tasks to be performed: 4
Total estimated time for all tasks to be performed: 309 second(s)
Task #1 start
Description: Setting default global profile registry variables
Estimated time 1 second(s)
Task #1 end
Task #2 start
Description: Initializing instance list
Estimated time 5 second(s)
Task #2 end
Task #3 start
Description: Configuring DB2 instances
Estimated time 300 second(s)
Task #3 end
Task #4 start
Description: Updating global profile registry
Estimated time 3 second(s)
Task #4 end
The execution completed successfully.
For more information see the DB2 installation log at "/tmp/db2icrt.log.127245".
DBI1070I Program db2icrt completed successfully.
Step2. ローカル鍵ストア作成
$ gsk8capicmd_64 -keydb -create -db "/home/v1159mig/keystores/ne-keystore.p12" -pw "g00d.pWd" -type pkcs12 -stash -pqc false
$ ls -ltr
合計 8
-rw------- 1 v1159mig db2iadm1 193 3月 25 19:10 ne-keystore.sth
-rw------- 1 v1159mig db2iadm1 1392 3月 25 19:10 ne-keystore.p12
$
Step3. Db2インスタンスが鍵ストアを利用するよう構成する
-
KEYSTORE_TYPE:PKCS12に設定
-
KEYSTORE_LOCATION:暗号鍵の保管に使用する鍵ストアのロケーションを指定
$ db2 update dbm cfg using keystore_location /home/v1159mig/keystores/ne-keystore.p12 keystore_type pkcs12
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
$ db2 get dbm cfg | grep -i keystore
Keystore type (KEYSTORE_TYPE) = PKCS12
Keystore location (KEYSTORE_LOCATION) = /home/v1159mig/keystores/ne-keystore.p12
$
Step4. Db2インスタンス再起動(構成変更の有効化)
(今回の環境は、インスタンスを一度も起動していなかったため、再起動は不要)
Db2インスタンスを起動しておく
$ db2start
03/25/2025 19:24:04 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
$
Step5. 暗号化データベース作成
$ db2 CREATE DATABASE encdb USING CODESET UTF-8 TERRITORY JP ENCRYPT AUTOCONFIGURE APPLY NONE
DB20000I The CREATE DATABASE command completed successfully.
$
データベース構成パラメータ ENCRLIB にライブラリ名が入ります。
バックアップの自動暗号化を使用可能にするパラメータです。
ここにライブラリ名が入っていることで、後にバックアップを取得したい時、BACKUP DATABASEコマンドオプションにENCRYPTオプションを付与しなくても、バックアップイメージは自動的に暗号化されるようになります。
$ db2 get db cfg for encdb | grep -i encrlib
Encryption Library for Backup (ENCRLIB) = libdb2encr.so
$
※既存データベースの暗号化:既存の非暗号化データベースのデータを暗号化したい場合には、非暗号化状態のデータベースのバックアップ・イメージを作成し、そのデータベースをドロップした後、RESTORE DATABASE コマンドで ENCRYPT オプションを使用して、データベースのフルバックアップをリストアします。
(参考:既存データベースの暗号化)
Step6. 暗号化データベースのバックアップ取得(オプション)
マイグレーションを行う場合、何かあったときのフォールバック用途に利用できるよう、移行開始前にバックアップを取得しておきたいです。
要件に応じて必要な初期構成を行った後、バックアップを取得しておきます。
アーカイブロギング構成(オプション)
$ db2 update db cfg using logarchmeth1 disk:/home/v1159mig/archlog
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
SQL1363W One or more of the parameters submitted for immediate modification
were not changed dynamically. For these configuration parameters, the database
must be shutdown and reactivated before the configuration parameter changes
become effective.
$ db2 terminate
DB20000I The TERMINATE command completed successfully.
$ db2stop
2025-03-25 19:59:44 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
$ db2start
03/25/2025 19:59:47 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
$ db2 backup db encdb > /dev/null
データ投入(テスト用)
$ db2 "create table t1 (c1 integer, c2 char(32), c3 timestamp)"
DB20000I The SQL command completed successfully.
$ db2 "insert into t1 values (1,'v11.5.9',current timestamp)"
DB20000I The SQL command completed successfully.
$ db2 "select * from t1"
C1 C2 C3
----------- -------------------------------- --------------------------
1 v11.5.9 2025-03-25-20.01.14.473899
1 record(s) selected.
$
バックアップ取得(オフライン・バックアップ)
$ db2 "backup database encdb to /work/backup"
Backup successful. The timestamp for this backup image is : 20250325200422
バックアップ取得(オンライン・バックアップ)
$ db2 "backup database encdb online to /work/backup"
Backup successful. The timestamp for this backup image is : 20250325200446
$
db2support取得(構成パラメータ等の情報を一括で取得しておきたい)
$ db2support . -s -d encdb -c -f > db2support.log 2>&1
【2】ネイティブ暗号化データベースのバージョンアップ(V11.5.9 -> V12.1.1)
ネイティブ暗号化後のDb2インスタンスとデータベース(ENCDB)のマイグレーションを行います
Step0. Db2 12.1.1インストール
(既にインストール済の環境のため、Skip)
Step1. 移行前作業(※移行元Db2の停止まで)
https://www.ibm.com/docs/ja/db2/12.1?topic=servers-pre-upgrade-tasks
アップグレードする前に、Db2 サーバーのアップグレードに関する重要事項 (推奨事項、制約事項、ディスク・スペース要件など) を確認して、アップグレードに影響を与える可能性のある変更点や制約事項を把握。
移行元(V11.5)DBにインダウトトランザクションが存在しないことを確認
$ db2 LIST INDOUBT TRANSACTIONS
SQL1251W No data returned for heuristic query. SQLSTATE=00000
$
db2chkupgradeコマンドによる前提確認
(念のためterminate, list applications, force applicationsなどで接続ユーザーが居ないことを確認の上)
$ db2 terminate
DB20000I The TERMINATE command completed successfully.
$ db2 list applications
SQL1611W No data was returned by Database System Monitor.
$ db2ckupgrade encdb -l db2ckupgrade.log -u v1159mig -p v1159mig
DBT5508I The db2ckupgrade utility completed successfully. The database or databases can be upgraded.
$
db2ckupgrade コマンドのログ・ファイルに Version of DB2CKUPGRADE being run: version XX.Xというテキストが含まれていることを確認します。 このテキストは、正しいレベルの db2ckupgrade コマンドを実行していることを確認します。
Version of DB2CKUPGRADE being run: VERSION "11.5"
Database: "ENCDB"
DBT5508I The db2ckupgrade utility completed successfully. The database or databases can be upgraded.
すべての Db2 ログ・ファイルをアーカイブ
$ db2 archive log for database ENCDB
DB20000I The ARCHIVE LOG command completed successfully.
$
アップグレード前の診断情報の収集(1) db2fodc -preupgrade
$ db2fodc -db encdb -preupgrade
**********************WARNING***********************
* This tool should be run with caution. *
* It can cause significant performance *
* degradation, especially on busy systems with a *
* high number of active connections *
* *
* Run times indicated below are estimates based *
* on test runs. Your actual run times might vary, *
* dependent on factors such as your hardware *
* specifications, operating system configuration, *
* and current workload *
****************************************************
Script is running with following parameters
DATABASE : encdb
COLLECTION_MODE : LIGHT
FODCPATH : /home/v1159mig/sqllib/db2dump/DIAG0000/FODC_Preupgrade_2025-03-25-20.23.54.904722_0000
DYNAMIC_SQL_LIMIT : 20
DYN_SQL_FILE :
COLLECTION_DURATION : 20
COLLECTION_ITERATION : 5
MEMBERS :
DB2PERFCOUNT : 2
DB2PD_OPTIONS : -agent -apinfo -active -tran -locks -bufferpools -dbptnmem -memset -mempool -sort -fcm hwm -dyn
NUM_SNAPSHOT : 2
SNAPSHOT_TYPE : ALL
NUM_STACKTRACE : 2
STACKTRACE_LIMIT : 20
$ ls -ltr /home/v1159mig/sqllib/db2dump/DIAG0000/
合計 7400
drwxr-xr-x 2 v1159mig db2iadm1 4096 3月 25 19:24 clientrecords
drwxrwxr-t 2 v1159mig db2iadm1 4096 3月 25 19:54 stmmlog
-rw-r----- 1 v1159mig db2iadm1 6291284 3月 25 19:59 db2eventlog.000
drwxrwxrwx 2 v1159mig db2iadm1 4096 3月 25 20:04 events
-rw-rw-rw- 1 v1159mig db2iadm1 9175 3月 25 20:23 v1159mig.nfy
drwxr-x--- 3 v1159mig db2iadm1 4096 3月 25 20:39 FODC_Preupgrade_2025-03-25-20.23.54.904722_0000
-rw-r--r-- 1 v1159mig db2iadm1 37922 3月 25 20:44 157765.149.000.stack.txt
-rw-r--r-- 1 v1159mig db2iadm1 37200 3月 25 20:44 157765.512.000.stack.txt
-rw-r--r-- 1 v1159mig db2iadm1 624456 3月 25 20:44 157765.000.processObj.txt
-rw-rw-rw- 1 v1159mig db2iadm1 543171 3月 25 20:48 db2diag.log
$
アップグレード前の診断情報の収集(2) db2support -preupgrade
$ db2support -preupgrade -d ENCDB
_______ D B 2 S u p p o r t ______
Build Date: Nov 8 2023 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
in the directory specified on the application command line. If you are
experiencing problems with DB2, it may help if this program is run
while the problem is occurring.
NOTES:
1. By default, this program will not capture any user data from tables or
logs to protect the security of your data.
2. For best results, run this program using an ID having SYSADM authority.
3. On Windows systems you should run this utility from a db2 command
session.
4. Data collected from this program will be from the machine where this
program runs. In a client-server environment, database-related
information will be from the machine where the database resides via an
instance attachment or connection to the database.
Output file is "/home/v1159mig/conf/db2support_preupgrade.zip"
sh: 1: lssrc: not found
...attempting to connect to database: "ENCDB"
Collecting 'Optimizer information'
-- Generate statistics for all creators
-- Creating DDL for table(s)
-- Running db2look in mimic mode
-- Output is sent to file: /home/v1159mig/conf/DB2SUPPORT/OPTIMIZER/db2look_out.opt_out
-- Binding package automatically ...
-- Bind is successful
-- Binding package automatically ...
-- Bind is successful
[ IGNORED ] RC=-3022 export to sysprofiles.ixf of ixf lobs to PROFILES/ lobfile slob1, slob2, slob3, slob4, slob5, slob6, slob7,slob8, slob9, slob10,slob11,slob12,slob13,slob14,slob15,slob16,slob17,slob18,slob19,slob20,slob21,slob22,slob23,slob24,slob25,slob26,slob27,slob28,slob29,slob30,slob31,slob32,slob33,slob34,slob35,slob36,slob37,slob38,slob39,slob40,slob41,slob42,slob43,slob44,slob45,slob46,slob47,slob48,slob49,slob50,slob51,slob52,slob53,slob54,slob55,slob56,slob57,slob58,slob59,slob60 modified by lobsinfile select * from systools.opt_profile
Warning invoking "export to sysindexcoluse.ixf of ixf select * from sysibm.sysindexcoluse"
Warning invoking "export to syscolumns.ixf of ixf select * from sysibm.syscolumns"
[ IGNORED ] RC=-3022 export to systscolumns.ixf of ixf modified by lobsinfile select * from sysibmts.systscolumns
[ IGNORED ] RC=-3022 export to ttextcolumns.ixf of ixf modified by lobsinfile select * from db2ext.ttextcolumns
RC=-3022 export to systenants.ixf of ixf lobs to TENANTS/ lobfile slob1, slob2, slob3, slob4, slob5, slob6, slob7,slob8, slob9, slob10,slob11,slob12,slob13,slob14,slob15,slob16,slob17,slob18,slob19,slob20,slob21,slob22,slob23,slob24,slob25,slob26,slob27,slob28,slob29,slob30,slob31,slob32,slob33,slob34,slob35,slob36,slob37,slob38,slob39,slob40,slob41,slob42,slob43,slob44,slob45,slob46,slob47,slob48,slob49,slob50,slob51,slob52,slob53,slob54,slob55,slob56,slob57,slob58,slob59,slob60 modified by lobsinfile select * from sysibm.systenants
Error invoking "export to systenants.ixf of ixf lobs to TENANTS/ lobfile slob1, slob2, slob3, slob4, slob5, slob6, slob7,slob8, slob9, slob10,slob11,slob12,slob13,slob14,slob15,slob16,slob17,slob18,slob19,slob20,slob21,slob22,slob23,slob24,slob25,slob26,slob27,slob28,slob29,slob30,slob31,slob32,slob33,slob34,slob35,slob36,slob37,slob38,slob39,slob40,slob41,slob42,slob43,slob44,slob45,slob46,slob47,slob48,slob49,slob50,slob51,slob52,slob53,slob54,slob55,slob56,slob57,slob58,slob59,slob60 modified by lobsinfile select * from sysibm.systenants"
RC=-3022 export to systenantauth.ixf of ixf select * from sysibm.systenantauth
Error invoking "export to systenantauth.ixf of ixf select * from sysibm.systenantauth"
RC=-3022 export to sysobjectid.ixf of ixf select * from sysibm.sysobjectid
Error invoking "export to sysobjectid.ixf of ixf select * from sysibm.sysobjectid"
Sending -catcache output to /home/v1159mig/conf/DB2SUPPORT/OPTIMIZER/STATSCACHE/172390.000.db2pd.bin
Please provide this file to IBM DB2 Service.
Collecting "System files"
"db2hareg.log"
"db2eventlog.000"
"157765.000.processObj.txt"
"v1159mig.nfy"
"db2systm"
"db2dj.ini"
".IBM-PF44EEMY.0"
".db2pgrp.000"
"online.add"
"000000000101007F.dft"
"offlineadd.000"
"db2stop.IBM-PF44EEMY.20250325192357.P150370.errlog"
"db2stst.0000"
"db2strst.lck"
".fencedID"
"SPMLOG.LCF"
"SPM00001.LOG"
"SPM00002.LOG"
"SPM00000.LOG"
"report.log"
Collecting "Detailed operating system and hardware information"
Error: Failure reading input at "db2os.C:1004". ("/sbin/ifconfig -a")
Warning: Failed to close a system file with Reason Code "32512". ("/sbin/ifconfig -a")
Error: Failure reading input at "db2os.C:1004". ("/usr/sbin/ss -an")
Warning: Failed to close a system file with Reason Code "32512". ("/usr/sbin/ss -an")
Error: Failure reading input at "db2os.C:1004". ("/sbin/ss -p")
Warning: Failed to close a system file with Reason Code "32512". ("/sbin/ss -p")
Error: Failure reading input at "db2os.C:1004". ("/usr/sbin/ss -s")
Warning: Failed to close a system file with Reason Code "32512". ("/usr/sbin/ss -s")
Warning: A failure was detected during collection of network related information with Reason Code: "32512".
Error: Failure reading input at "db2os.C:1004". ("/usr/sbin/showmount -e")
Warning: Failed to close a system file with Reason Code "32512". ("/usr/sbin/showmount -e")
Error: Failure reading input at "db2os.C:1004". ("/usr/bin/iostat -d -t 1 5")
Warning: Failed to close a system file with Reason Code "32512". ("/usr/bin/iostat -d -t 1 5")
Warning: A failure was detected during collection of disk related information with Reason Code: "32512".
Error: Failure reading input at "db2os.C:1004". ("/sbin/lspci -v")
Warning: Failed to close a system file with Reason Code "32512". ("/sbin/lspci -v")
Error: Failure reading input at "db2os.C:1004". ("/usr/bin/lsdev")
Warning: Failed to close a system file with Reason Code "32512". ("/usr/bin/lsdev")
Warning: A failure was detected during collection of hardware related information with Reason Code: "32512".
Error: Failure reading input at "db2os.C:1004". ("/bin/rpm -qa")
Warning: A failure was detected during collection of software related information with Reason Code: "-1".
Error: Failure reading input at "db2os.C:1004". ("/usr/bin/find /proc/net -type f -exec /bin/grep -Hv '^$' {} \;")
Warning: A system file was not found. ("/proc/slabinfo")
Warning: A failure was detected during collection of kernel related information with Reason Code: "2".
Error: Failure reading input at "db2os.C:1004". ("/usr/bin/vmstat -m")
Warning: A failure was detected during collection of memory related information with Reason Code: "-1".
Warning: A system file was not found. ("/etc/ldap.conf")
Warning: A system file was not found. ("/etc/pam.d/db2")
Warning: Some security-related information was not collected. Reason code for IBM support: "2".
Warning: A system file was not found. ("/etc/inittab")
Warning: A system file was not found. ("/etc/dat.conf")
Warning: A failure was detected during collection of general related information with Reason Code: "2".
Collecting "OS level"
[n/a]
Collecting "CPU, disk, and memory info"
[n/a]
Collecting "JDK level"
[java -fullversion]
Collecting "JCC version"
[java com.ibm.db2.jcc.DB2Jcc -version]
Collecting "JCC configuration information"
[java com.ibm.db2.jcc.DB2Jcc -configuration]
Collecting "TSA information"
Collecting "Getsadata"
[db2pd -pdcollection index=getsadata_quicksnap]
Collecting "lsrel"
[db2pd -pdcollection index=lsrel]
Collecting "lsequ"
[db2pd -pdcollection index=lsequ]
Collecting "lsrpdomain"
[/usr/sbin/rsct/bin/lsrpdomain]
Collecting "lsrpnode"
[/usr/sbin/rsct/bin/lsrpnode]
Collecting "lsrsrc IBM.Application"
[/usr/sbin/rsct/bin/lsrsrc IBM.Application]
Collecting "lsrsrc IBM.ResourceGroup Name ResourceHandle"
[/usr/sbin/rsct/bin/lsrsrc IBM.ResourceGroup Name ResourceHandle]
Collecting "lsrsrc IBM.Equivalency"
[/usr/sbin/rsct/bin/lsrsrc IBM.Equivalency]
Collecting "lsrsrc IBM.PeerNode Name ResourceHandle"
[/usr/sbin/rsct/bin/lsrsrc IBM.PeerNode Name ResourceHandle]
Collecting "lsrsrc IBM.ManagedResource ResourceHandle"
[/usr/sbin/rsct/bin/lsrsrc IBM.ManagedResource ResourceHandle]
Collecting "lsrsrc -la IBM.NetworkInterface"
[/usr/sbin/rsct/bin/lsrsrc -la IBM.NetworkInterface]
Collecting "lsrsrc -la IBM.HeartbeatInterface"
[/usr/sbin/rsct/bin/lsrsrc -la IBM.HeartbeatInterface]
Collecting "lscomg"
[/usr/sbin/rsct/bin/lscomg]
Collecting "lscondresp"
[export CT_MANAGEMENT_SCOPE=2;/usr/sbin/rsct/bin/lscondresp]
Collecting "lscondition"
[export CT_MANAGEMENT_SCOPE=2;/usr/sbin/rsct/bin/lscondition]
Collecting "lsresponse"
[export CT_MANAGEMENT_SCOPE=2;/usr/sbin/rsct/bin/lsresponse]
Collecting "TSA efix version"
[ls -rlt /opt/IBM/tsamp/sam/efix]
Collecting "list vardb2"
[ls -alt /var/db2]
Collecting "HA registry dump"
[db2hareg -dump]
Collecting "DB2 release information"
[n/a]
Collecting "DB2 license information"
[db2licm -l]
Collecting "DB2 compliance report"
[n/a]
Collecting "DB2 prerequisite check information"
[/opt/ibm/db2/1159serv/instance/native/install/db2prereqcheck -f /...]
Collecting "DB2 install path"
[n/a]
Collecting "Environment registry"
[db2set -all -v]
Collecting "Environment registry"
[n/a]
Collecting "Environment registry"
[n/a]
Collecting "Environment registry"
[db2set -l -v]
Collecting "Environment registry"
[db2greg -dump -g]
Collecting "Database reset status"
[n/a]
Collecting "db2nodes.cfg contents"
[n/a]
Collecting "Database manager configuration"
[GET DBM CFG]
Collecting "Java version in JDK_PATH"
[/home/v1159mig/sqllib/java/jdk64/bin/java -version]
Collecting "Keystore Configuration"
[n/a]
Collecting "Audit configuration"
[db2audit describe]
Collecting "Get dbm cfg show details"
[GET DBM CFG SHOW DETAIL]
Collecting "Text Search ConfigTool Output"
[configTool printAll -configPath /home/v1159mig/sqllib/db2tss/config]
Collecting "Text Search AdminTool Output"
[adminTool status -configPath /home/v1159mig/sqllib/db2tss/config]
Collecting "DB2 Administration Server (DAS) configuration"
[GET ADMIN CFG]
Collecting "CLI configuration"
[get CLI cfg]
Collecting "List of applications"
[List applications for database ENCDB global show detail]
...attempting to connect to database: "ENCDB"
Collecting "Buffer pool information for "ENCDB""
[select * from sysibm.sysbufferpools]
Collecting "Buffer pool information for "ENCDB""
[select * from sysibm.sysbufferpoolnodes]
Collecting "Buffer pool information for "ENCDB""
[db2pd -db ENCDB -bufferpools]
Collecting "Table statistics for "ENCDB""
[db2pd -db ENCDB -tcbstats]
Collecting "Table space information for "ENCDB""
[SELECT tbspace AS TABLESPACE, bpname AS BUFFERPOOL, npages AS NUM...]
Collecting "Table space information for "ENCDB""
[db2pd -tablespaces -db ENCDB]
Collecting "Node groups for "ENCDB""
[LIST NODEGROUPS SHOW DETAIL]
Collecting "Storage group information for "ENCDB""
[select * from TABLE(ADMIN_GET_STORAGE_PATHS(NULL, -2))]
Collecting "Storage group information for "ENCDB""
[db2pd -storagegroups -db ENCDB]
Collecting "Number of tables for "ENCDB""
[Select count(*) from sysibm.systables where type='T' and creator ...]
Collecting "Number of stringIDs for "ENCDB""
[Select max(stringid) from sysibm.sysxmlstrings]
Collecting "Database snapshot for "ENCDB""
[get snapshot for database on ENCDB global]
Collecting "List of packages for "ENCDB""
[LIST PACKAGES FOR ALL SHOW DETAIL]
Collecting "List of tables for "ENCDB""
[LIST TABLES FOR ALL SHOW DETAIL]
Collecting "Database versions for "ENCDB""
[select * from sysibm.sysversions]
Collecting "Number of typeIDs for "ENCDB""
[select max(typeid) from sysibm.sysdatatypes]
Collecting "Number of routineIDs for "ENCDB""
[select max(routine_id) from sysibm.sysroutines]
Collecting "Number of roleIDs for "ENCDB""
[select max(roleid) from sysibm.sysroles]
Collecting "Number of sequenceIDs for "ENCDB""
[select max(seqid) from sysibm.syssequences]
Collecting "Number of variableIDs for "ENCDB""
[select max(varid) from sysibm.sysvariables]
Collecting "Number of xsrobjectIDs for "ENCDB""
[select max(XSROBJECTID) from sysibm.sysxsrobjects]
Collecting "In-doubt transactions for "ENCDB""
[LIST INDOUBT TRANSACTIONS]
Collecting "DRDA In-doubt transactions for "ENCDB""
[LIST DRDA INDOUBT TRANSACTIONS]
[ IGNORED ] RC=-1462 LIST DRDA INDOUBT TRANSACTIONS
Collecting "Command options for "ENCDB""
[LIST COMMAND OPTIONS]
Collecting "List database partition numbers for "ENCDB""
[LIST NODES]
Collecting "ODBC data sources for "ENCDB""
[LIST ODBC DATA SOURCES]
[ IGNORED ] RC=-1297 LIST ODBC DATA SOURCES
Collecting "WLM service classes for "ENCDB""
[SELECT * FROM syscat.serviceclasses ORDER BY serviceclassid]
Collecting "WLM workloads for "ENCDB""
[SELECT * FROM syscat.workloads ORDER BY evaluationorder ASC]
Collecting "WLM connection attributes of each workload for "ENCDB""
[SELECT * FROM syscat.workloadconnattr ORDER BY workloadid ASC]
Collecting "WLM thresholds for "ENCDB""
[SELECT * FROM syscat.thresholds]
Collecting "WLM event monitors for "ENCDB""
[SELECT * FROM syscat.eventmonitors]
Collecting "WLM event monitor names and states for "ENCDB""
[SELECT evmonname, event_mon_state(evmonname) FROM syscat.eventmon...]
Collecting "WLM Work Action Sets for "ENCDB""
[SELECT * FROM syscat.workactionsets]
Collecting "WLM Work Actions for "ENCDB""
[SELECT * FROM syscat.workactions]
Collecting "WLM Work Class Sets for "ENCDB""
[SELECT * FROM syscat.workclasssets]
Collecting "WLM Work Classes for "ENCDB""
[SELECT * FROM syscat.workclasses]
Collecting "WLM Work Class Attributes for "ENCDB""
[SELECT * FROM syscat.workclassattributes ORDER BY workclassid ASC]
Collecting "Text Search Database output for database "ENCDB""
[select * FROM sysibmts.tsindexes]
RC=-204 select * FROM sysibmts.tsindexes
Collecting "Text Search Database output for database "ENCDB""
[select * FROM sysibmts.tsdefaults]
RC=-204 select * FROM sysibmts.tsdefaults
Collecting "Text Search Database output for database "ENCDB""
[select * FROM sysibmts.tslocks]
RC=-204 select * FROM sysibmts.tslocks
Collecting "Text Search Database output for database "ENCDB""
[select SERVERID, HOST, PORT, LOCALE, SERVERTYPE, SERVERSTATUS FRO...]
RC=-204 select SERVERID, HOST, PORT, LOCALE, SERVERTYPE, SERVERSTATUS FROM sysibmts.tsservers
Collecting "Text Search Database output for database "ENCDB""
[select * FROM sysibmts.tsconfiguration]
RC=-204 select * FROM sysibmts.tsconfiguration
Collecting "Text Search Database output for database "ENCDB""
[select * FROM sysibmts.tscollectionnames]
RC=-204 select * FROM sysibmts.tscollectionnames
[ IGNORED ] RC=-1024 connect reset
Attempting to collect files from '"OPTIMIZER"'
"172390.000.db2pd.bin"
"func_path.opt_out"
"refresh_age.opt_out"
"cur_degree.opt_out"
"172393.000.db2pd.bin"
"db2pd_fedcache.opt_out"
"opt_tables.opt_out"
"isolation.opt_out"
"dbm.opt_out"
"db2nodes.cfg.opt_out"
"cur_schema.opt_out"
"db2look_out.opt_out"
"sysservers.ixf"
"sysfunctions.ixf"
"syssecuritylabels.ixf"
"syssecuritylabelcomponentelements.ixf"
"systables.ixf"
"sysfuncmapparmoptions.ixf"
"slob1.001.lob"
"syssecuritypolicies.ixf"
"slob1.001.lob"
"sysviews.ixf"
"sysnodegroupdef.ixf"
"sysxmlstrings.ixf"
"slob1.001.lob"
"slob1.001.lob"
"sysbufferpoolnodes.ixf"
"syssecuritylabelaccess.ixf"
"syswrapoptions.ixf"
"sysstogroups.ixf"
"sysxmlpaths.ixf"
"sysindexcoluse.ixf"
"sysindexes.ixf"
"sysroutines.ixf"
"systbspaceauth.ixf"
"sysdatatypes.ixf.001.lob"
"syssecuritylabelcomponents.ixf"
"syscolgroupscols.ixf"
"syssecuritypolicycomponentrules.ixf"
"syspartitionmaps.ixf.001.lob"
"sysviewdep.ixf"
"sysnodegroups.ixf"
"sysuseroptions.ixf"
"syscolgroups.ixf"
"syswrappers.ixf"
"sysbufferpools.ixf"
"sysdatapartitions.ixf"
"sysvariables.ixf"
"sysfuncmapoptions.ixf"
"syscontrols.ixf"
"sysdependencies.ixf"
"syscolumns.ixf"
"sysindexpartitions.ixf"
"slob1.001.lob"
"sysmodules.ixf"
"sysdatatypes.ixf"
"systablespaces.ixf"
"sysserversoptions.ixf"
"syspartitionmaps.ixf"
"sysplandep.ixf"
"slob1.001.lob"
"slob1.001.lob"
"sysfuncmappings.ixf"
"syssecuritypolicyexemptions.ixf"
"sysvariables.ixf.001.lob"
"syssequences.ixf"
"opt_profile.opt_out"
"db2set.opt_out"
"opt_level.opt_out"
"optimizer.log"
Waiting for the following operations to finish:
db2pd -pdcollection index=getsadata_quicksnap
Creating final output archive
"db2support.html"
"db2support.map"
"db2support_options.in"
"db2supp_system.zip"
"db2supp_opt.zip"
"dbm_detailed.supp_cfg"
"ENCDB_db_versions.supp_cfg"
"admin.supp_cfg"
"ENCDB_bp.supp_cfg"
"ENCDB_bp_nodes.supp_cfg"
"ENCDB_db2pd_bufferpool.supp_cfg"
"db2nodes.cfg.supp_cfg"
"cli.supp_cfg"
"ENCDB_spcs_bp.supp_cfg"
"ENCDB_num_variableids.supp_cfg"
"ENCDB_num_routineids.supp_cfg"
"JDKlevel.supp_cfg"
"ENCDB_ngrp.supp_cfg"
"ENCDB_num_tables.supp_cfg"
"ENCDB_num_strings.supp_cfg"
"db2audit.supp_cfg"
"JCC_version.supp_cfg"
"dbm.supp_cfg"
"ENCDB_sgpaths.supp_cfg"
"JCC_config.supp_cfg"
"ENCDB_db2pd_tcbstats.supp_cfg"
"JDKPATH_version.supp_cfg"
"ENCDB_num_typeids.supp_cfg"
"ENCDB_num_xsrobjectids.supp_cfg"
"ENCDB_db_reset_status.supp_cfg"
"ENCDB_num_sequenceids.supp_cfg"
"ENCDB_num_roleids.supp_cfg"
"instance_profile.supp_out"
"ENCDB_wlm_work_class_sets.supp_out"
"ENCDB_list_tables.supp_out"
"ekeystore_cfg.supp_out"
"ENCDB_db2csap.supp_out"
"ENCDB_list_transactions.supp_out"
"ENCDB_db2pd_tablespaces.supp_out"
"ENCDB_ODBC_datasources.supp_out"
"ENCDB_wlm_work_action_sets.supp_out"
"db2licm_report.supp_out"
"ENCDB_list_packages.supp_out"
"ENCDB_list_nodes.supp_out"
"db2set.supp_out"
"ENCDB_dbsnap.supp_out"
"db2_resource_policy.supp_out"
"ENCDB_wlm_work_actions.supp_out"
"db2licm.supp_out"
"ENCDB_list_apps.supp_out"
"ENCDB_list_cmd_opts.supp_out"
"ENCDB_wlm_thresholds.supp_out"
"ENCDB_db2pd_storagegroup.supp_out"
"ENCDB_wlm_service_classes.supp_out"
"ENCDB_wlm_aval_event_mon.supp_out"
"ENCDB_wlm_workloads.supp_out"
"db2greg.supp_out"
"ENCDB_wlm_act_event_mon.supp_out"
"ENCDB_list_DRDA_trans.supp_out"
"ENCDB_wlm_work_classes.supp_out"
"db2level.supp_out"
"db2prereqcheck.supp_out"
"db2bpvars.supp_out"
"ENCDB_wlm_conn_attr.supp_out"
"ENCDB_wlm_work_class_attr.supp_out"
"shared_install_library_info.txt"
"os_info.txt"
"cpu_disk_memory_info.txt"
"lscomg.cm_out"
"lsrsrc_managedrsc.cm_out"
"lsrsrc_app.cm_out"
"lsresponse.cm_out"
"db2hareg_dump.cm_out"
"lscondresp.cm_out"
"lsrsrc_equ.cm_out"
"lsrsrc_rscgroup.cm_out"
"list_vardb2_dir.cm_out"
"lsrsrc_heartbeat_int.cm_out"
"db2pd_lsequ.cm_out"
"db2pd_getsadata_quicksnap.cm_out"
"lsrsrc_network_int.cm_out"
"lsrpdomain.cm_out"
"lsrpnode.cm_out"
"lsrsrc_peernode.cm_out"
"tsa_efix.cm_out"
"lscondition.cm_out"
"db2pd_lsrel.cm_out"
"ENCDB_tsdefaults.ts_out"
"build_info.properties"
"mimetypes.xml"
"ecmts_config_logging.properties"
"configuration.xml"
"constructors.xsd"
"ecmts_logging.properties"
"constructors.xml"
"ENCDB_tsconfiguration.ts_out"
"ENCDB_tscollectionnames.ts_out"
"configTool.supp_out"
"ENCDB_tsservers.ts_out"
"adminTool.supp_out"
"ENCDB_tsindexes.ts_out"
"trace0.log"
"ENCDB_tslocks.ts_out"
"sqls.del"
"DB2PD_2025-03-25.20.31.57.000000.3.0.out"
"iostat.out"
"157765.512.000.stack.txt"
"StackTrace.log"
"157765.149.000.stack.txt"
"157765.000.processObj.txt"
"157765.340.000.stack.txt"
"vmstat.out"
"157765.512.000.stack.txt"
"StackTrace.log"
"157765.149.000.stack.txt"
"157765.000.processObj.txt"
"157765.340.000.stack.txt"
"db2fodc.log"
"dbsnap.encdb.0480.out"
"dbsnap.encdb.0960.out"
"perfcount_fmt"
"perfcount_dmp"
"db2perfcount.out"
"perfcount_fmt"
"perfcount_dmp"
"db2perfcount.out"
"DB2PD_2025-03-25.20.35.57.000000.4.0.out"
"db2fodc.log"
"time_spent_metrics.out"
"DB2PD_2025-03-25.20.39.57.000000.5.0.out"
"TOP_EXEC_SQL.del"
"DB2PD_2025-03-25.20.23.57.000000.1.0.out"
"DB2PD_2025-03-25.20.27.57.000000.2.0.out"
"db2support.err"
"db2support.log"
db2support is now complete.
An archive file has been produced: "db2support_preupgrade.zip"
"4" warnings found during the db2support collection
"10" errors found during the db2support collection
$
$ ls -ltr
(中略)
-rw-r--r-- 1 v1159mig db2iadm1 1743579 3月 25 21:19 db2support_preupgrade.zip
$
アップグレードのためDb2インスタンスを停止し、Db2をオフラインにします。
$ db2stop
2025-03-25 21:21:28 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
$
Step2. インスタンスのアップグレード
rootユーザで実行。
# whoami
root
アップグレード開始前のインスタンスのレベルを確認
# /opt/ibm/db2/1159serv/instance/db2ilist
v1159ins
v1159mig
(他にも確認方法はありそうなものではありますが)
V11.5.9バイナリのdb2ilistコマンドにv1159migが出力されていることを確認し、アップグレードへ進む。
アップグレード
# sysctl -w fs.protected_regular=0
fs.protected_regular = 0
# /opt/ibm/db2/V12.1.1/instance/db2iupgrade -u db2fenc1 v1159mig
DBI1446I db2iupgrade コマンドの実行中です。
DB2 インストールを初期化しています。
実行されるタスクの合計数: 4
実行される全タスクの合計見積もり時間: 309 秒
タスク #1 を開始します。
説明: デフォルト・グローバル・プロファイル・レジストリー変数の設定
見積もり時間 1 秒
タスク #1 が終了しました。
タスク #2 を開始します。
説明: インスタンス・リストの初期化
見積もり時間 5 秒
タスク #2 が終了しました。
タスク #3 を開始します。
説明: DB2 インスタンスの構成
見積もり時間 300 秒
タスク #3 が終了しました。
タスク #4 を開始します。
説明: グローバル・プロファイル・レジストリーの更新
見積もり時間 3 秒
タスク #4 が終了しました。
正常に実行が完了しました。
詳しくは、「/tmp/db2iupgrade.log.203995」にある DB2
インストール・ログを参照してください。
DBI1070I プログラム db2iupgrade は正常に完了しました。
# sysctl -w fs.protected_regular=2
fs.protected_regular = 2
#
V12.1.1のdb2ilistでv1159migインスタンスが出力されることを確認
# /opt/ibm/db2/V12.1.1/instance/db2ilist
my1211
v1159mig ← V12.1.1のインスタンスになった
# /opt/ibm/db2/1159serv/instance/db2ilist
v1159ins
#
念のため違う方法でも確認。
インスタンスユーザーにsuして、db2levelコマンドを実行する
$ whoami; db2level
v1159mig
DB21085I このインスタンスまたはインストール
(該当する場合のインスタンス名: "v1159mig") は "64"
ビットおよび DB2 コード・リリース "SQL12011" をレベル ID
"02020110" で使用します。
情報トークンは、"DB2
v12.1.1.0"、"s2412161033"、"DYN2412161033AMD64"、およびフィックスパッ
ク "0" です。
製品は "/opt/ibm/db2/V12.1.1" にインストールされています。
$
アップグレードしたインスタンス配下に、暗号化データベースが存在することを確認
$ db2 list db directory
システム・データベース・ディレクトリー
ディレクトリー中の項目数 = 1
データベース 1 項目:
データベース別名 = ENCDB
データベース名 = ENCDB
ローカル・データベース・ディレクトリー = /home/v1159mig
データベース・リリース・レベル = 15.00
コメント =
ディレクトリー項目タイプ = 間接
カタログ・データベース・パーティション番号 = 0
代替サーバー・ホスト名 =
代替サーバーのポート番号 =
$
この時点ではインスタンスがV12.1に上がっただけで、データベースのリリースレベルはまだV11.5です。
(データベース・リリース・レベル = 15.00 より)
Step3. データベースのアップグレード
インスタンスをアップグレードした後、データベースをアップグレードする。
個々からの作業はインスタンスオーナーで実行する
Db2インスタンス起動
$ db2start
03/26/2025 00:54:58 0 0 SQL1063N DB2START の処理が正常に終了しました。
SQL1063N DB2START の処理が正常に終了しました。
$
データベースのアップグレード
$ db2 UPGRADE DATABASE ENCDB
DB20000I UPGRADE DATABASE コマンドが正常に完了しました。
$
私のPCでは5分足らずで完了しています。
データベースのレベルの確認
$ db2 list db directory
システム・データベース・ディレクトリー
ディレクトリー中の項目数 = 1
データベース 1 項目:
データベース別名 = ENCDB
データベース名 = ENCDB
ローカル・データベース・ディレクトリー = /home/v1159mig
データベース・リリース・レベル = 16.00
コメント =
ディレクトリー項目タイプ = 間接
カタログ・データベース・パーティション番号 = 0
代替サーバー・ホスト名 =
代替サーバーのポート番号 =
$
UPGRADE DATABASEコマンド前は 15.00 だったデータベース・リリース・レベルが 16.00 に上がっていることが確認できました。
データベースの動作確認として、DB接続を行い移行前(V11.5.9)DBで作成した表の参照・更新
$ db2 connect to encdb
データベース接続情報
データベース・サーバー = DB2/LINUXX8664 12.1.1.0
SQL 許可 ID = V1159MIG
ローカル・データベース別名 = ENCDB
$ db2 "select * from t1"
C1 C2 C3
----------- -------------------------------- --------------------------
1 v11.5.9 2025-03-25-20.01.14.473899
1 レコードが選択されました。
$ db2 "insert into t1 values(2,'v12.1.1',current timestamp)"
DB20000I SQL コマンドが正常に完了しました。
$ db2 "select * from t1"
C1 C2 C3
----------- -------------------------------- --------------------------
1 v11.5.9 2025-03-25-20.01.14.473899
2 v12.1.1 2025-03-26-01.02.39.078368
2 レコードが選択されました。
$
Step4. アップグレード後タスク
(今回は最低限の動作確認を行いたかっただけであり、省略)
https://www.ibm.com/docs/ja/db2/12.1?topic=servers-post-upgrade-tasks
一通り完了したところで、バックアップを取得します。(マイグレーション直後の状態のバックアップ)
$ db2 backup database encdb to /work/backup
バックアップは成功しました。
このバックアップ・イメージのタイム・スタンプは
20250326010547 です。
$ db2 backup database encdb online to /work/backup
バックアップは成功しました。
このバックアップ・イメージのタイム・スタンプは
20250326010604 です。
$