Question & Answer
Question
Db2 の以下の各領域が、現環境のどの場所にあるかを確認する方法を教えてください。
- 製品インストール領域
- データベース領域
- インスタンス・ディレクトリー
Answer
1. 製品インストール領域の確認方法
Linux および UNIX オペレーティング・システムの場合:
db2ls コマンドの結果から、"install Path" の内容を確認します。
実行例:
$ db2ls
Install Path Level Fix Pack Special Install Number Install Date Installer UID
---------------------------------------------------------------------------------------------------------------------
/opt/ibm/db2/V11.5 11.5.8.0 0 Sun Sep 3 19:15:19 2023 PDT 0
Windows オペレーティング・システムの場合:
以下の要領でインストール・パスを判別できます。複数 Db2 コピーがインストールされている場合、3 行以上の結果が返ります。
C:\>reg export HKLM\Software\IBM\DB2 db2.reg
C:\>type db2.reg | findstr DB2PATH
例: C:\Program Files\IBM\SQLLIB にインストールされている場合
"DB2PATH"="C:\\Program Files\\IBM\\SQLLIB"
インストール・ログからもインストール先を判別できます。インストール・ログは以下のディレクトリーに DB2-ProductAbrrev-DateTime.log (例:DB2-SERVER-Wed Feb 22 09_17_56 2023.log) という形式のファイル名で配置されています。
C:\Users\<インストールに使用したユーザー>\Documents\DB2LOG
Windows 版 Db2 製品のディレクトリー構造は、以下で確認可能です。
2. データベース領域の確認方法
ADMIN_LIST_DB_PATHS 表関数、もしくは DBPATHS 管理ビューを用いた照会結果から PATH を確認します。
いずれの照会も、事前に対象のデーターベースへの接続が必要です。
ADMIN_LIST_DB_PATHS 表関数 を用いる例:
$ db2 connect to <データベース名>
$ db2 "select dbpartitionnum, substr(type,1,20) as type, substr(PATH,1,80) as path from TABLE(ADMIN_LIST_DB_PATHS()) as files"
DBPATHS 管理ビューを用いる例:
$ db2 connect to <データベース名>
$ db2 "select dbpartitionnum, substr(type,1,20) as type, substr(path,1,80) as path from sysibmadm.dbpaths"
出力例:いずれも以下のような出力となります。
DBPARTITIONNUM TYPE PATH
-------------- -------------------- --------------------------------------------------------------------------------
0 LOGPATH /home/db2inst1/db2inst1/NODE0000/SQL00001/LOGSTREAM0000/
0 DB_STORAGE_PATH /home/db2inst1/
0 LOCAL_DB_DIRECTORY /home/db2inst1/db2inst1/NODE0000/sqldbdir/
0 DBPATH /home/db2inst1/db2inst1/NODE0000/SQL00001/
0 DBPATH /home/db2inst1/db2inst1/NODE0000/SQL00001/MEMBER0000/
5 record(s) selected.
上記の例では、/home/db2inst1/db2inst1/NODE0000/SQL00001/ およびその配下のディレクトリーが、接続しているデータベースのデータベース領域ということになります。
上記の DBPATH に配置されるファイルや DBPATH 配下のディレクトリー構造について詳しくは、以下のページをご確認ください。
3. インスタンス・パスの確認方法
Linux および UNIX オペレーティング・システムの場合:
インスタンス・ディレクトリーは $INSTHOME/sqllib ディレクトリーにあります。ここで、 INSTHOME はインスタンス所有者のホーム・ディレクトリーです。あるホストに作成されたインスタンス・パスは db2greg コマンドで一覧できます。
以下の例は /home/db2inst1/sqllib に Db2 11.5.9 を使用する db2inst1 インスタンスが存在する。などのように読み取ります。
$ db2greg -dump | grep "^I,DB2"
I,DB2,11.5.9.0,db2inst1,/home/db2inst1/sqllib,,1,0,/opt/ibm/db2/V11.5.9,,
I,DB2,11.5.8.0,db2inst2,/home/db2inst2/sqllib,,1,0,/opt/ibm/db2/V11.5,,
root インストールの場合のデフォルトのディレクトリーは、以下のページで確認可能です。
インストール済み Db2 データベース製品のディレクトリー構造 (Linux®)
インストール済み Db2 データベース製品のディレクトリー構造 (Linux®)
Windows オペレーティング・システムの場合:
以下の要領で各 Db2 コピーのインスタンスのプロファイル・ディレクトリーを確認できます。各インスタンスのディレクトリーはプロファイル・ディレクトリー以下のインスタンス名のディレクトリーです。
C:\>reg export HKLM\Software\IBM\DB2 db2.reg
C:\>type db2.reg | findstr DB2INSTPROF
例: Db2 コピー DB2COPY1 のインスタンス・プロファイルが C:\ProgramData\IBM\DB2\DB2COPY1 に設定されている場合
"DB2INSTPROF"="C:\\PROGRAMDATA\\IBM\\DB2\\DB2COPY1"
上記のパスは、DB2INSTPROF システム環境変数で変更が可能であり、DB2INSTPROF を db2set -g により明示的に設定している場合には、"db2set DB2INSTPROF" コマンドの結果から設定値の確認が可能です。
Db2 製品を最初にインストールしたときの Db2 コピー名のデフォルトは、"DB2COPY1" です。同じマシンにさらに導入を続けた場合、Db2 コピー名は、"DB2COPY2"、"DB2COPY3" などのデフォルト名になり、それぞれの Db2 コピーごとに Db2 コピー名に基づくインスタンス・ディレクトリーが生成されます。
Windows 版の Db2 のインストール後のディレクトリー構造については、以下のページで確認が可能です。
運用上の考慮点
- Flash Copy など、BACKUP DATABASE コマンド以外の方法でバックアップを行う際に、コピーの対象がどの領域かは重要となります。
[Db2] Db2 関連の各領域のバックアップ取得方法 - DBPATH は、CREATE DATABASE コマンド実行時に DBPATH ON で指定が可能です。現在のデータベース領域 ( データベース・パス ) を変更したい場合、db2relocate コマンドを用いる方法があります。詳しくは以下のテックノートをご確認ください。
[Db2] データベース・パスの変更方法 (IM-10-00O)
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PknAAE","label":"Install\/Migrate\/Upgrade"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
26 March 2024
UID
ibm17129881