OCIの異機種DBLINK検証環境構築メモ ~その3 [OCI]
前回に続き、今回はOCI上にDB2を構成してみよう。
1.VCNの設定
2.DBCSの構築
3.DB設定(初期化パラメータ設定、PDB構築)
4.SQL Serverの構築
5.LinkedServerの構成
6.DB2の構築 ★
7.Federationの構成 ★
8.OracleGWの構築
9.SQL ServerへのDBLINKの構成
10.DB2へのDBLINKの構成
今回は検証目的なので手っ取り早くOracle Linux上にDB2を構成したが、サポートマトリクスを見るとDB2がOracle Linuxをサポートしていないので、基本的にこの構成はお勧めしない。OSとしてはRHELが一般的だろうが、OCIのイメージにはRHELがないので、RHELを手動で入れるか、DB2がサポートしているCentOSやUbuntuを選択すると良いだろう。もっとも、エンタープライズ用途でCentやUbuntuをDB2のOSとして使うのかという感はあるが、そもそもOCI上にDB2を構成するケース自体が稀だろうから、あまり悩む問題ではないのかもしれない。
まずはOracle Linuxコンピュートインスタンスを構築する。基本的にはOCIのメニューのComputeのInstanceからCreate Instanceを選択し作成する。イメージはデフォルトOracle Linux7.9なので、そのままとする。この際、SSHの秘密鍵、公開鍵をダウンロードする。シェイプはVM.Standard.E2.1.Micro (OCPU 1, memory 1GB, Boot volume 47GB)となった。作成されたら、Instance Detail画面のInstant AccessでパブリックIPアドレスを確認しておく。このデフォルトのシェイプはDBを動かす用途としては少し小さすぎたと後で反省した。
以上で、基本的な構成は終了である。手元のPCからSSHで暗号鍵を使ってパブリックIPに接続できることを確認する。タイムゾーンをUTCからAsia/Tokyoに変更しておく。
環境を確認してみよう。OSのバージョンは以下の通りOracle Linux 7.9となっている。
ローカルディスクは39GB、利用できるのは36GB程度。
メモリは686MB。Hugepageは当然構成されていない。
CPUは2コア見える。実体は32コアのものから切り出しているようだ。
今回はdb2setupを利用してインストールすることにする。手順は参考[2]を参考にしながら行った。
DB2のCommunity Edition(メモリ16GB、4コアの制限あり)のバイナリを以下のサイトからダウンロードする。最新のバージョンで11.5.6を利用する。
https://www.ibm.com/analytics/db2/trials
/tmpにDB2のバイナリを転送し解凍する(/tmpはいずれ削除されるので、インストーラを残したい場合は/tmpは避けた方が良い)。インストーラはdb2setupである。
手順に従ってプレチェックを走らせる。今回必要なはDB2 Database "Server"にパッケージが不足している旨のメッセージが出ている。
DB2 database "Server"に不足している以下の32bitパッケージをインストールする。yumリポジトリは構成されているので、以下コマンドを実行するだけでインストールは可能。pureSclaeやTSAを利用する場合はさらにいろいろと必要なようであるが、今回は使用しないので、無視する。
yum install libstdc++.i686
yum install pam.i686
もう一度precheckを流したところ、全部OKとなった。
参考[4]を見ながらX11を設定する。XserverはXmingを利用、ターミナルはPuttyを利用することとし、端末側にセットアップする。Oracle Linuxサーバ上では以下を変更する。
Xを利用する上での注意は、opcでログインしてから、sudoでユーザを切り替える際、xauthの内容を以下のように引き継ぐ必要がある点である。自動でできると良いのだが、やり方がわからないので、手動で実行する(初めての使うときは、/root/.Xauthorityがないため、touchでファイルだけ作成する)。
db2setupを起動するといくつか不足しているXのパッケージで引っかかるのでそれらをインストールする。ここはトライ&エラーで必要なパッケージを洗い出したが、結果としては以下4つのパッケージである。
yum install xauth
yum install libXrender.x86_64
yum install libXtst
yum install libXft
ようやくdb2setupの画面を見ることができた。
インストーラが立ち上がれば、後はウィザードに従って必要事項を入力していくだけ、製品インストールと必要なOSユーザ(インスタンスオーナー用とフェンスユーザ用)とインスタンス作成まで実行してくれる。
Server Editionを選択
TypicalとCustomがあるが、Typicalを選択。create an instanceをチェック。I agree to the IBM and Non-IBM termsにチェック。
Instance Ownerとして新規ユーザを作成する。Passwordにパスワードを入力。他デフォルト(user name: db2inst1, use default UID, group name:db2iadm1, use default GID, Home directory:/home/db2inst1)とする。
Fenced Userも同様に作成。
Response File and Summary画面で、Install DB2 Server Edition on this computer and save my setting in a response fileを選択しFinishを押下。レスポンスファイルは/root/db2server.rspに作成される。参考まで、今回のインストールで作成されたレスポンスファイルは参考ファイル[1]に載せておく。これがあれば、次回同じ構成を作成する際に画面は不要となり、Xを構成する必要はないかもしれない。
インストールが始まる。しばらくかかる。
インストール完了。Post-install stepsを押下。
インスタンスオーナーとインスタンスのポートを確認する。この例では、インスタンスオーナのユーザIDはdb2inst1、db2inst1インスタンスのポートは25010となった。その他、インストール結果の検証方法等が記載されているので一通り確認する。
インストールされた環境を確認してみよう。
まずはインスタンスオーナーにログインしてインスタンスを起動する。
インスタンスのコンフィグはdb2 get dbm cfgで確認できる。全体の出力結果は、参考ファイル[2]を参照されたい。
DBを作成する。ここではtestdbという名前のデータベースとした。
データベースに接続する。
テーブルを作成し、レコードを入れてみる。なんとなくDBとして動く状態にはなったように見える。
データベースへの接続を停止する。これをしないとインスタンスの停止はできない。
Oracleクライアントをインストールする準備を行う。まずはOTNからバイナリ(LINUX.X64_193000_client.zip)をダウンロード、サーバに配置し解凍する。
Oracle Database 19c Client (19.3) for Linux x86-64
https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html
以下の通りoracleユーザを作成する。念のためDBCS側のuid(101),gid(1001)は合わせておく。パスワードも設定しておく。
インストールディレクトリを作成する。今回は/u01/app/oracle配下にインストールする。
oracleユーザでログインし、前述したxauth addしてXが起動できるようにしてからrunInstallerを起動する。以下のワーニングがでるが、yとする。
インストールタイプはAdministratorを選択する。Instant ClientでもFederationは構成できるはずであるが、検証目的なので全て入れておくことにした。
インストールロケーションはoracle baseとして先に作成したディレクトリを入力。ソフトウェアロケーションはデフォルト値のままとする。
初めてのインストールなのでoraInventoryを指定する。これも先に作成したディレクトリを指定する。
prerequisite checkでいくつかパッケージ不足のメッセージが表示される。今回は以下パッケージを追加インストールし、check againを押下し全てパスすることを確認する。
yum install compat-libcap1.x86_64 libstdc++-devel.x86_64 libaio-devel.x86_64 psmisc.x86_64
サマリ画面。レスポンスファイルを保存しておく。実際の内容は参考ファイル[3]を参照されたい。
インストールの途中でrootでスクリプトを実行する。
以上でOracleクライアントのインストールは完了。
oracleユーザの.bash_profileに以下★の環境変数の設定を追加・変更する。
tnsnames.oraを作成する。今回接続先となるDBCSのインスタンス(PDB)の接続識別子(k5)を作成する。
tnspingで疎通確認を行う。問題なし。
続いてsqlplusで接続する。こちらも問題なし。
以上でOracleクライアントの設定は完了である。
oinstallにdb2inst1,db2fenc1を追加する。必須ではないが、これにより、DB2のOSユーザでoerrコマンドなど、いくつかOracleの基本的なコマンドが動作しない問題が解決する。
DB2ユーザ(db2inst1)の環境変数の設定を行う。.bash_profileに以下★の設定を追加・変更する。db2inst1ユーザからtnspingおよびsqlplusでDBCSのPDBへ接続できることを確認する。
OracleへのFederation Serverの構成方法は参考[3]のドキュメントを参考にしながら行った。
ファイルは/home/db2inst1/sqllib/cfg/db2dj.iniにあるので、★の部分を追加する。
続いて、NET8ラッパーを作成する。DB2インスタンスを起動、testdbへ接続し、CREATE WRAPPER NET8を実行する。
SQL20076Nのエラーが発生した。以下サイトを見ると、どうやらdatabase managerのfederated yesの設定変更してインスタンス再起動が必要とのことである。
https://www.ibm.com/support/pages/what-causes-error-sql20076n
実際に上記設定変更を行う。特に問題なくインスタンスの再起動まで完了。
再度CREATE WRAPPER NET8を行うと成功した。
続いてサーバを作成する。
ユーザマッピングの設定を行う。上記で作成したサーバにOracle側の接続ユーザの認証情報を設定する。
以上でFederationの設定は完了である。実際にOracleへのSQLが通るか確認すると、うまくいった!
ちなみにDB2ではシノニムはニックネームとして作成することができる。以下のようにニックネームを作成することでサーバ名を隠蔽することが可能である。
OCI上でDB2をインストール、データベースを作成し、Oracleクライアントをインストール・設定し、Federation Serverを構成しOracleへ接続する方法について記載した。Oracle LinuxでDB2は動くのかは不安はあったが、必須パッケージをきちんと準備すればインストールでき、今回検証した範囲では特に問題なく動作することを確認した。次回はOracleGatewayの構成方法について記載してみたいと思う。
[1] 即戦力のDB2管理術
[2] Installing Db2 servers using the Db2 Setup wizard (Linux and UNIX)
[3] How does Federation Server connect to Oracle data source via Instant Client?
[4] Running Graphical Applications Securely on Oracle Cloud Infrastructure
[1] DB2のインストーラのレスポンスファイル
[2] DB2インスタンスのコンフィグ
[3] Oracle Clientのレスポンスファイル
1.VCNの設定
2.DBCSの構築
3.DB設定(初期化パラメータ設定、PDB構築)
4.SQL Serverの構築
5.LinkedServerの構成
6.DB2の構築 ★
7.Federationの構成 ★
8.OracleGWの構築
9.SQL ServerへのDBLINKの構成
10.DB2へのDBLINKの構成
今回は検証目的なので手っ取り早くOracle Linux上にDB2を構成したが、サポートマトリクスを見るとDB2がOracle Linuxをサポートしていないので、基本的にこの構成はお勧めしない。OSとしてはRHELが一般的だろうが、OCIのイメージにはRHELがないので、RHELを手動で入れるか、DB2がサポートしているCentOSやUbuntuを選択すると良いだろう。もっとも、エンタープライズ用途でCentやUbuntuをDB2のOSとして使うのかという感はあるが、そもそもOCI上にDB2を構成するケース自体が稀だろうから、あまり悩む問題ではないのかもしれない。
6.DB2の構築
(1)Oracle Linuxコンピュートインスタンスの構築
まずはOracle Linuxコンピュートインスタンスを構築する。基本的にはOCIのメニューのComputeのInstanceからCreate Instanceを選択し作成する。イメージはデフォルトOracle Linux7.9なので、そのままとする。この際、SSHの秘密鍵、公開鍵をダウンロードする。シェイプはVM.Standard.E2.1.Micro (OCPU 1, memory 1GB, Boot volume 47GB)となった。作成されたら、Instance Detail画面のInstant AccessでパブリックIPアドレスを確認しておく。このデフォルトのシェイプはDBを動かす用途としては少し小さすぎたと後で反省した。
以上で、基本的な構成は終了である。手元のPCからSSHで暗号鍵を使ってパブリックIPに接続できることを確認する。タイムゾーンをUTCからAsia/Tokyoに変更しておく。
[root@db2 ~]# cp /etc/localtime /etc/localtime.org [root@db2 ~]# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime [root@db2 ~]# ll /etc/localtime* lrwxrwxrwx. 1 root root 30 Sep 18 15:48 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo lrwxrwxrwx. 1 root root 25 Aug 19 02:32 /etc/localtime.org -> ../usr/share/zoneinfo/GMT [root@db2 ~]#
(2)Oracle Linuxの環境の確認
環境を確認してみよう。OSのバージョンは以下の通りOracle Linux 7.9となっている。
[root@db2 ~]# cat /etc/oracle-release Oracle Linux Server release 7.9 [root@db2 ~]# uname -a Linux db2 5.4.17-2102.204.4.4.el7uek.x86_64 #2 SMP Tue Aug 17 20:25:28 PDT 2021 x86_64 x86_64 x86_64 GNU/Linux [root@db2 ~]#
ローカルディスクは39GB、利用できるのは36GB程度。
[opc@db2 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 313M 0 313M 0% /dev tmpfs 344M 0 344M 0% /dev/shm tmpfs 344M 5.1M 339M 2% /run tmpfs 344M 0 344M 0% /sys/fs/cgroup /dev/sda3 39G 3.2G 36G 9% / ★ /dev/sda1 200M 7.5M 193M 4% /boot/efi tmpfs 69M 0 69M 0% /run/user/0 tmpfs 69M 0 69M 0% /run/user/994 tmpfs 69M 0 69M 0% /run/user/1000
メモリは686MB。Hugepageは当然構成されていない。
[root@db2 ~]# free total used free shared buff/cache available Mem: 703108 262004 67392 47228 373712 268608 Swap: 8388604 301056 8087548 [root@db2 ~]# [root@db2 ~]# cat /proc/meminfo MemTotal: 703108 kB MemFree: 64756 kB MemAvailable: 266064 kB Buffers: 20 kB Cached: 306076 kB ... HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB DirectMap4k: 226192 kB DirectMap2M: 817152 kB DirectMap1G: 0 kB [root@db2 ~]#
CPUは2コア見える。実体は32コアのものから切り出しているようだ。
[root@db2 ~]# cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 23 model : 1 model name : AMD EPYC 7551 32-Core Processor stepping : 2 microcode : 0x1000065 cpu MHz : 1996.246 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves nt_good clzero xsaveerptr virt_ssbd arat arch_capabilities bugs : sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass bogomips : 3992.49 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: processor : 1 vendor_id : AuthenticAMD cpu family : 23 ...
(3)DB2のインストール準備
今回はdb2setupを利用してインストールすることにする。手順は参考[2]を参考にしながら行った。
DB2のCommunity Edition(メモリ16GB、4コアの制限あり)のバイナリを以下のサイトからダウンロードする。最新のバージョンで11.5.6を利用する。
https://www.ibm.com/analytics/db2/trials
/tmpにDB2のバイナリを転送し解凍する(/tmpはいずれ削除されるので、インストーラを残したい場合は/tmpは避けた方が良い)。インストーラはdb2setupである。
[opc@db2 ~]$ ll /tmp total 2034632 -rw-------. 1 root root 995 Sep 18 00:07 dhclient-exit-hooksTev.log drwx------. 3 root root 17 Sep 18 00:07 systemd-private-ef825e99a66941098bbb8b10143e1fb0-chronyd.service-3zBi0J -rw-r--r--. 1 opc opc 2083458415 Sep 14 05:10 v11.5.6_linuxx64_server_dec.tar.gz ★ [opc@db2 ~]$ gunzip -c v11.5.6_linuxx64_server_dec.tar.gz | tar -xvf- ... [root@db2 tmp]# ls server_dec/db2/linuxamd64/install/ codegen.jar DB2prereqs.xml libdb2jcc.so compileGPL db2remssh libdb2jcc.so.1 db2chglibpath db2rocmc libdb2locale_install.so db2ckgpfs db2_run_as libdb2locale_install.so.1 db2ckpcmk db2scp libdb2locale.so db2cktsa db2setup★ libdb2locale.so.1 ...
(4)DB2のプレチェック
手順に従ってプレチェックを走らせる。今回必要なはDB2 Database "Server"にパッケージが不足している旨のメッセージが出ている。
[root@db2 server_dec]# ./db2prereqcheck -v 11.5.6.0 -s Requirement not matched for DB2 database "Server" . Version: "11.5.6.0". Summary of prerequisites that are not met on the current system: DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/libpam.so*". DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "libstdc++.so.6". Requirement not matched for DB2 database "Server" with pureScale feature . Version: "11.5.6.0". Summary of prerequisites that are not met on the current system: DBT3613E The db2prereqcheck utility failed to verify the prerequisites for TSA. Ensure your machine meets all the TSA installation prerequisites. DBT3507E The db2prereqcheck utility failed to find the following package or file: "patch". Actual version is undetermined: "kernel-headers". DBT3617E The db2prereqcheck utility detected that a "kernel-headers" package with a version that matches the system "kernel" level "5.4.17-2102.204.4.4.el7uek.x86_64" is not installed. DBT3507E The db2prereqcheck utility failed to find the following package or file: "kernel-devel". DBT3507E The db2prereqcheck utility failed to find the following package or file: "m4". DBT3507E The db2prereqcheck utility failed to find the following package or file: "gcc-c++". DBT3563E The db2prereqcheck utility determined that SELinux is enabled, which is not supported with GPFS.
DB2 database "Server"に不足している以下の32bitパッケージをインストールする。yumリポジトリは構成されているので、以下コマンドを実行するだけでインストールは可能。pureSclaeやTSAを利用する場合はさらにいろいろと必要なようであるが、今回は使用しないので、無視する。
yum install libstdc++.i686
yum install pam.i686
もう一度precheckを流したところ、全部OKとなった。
[root@db2 server_dec]# ./db2prereqcheck -v 11.5.6.0 -s DBT3533I The db2prereqcheck utility has confirmed that all installation prerequisites were met.★ ・・・
(5)X11の設定
参考[4]を見ながらX11を設定する。XserverはXmingを利用、ターミナルはPuttyを利用することとし、端末側にセットアップする。Oracle Linuxサーバ上では以下を変更する。
[root@db2 opc]# vi /etc/ssh/sshd_config [root@db2 opc]# cat /etc/ssh/sshd_config | grep X11UseLocalhost #X11UseLocalhost yes X11UseLocalhost no
Xを利用する上での注意は、opcでログインしてから、sudoでユーザを切り替える際、xauthの内容を以下のように引き継ぐ必要がある点である。自動でできると良いのだが、やり方がわからないので、手動で実行する(初めての使うときは、/root/.Xauthorityがないため、touchでファイルだけ作成する)。
[opc@db2 ~]$ xauth list db2.subnet.vcn.oraclevcn.com:10 MIT-MAGIC-COOKIE-1 f6d909c7dfe75cd7e539c52068473291 [opc@db2 ~]$ sudo -s [root@db2 opc]# xauth list ★opcのxauthが引き継がれていない(古い値になっている)ため、手動でxauth addする db2.subnet.vcn.oraclevcn.com:10 MIT-MAGIC-COOKIE-1 1ae63e695284309e06b4f39b928ab8da [root@db2 opc]# xauth add db2.subnet.vcn.oraclevcn.com:10 MIT-MAGIC-COOKIE-1 f6d909c7dfe75cd7e539c52068473291 [root@db2 opc]# xauth list ★opcのxauthが追加された db2.subnet.vcn.oraclevcn.com:10 MIT-MAGIC-COOKIE-1 f6d909c7dfe75cd7e539c52068473291 [root@db2 opc]#
db2setupを起動するといくつか不足しているXのパッケージで引っかかるのでそれらをインストールする。ここはトライ&エラーで必要なパッケージを洗い出したが、結果としては以下4つのパッケージである。
yum install xauth
yum install libXrender.x86_64
yum install libXtst
yum install libXft
ようやくdb2setupの画面を見ることができた。
(6)db2setupによるDB2のインストール
インストーラが立ち上がれば、後はウィザードに従って必要事項を入力していくだけ、製品インストールと必要なOSユーザ(インスタンスオーナー用とフェンスユーザ用)とインスタンス作成まで実行してくれる。
Server Editionを選択
TypicalとCustomがあるが、Typicalを選択。create an instanceをチェック。I agree to the IBM and Non-IBM termsにチェック。
Instance Ownerとして新規ユーザを作成する。Passwordにパスワードを入力。他デフォルト(user name: db2inst1, use default UID, group name:db2iadm1, use default GID, Home directory:/home/db2inst1)とする。
Fenced Userも同様に作成。
Response File and Summary画面で、Install DB2 Server Edition on this computer and save my setting in a response fileを選択しFinishを押下。レスポンスファイルは/root/db2server.rspに作成される。参考まで、今回のインストールで作成されたレスポンスファイルは参考ファイル[1]に載せておく。これがあれば、次回同じ構成を作成する際に画面は不要となり、Xを構成する必要はないかもしれない。
インストールが始まる。しばらくかかる。
インストール完了。Post-install stepsを押下。
インスタンスオーナーとインスタンスのポートを確認する。この例では、インスタンスオーナのユーザIDはdb2inst1、db2inst1インスタンスのポートは25010となった。その他、インストール結果の検証方法等が記載されているので一通り確認する。
インストールされた環境を確認してみよう。
[db2inst1@db2 bin]$ db2val DBI1379I The db2val command is running. This can take several minutes. DBI1335I Installation file validation for the DB2 copy installed at /opt/ibm/db2/V11.5 was successful. ★インストール検証OK DBI1339I The instance validation for the instance db2inst1 was successful. ★インスタンス検証OK DBI1343I The db2val command completed successfully. For details, see the log file /tmp/db2val-210918_062559.log. [db2inst1@db2 bin]$ db2licm -l Product name: "DB2 Community Edition" ★コミュニティエディション License type: "Community" Expiry date: "Permanent" Product identifier: "db2dec" Version information: "11.5" Max amount of memory (GB): "16" Max number of cores: "4" Features: IBM DB2 Performance Management Offering: "Not licensed" [db2inst1@db2 bin]$ db2level DB21085I This instance or install (instance name, where applicable: "db2inst1") uses "64" bits and DB2 code release "SQL11056" with level identifier "0607010F". Informational tokens are "DB2 v11.5.6.0", "s2106111000", "DYN2106111000AMD64", ★バージョン11.5.6パッチなし and Fix Pack "0". Product is installed at "/opt/ibm/db2/V11.5". ★インストールディレクトリ
(7)DB2のデータベース作成
まずはインスタンスオーナーにログインしてインスタンスを起動する。
[opc@db2 ~]$ sudo su - db2inst1 [db2inst1@db2 ~]$ db2start 09/18/2021 15:51:33 0 0 SQL1026N The database manager is already active. SQL1026N The database manager is already active. ★すでに起動している [db2inst1@db2 ~]$ db2stop ★停止する 09/18/2021 15:51:49 0 0 SQL1064N DB2STOP processing was successful. SQL1064N DB2STOP processing was successful. [db2inst1@db2 ~]$ db2start ★起動する 09/18/2021 15:51:55 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful. [db2inst1@db2 ~]$
インスタンスのコンフィグはdb2 get dbm cfgで確認できる。全体の出力結果は、参考ファイル[2]を参照されたい。
[db2inst1@db2 ~]$ db2 get dbm cfg Database Manager Configuration Node type = Enterprise Server Edition with local and remote clients ... Default database path (DFTDBPATH) = /home/db2inst1 Database monitor heap size (4KB) (MON_HEAP_SZ) = AUTOMATIC(90) Java Virtual Machine heap size (4KB) (JAVA_HEAP_SZ) = 65536 Audit buffer size (4KB) (AUDIT_BUF_SZ) = 0 Global instance memory (% or 4KB) (INSTANCE_MEMORY) = AUTOMATIC(131833) Member instance memory (% or 4KB) = GLOBAL Agent stack size (AGENT_STACK_SZ) = 1024 Sort heap threshold (4KB) (SHEAPTHRES) = 0 Directory cache support (DIR_CACHE) = YES Application support layer heap size (4KB) (ASLHEAPSZ) = 15 Max requester I/O block size (bytes) (RQRIOBLK) = 65535 Workload impact by throttled utilities(UTIL_IMPACT_LIM) = 10 ... [db2inst1@db2 ~]$
DBを作成する。ここではtestdbという名前のデータベースとした。
[db2inst1@db2 ~]$ db2 create database testdb DB20000I The CREATE DATABASE command completed successfully.
データベースに接続する。
[db2inst1@db2 ~]$ db2 connect to testdb Database Connection Information Database server = DB2/LINUXX8664 11.5.6.0 SQL authorization ID = DB2INST1 Local database alias = TESTDB
テーブルを作成し、レコードを入れてみる。なんとなくDBとして動く状態にはなったように見える。
[db2inst1@db2 ~]$ db2 "CREATE TABLE TBL1(COL1 INTEGER, COL2 VARCHAR(50))" DB20000I The SQL command completed successfully. [db2inst1@db2 ~]$ db2 "select * from tbl1" COL1 COL2 ----------- -------------------------------------------------- 0 record(s) selected. [db2inst1@db2 ~]$ [db2inst1@db2 ~]$ db2 "insert into tbl1 values(1,'kzhr')" DB20000I The SQL command completed successfully. [db2inst1@db2 ~]$ db2 "commit" DB20000I The SQL command completed successfully. [db2inst1@db2 ~]$ db2 "select * from tbl1" COL1 COL2 ----------- -------------------------------------------------- 1 kzhr 1 record(s) selected.
データベースへの接続を停止する。これをしないとインスタンスの停止はできない。
[db2inst1@db2 ~]$ [db2inst1@db2 ~]$ db2 terminate DB20000I The TERMINATE command completed successfully. [db2inst1@db2 ~]$ db2stop 09/18/2021 16:02:21 0 0 SQL1064N DB2STOP processing was successful. SQL1064N DB2STOP processing was successful. [db2inst1@db2 ~]$
7.Federationの構成
(1)Oracleクライアントのインストール準備
Oracleクライアントをインストールする準備を行う。まずはOTNからバイナリ(LINUX.X64_193000_client.zip)をダウンロード、サーバに配置し解凍する。
Oracle Database 19c Client (19.3) for Linux x86-64
https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html
以下の通りoracleユーザを作成する。念のためDBCS側のuid(101),gid(1001)は合わせておく。パスワードも設定しておく。
[root@db2 tmp]# groupadd -g 1001 oinstall [root@db2 tmp]# useradd -u 101 -g oinstall oracle [root@db2 tmp]# su - oracle [oracle@db2 ~]$ id uid=101(oracle) gid=1001(oinstall) groups=1001(oinstall) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [oracle@db2 ~]$ [root@db2 tmp]# passwd oracle
インストールディレクトリを作成する。今回は/u01/app/oracle配下にインストールする。
[root@db2 tmp]# mkdir -p /u01/app/oracle [root@db2 tmp]# ll /u01/app total 0 drwxr-xr-x. 2 root root 6 Sep 19 01:26 oracle [root@db2 tmp]# chown oracle:oinstall /u01/app/oracle [root@db2 tmp]# ll /u01/app total 0 drwxr-xr-x. 2 oracle oinstall 6 Sep 19 01:26 oracle [root@db2 tmp]# mkdir -p /u01/app/oraInventory [root@db2 tmp]# chown oracle:oinstall /u01/app/oraInventory [root@db2 tmp]#
(2)Oracleクライアントのインストール
oracleユーザでログインし、前述したxauth addしてXが起動できるようにしてからrunInstallerを起動する。以下のワーニングがでるが、yとする。
Checking monitor: must be configured to display at least 256 colors >>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<< Some requirement checks failed. You must fulfill these requirements before continuing with the installation, Continue? (y/n) [n]
インストールタイプはAdministratorを選択する。Instant ClientでもFederationは構成できるはずであるが、検証目的なので全て入れておくことにした。
インストールロケーションはoracle baseとして先に作成したディレクトリを入力。ソフトウェアロケーションはデフォルト値のままとする。
初めてのインストールなのでoraInventoryを指定する。これも先に作成したディレクトリを指定する。
prerequisite checkでいくつかパッケージ不足のメッセージが表示される。今回は以下パッケージを追加インストールし、check againを押下し全てパスすることを確認する。
yum install compat-libcap1.x86_64 libstdc++-devel.x86_64 libaio-devel.x86_64 psmisc.x86_64
サマリ画面。レスポンスファイルを保存しておく。実際の内容は参考ファイル[3]を参照されたい。
インストールの途中でrootでスクリプトを実行する。
[root@db2 tmp]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInventory to oinstall. The execution of the script is complete.
以上でOracleクライアントのインストールは完了。
(3)Oracleクライアントの設定
oracleユーザの.bash_profileに以下★の環境変数の設定を追加・変更する。
[oracle@db2 ~]$ cat ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi export ORACLE_HOME=/u01/app/oracle/product/19.0.0/client_1 ★ export NLS_LANG=Japanese_Japan.AL32UTF8 ★ # User specific environment and startup programs PATH=$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin ★
tnsnames.oraを作成する。今回接続先となるDBCSのインスタンス(PDB)の接続識別子(k5)を作成する。
[oracle@db2 ~]$ cd $ORACLE_HOME/network/admin [oracle@db2 admin]$ vi tnsnames.ora [oracle@db2 admin]$ cat tnsnames.ora k5 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = k5.subnet.vcn.oraclevcn.com) ) )
tnspingで疎通確認を行う。問題なし。
[oracle@db2 admin]$ tnsping k5 TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 19-9月 -2021 02:06:51 Copyright (c) 1997, 2019, Oracle. All rights reserved. パラメータ・ファイルを使用しました: /u01/app/oracle/product/19.0.0/client_1/network/admin/sqlnet.ora エイリアスを解決するためにTNSNAMESアダプタを使用しました。 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = k5.subnet.vcn.oraclevcn.com)))に接続の試行中 OK (10ミリ秒)
続いてsqlplusで接続する。こちらも問題なし。
[oracle@db2 admin]$ sqlplus f/***@k5 SQL*Plus: Release 19.0.0.0.0 - Production on 日 9月 19 02:11:01 2021 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. 最終正常ログイン時間: 金 9月 17 2021 14:23:53 +09:00 Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production Version 19.11.0.0.0 に接続されました。 SQL>
以上でOracleクライアントの設定は完了である。
(4)DB2ユーザの設定
oinstallにdb2inst1,db2fenc1を追加する。必須ではないが、これにより、DB2のOSユーザでoerrコマンドなど、いくつかOracleの基本的なコマンドが動作しない問題が解決する。
[root@db2 opc]# id db2inst1 uid=1001(db2inst1) gid=101(db2iadm1) groups=101(db2iadm1) [root@db2 opc]# usermod -aG oinstall db2inst1 [root@db2 opc]# id db2inst1 uid=1001(db2inst1) gid=101(db2iadm1) groups=101(db2iadm1),1001(oinstall) ★
DB2ユーザ(db2inst1)の環境変数の設定を行う。.bash_profileに以下★の設定を追加・変更する。db2inst1ユーザからtnspingおよびsqlplusでDBCSのPDBへ接続できることを確認する。
[db2inst1@db2 ~]$ cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi export ORACLE_HOME=/u01/app/oracle/product/19.0.0/client_1★ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH★ export NLS_LANG=Japanese_Japan.AL32UTF8★ # User specific environment and startup programs PATH=$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin★ export PATH
(5)Federationの構成
OracleへのFederation Serverの構成方法は参考[3]のドキュメントを参考にしながら行った。
db2dj.iniに以下のoracleの設定を追加する。 ORACLE_HOME=/u01/app/oracle/product/19.0.0/client_1 DB2LIBPATH=/u01/app/oracle/product/19.0.0/client_1/lib NLS_LANG=Japanese_Japan.AL32UTF8
ファイルは/home/db2inst1/sqllib/cfg/db2dj.iniにあるので、★の部分を追加する。
[db2inst1@db2 cfg]$ cat /home/db2inst1/sqllib/cfg/db2dj.ini DJX_ODBC_LIBRARY_PATH=/home/db2inst1/sqllib/federation/odbc/lib: DB2_FED_LIBPATH=/home/db2inst1/sqllib/federation/odbc/lib:/home/db2inst1/sqllib/federation/netezza/lib64: ODBCINST=/home/db2inst1/sqllib/cfg/odbcinst.ini NZ_ODBC_INI_PATH=/home/db2inst1/sqllib/cfg [db2inst1@db2 cfg]$ cp db2dj.ini db2dj.ini.org [db2inst1@db2 cfg]$ vi db2dj.ini [db2inst1@db2 cfg]$ cat db2dj.ini DJX_ODBC_LIBRARY_PATH=/home/db2inst1/sqllib/federation/odbc/lib: DB2_FED_LIBPATH=/home/db2inst1/sqllib/federation/odbc/lib:/home/db2inst1/sqllib/federation/netezza/lib64: ODBCINST=/home/db2inst1/sqllib/cfg/odbcinst.ini NZ_ODBC_INI_PATH=/home/db2inst1/sqllib/cfg ORACLE_HOME=/u01/app/oracle/product/19.0.0/client_1 ★ DB2LIBPATH=/u01/app/oracle/product/19.0.0/client_1/lib ★ NLS_LANG=Japanese_Japan.AL32UTF8 ★
続いて、NET8ラッパーを作成する。DB2インスタンスを起動、testdbへ接続し、CREATE WRAPPER NET8を実行する。
[db2inst1@db2 ~]$ db2start 09/19/2021 14:40:49 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful. [db2inst1@db2 ~]$ db2 "connect to testdb" Database Connection Information Database server = DB2/LINUXX8664 11.5.6.0 SQL authorization ID = DB2INST1 Local database alias = TESTDB [db2inst1@db2 ~]$ db2 "CREATE WRAPPER NET8" DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL20076N The instance for the database is not enabled for the specified action or operation. Reason code = "1". SQLSTATE=0A502
SQL20076Nのエラーが発生した。以下サイトを見ると、どうやらdatabase managerのfederated yesの設定変更してインスタンス再起動が必要とのことである。
https://www.ibm.com/support/pages/what-causes-error-sql20076n
・What causes error SQL20076N ? Cause:Error SQL20076N is received when the FEDERATED database manager configuration parameter is not enabled. Answer: 1. Set the FEDERATED database manager configuration parameter to YES by entering the following statement using the command line processor: db2 update database manager configuration using federated yes 2. Restart the DB2 instance by typing the following commands using the command line processor: db2stop db2start
実際に上記設定変更を行う。特に問題なくインスタンスの再起動まで完了。
[db2inst1@db2 ~]$ db2 update database manager configuration using federated yes DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully. [db2inst1@db2 ~]$ db2 terminate DB20000I The TERMINATE command completed successfully. [db2inst1@db2 ~]$ db2stop 09/19/2021 15:09:06 0 0 SQL1064N DB2STOP processing was successful. SQL1064N DB2STOP processing was successful. [db2inst1@db2 ~]$ db2start 09/19/2021 15:09:11 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful. [db2inst1@db2 ~]$
再度CREATE WRAPPER NET8を行うと成功した。
[db2inst1@db2 ~]$ db2 connect to testdb Database Connection Information Database server = DB2/LINUXX8664 11.5.6.0 SQL authorization ID = DB2INST1 Local database alias = TESTDB [db2inst1@db2 ~]$ db2 "CREATE WRAPPER NET8" DB20000I The SQL command completed successfully. ★ [db2inst1@db2 ~]$
続いてサーバを作成する。
[db2inst1@db2 ~]$ db2 "create server k5 type oracle version 19.0 wrapper NET8 options (node 'k5', password 'Y', pushdown 'Y')" DB20000I The SQL command completed successfully. [db2inst1@db2 ~]$
ユーザマッピングの設定を行う。上記で作成したサーバにOracle側の接続ユーザの認証情報を設定する。
[db2inst1@db2 ~]$ db2 "create user mapping for user server k5 options ( REMOTE_AUTHID 'f', REMOTE_PASSWORD '***' )" DB20000I The SQL command completed successfully.
以上でFederationの設定は完了である。実際にOracleへのSQLが通るか確認すると、うまくいった!
[db2inst1@db2 ~]$ db2 "select * from k5.f.emp" EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------ ---------- --------- ------ -------------------------- --------- --------- ------ 7839 KING PRESIDENT - 1981-11-17-00.00.00.000000 5000.00 - 10 7698 BLAKE MANAGER 7839 1981-05-01-00.00.00.000000 2850.00 - 30 7782 CLARK MANAGER 7839 1981-06-09-00.00.00.000000 2450.00 - 10 7566 JONES MANAGER 7839 1981-04-02-00.00.00.000000 2975.00 - 20 7788 SCOTT ANALYST 7566 1987-04-19-00.00.00.000000 3000.00 - 20 7902 FORD ANALYST 7566 1981-12-03-00.00.00.000000 3000.00 - 20 7369 SMITH CLERK 7902 1980-12-17-00.00.00.000000 800.00 - 20 7499 ALLEN SALESMAN 7698 1981-02-20-00.00.00.000000 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22-00.00.00.000000 1250.00 500.00 30 7654 MARTIN SALESMAN 7698 1981-09-28-00.00.00.000000 1250.00 1400.00 30 7844 TURNER SALESMAN 7698 1981-09-08-00.00.00.000000 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987-05-23-00.00.00.000000 1100.00 - 20 7900 JAMES CLERK 7698 1981-12-03-00.00.00.000000 950.00 - 30 7934 MILLER CLERK 7782 1982-01-23-00.00.00.000000 1300.00 - 10 9998 NEWEMP PRESIDENT - 2021-09-12-11.13.53.000000 5000.00 - 10 15 record(s) selected.
ちなみにDB2ではシノニムはニックネームとして作成することができる。以下のようにニックネームを作成することでサーバ名を隠蔽することが可能である。
[db2inst1@db2 ~]$ db2 "CREATE NICKNAME db2inst1.k5_emp FOR k5.f.emp" DB20000I The SQL command completed successfully. [db2inst1@db2 ~]$ db2 "select * from k5_emp" EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------ ---------- --------- ------ -------------------------- --------- --------- ------ ...
まとめ
OCI上でDB2をインストール、データベースを作成し、Oracleクライアントをインストール・設定し、Federation Serverを構成しOracleへ接続する方法について記載した。Oracle LinuxでDB2は動くのかは不安はあったが、必須パッケージをきちんと準備すればインストールでき、今回検証した範囲では特に問題なく動作することを確認した。次回はOracleGatewayの構成方法について記載してみたいと思う。
◇参考
[1] 即戦力のDB2管理術
即戦力のDB2管理術 ~仕組みからわかる効率的管理のノウハウ
- 作者: 下佐粉 昭
- 出版社/メーカー: 技術評論社
- 発売日: 2011/04/08
- メディア: 単行本(ソフトカバー)
[2] Installing Db2 servers using the Db2 Setup wizard (Linux and UNIX)
[3] How does Federation Server connect to Oracle data source via Instant Client?
[4] Running Graphical Applications Securely on Oracle Cloud Infrastructure
◇参考ファイル
[1] DB2のインストーラのレスポンスファイル
[root@db2 opc]# cat /root/db2server.rsp *----------------------------------------------------- * Generated response file used by the DB2 Setup wizard * generation time: 9/18/21 5:33 AM *----------------------------------------------------- * Product Installation LIC_AGREEMENT = ACCEPT PROD = DB2_SERVER_EDITION FILE = /opt/ibm/db2/V11.5 INSTALL_TYPE = TYPICAL *----------------------------------------------- * Das properties *----------------------------------------------- DAS_CONTACT_LIST = LOCAL * ---------------------------------------------- * Instance properties * ---------------------------------------------- INSTANCE = inst1 inst1.TYPE = ese * Instance-owning user inst1.NAME = db2inst1 inst1.GROUP_NAME = db2iadm1 inst1.HOME_DIRECTORY = /home/db2inst1 inst1.PASSWORD = 950640616429906512023297944420508313828123455632730438513228255593461432458416223456036832448445492711578342498653692333335222622734761075274283324395386411544853756320496743408227814262723354966225615278654096931872723108982573022551923619411473168849326813413622086595121272258350735774365940235475428514232842752410099416505600591422351305405369272625221103266374125068782624039439514382235224652624939751544942926724431946633696660344422014451331827766656638182692221427270556132248213153932610061491102358265668031394725150546523314042113086842631322008657621651335832910899983832426429664974541258329257743294274864627184825853337284486692243263756298331568533629324484241536415436621933235753093352433346360145945661814866416662446230343074518626998131246453143 ENCRYPTED = inst1.PASSWORD inst1.AUTOSTART = YES inst1.SVCENAME = db2c_db2inst1 inst1.PORT_NUMBER = 25010 inst1.FCM_PORT_NUMBER = 20016 inst1.MAX_LOGICAL_NODES = 6 inst1.CONFIGURE_TEXT_SEARCH = NO * Fenced user inst1.FENCED_USERNAME = db2fenc1 inst1.FENCED_GROUP_NAME = db2fadm1 inst1.FENCED_HOME_DIRECTORY = /home/db2fenc1 inst1.FENCED_PASSWORD = 571185537232343041763270154361524673344253060832241250240365234602333370773398890635958273178286044005834416435965614021261462055314463250142929745425525963488641223984212243393506854434500316144423087219321444062235207636591745243320662224886257926337032832864284149645637703113558324235226433548428325776824043119258429959369531480719670666491802742054565564421743149152034481843343046733520653714422769592050385076495215442236632303892949697939829063327030659950189374754317447285180122605814125162115375585545636033596545201925759408430553856375234257233353400134082655257979412926287539342379578352712795543751359487506516935370132975476390700266767723259273424251413414266528278129074633264442728175454530887654208855409471734028734758836723435352011324456551438 ENCRYPTED = inst1.FENCED_PASSWORD *----------------------------------------------- * Installed Languages *----------------------------------------------- LANG = EN
[2] DB2インスタンスのコンフィグ
[db2inst1@db2 ~]$ db2 get dbm cfg Database Manager Configuration Node type = Enterprise Server Edition with local and remote clients Database manager configuration release level = 0x1500 CPU speed (millisec/instruction) (CPUSPEED) = 1.889377e-07 Communications bandwidth (MB/sec) (COMM_BANDWIDTH) = 1.000000e+02 Max number of concurrently active databases (NUMDB) = 32 Federated Database System Support (FEDERATED) = NO Transaction processor monitor name (TP_MON_NAME) = Default charge-back account (DFT_ACCOUNT_STR) = Java Development Kit installation path (JDK_PATH) = /home/db2inst1/sqllib/java/jdk64 Diagnostic error capture level (DIAGLEVEL) = 3 Notify Level (NOTIFYLEVEL) = 3 Diagnostic data directory path (DIAGPATH) = /home/db2inst1/sqllib/db2dump/ $m Current member resolved DIAGPATH = /home/db2inst1/sqllib/db2dump/DIAG0000/ Alternate diagnostic data directory path (ALT_DIAGPATH) = Current member resolved ALT_DIAGPATH = Size of rotating db2diag & notify logs (MB) (DIAGSIZE) = 0 Default database monitor switches Buffer pool (DFT_MON_BUFPOOL) = OFF Lock (DFT_MON_LOCK) = OFF Sort (DFT_MON_SORT) = OFF Statement (DFT_MON_STMT) = OFF Table (DFT_MON_TABLE) = OFF Timestamp (DFT_MON_TIMESTAMP) = ON Unit of work (DFT_MON_UOW) = OFF Monitor health of instance and databases (HEALTH_MON) = OFF SYSADM group name (SYSADM_GROUP) = DB2IADM1 SYSCTRL group name (SYSCTRL_GROUP) = SYSMAINT group name (SYSMAINT_GROUP) = SYSMON group name (SYSMON_GROUP) = Client Userid-Password Plugin (CLNT_PW_PLUGIN) = Client Kerberos Plugin (CLNT_KRB_PLUGIN) = Group Plugin (GROUP_PLUGIN) = GSS Plugin for Local Authorization (LOCAL_GSSPLUGIN) = Server Plugin Mode (SRV_PLUGIN_MODE) = UNFENCED Server List of GSS Plugins (SRVCON_GSSPLUGIN_LIST) = Server Userid-Password Plugin (SRVCON_PW_PLUGIN) = Server Connection Authentication (SRVCON_AUTH) = NOT_SPECIFIED Cluster manager = Database manager authentication (AUTHENTICATION) = SERVER Alternate authentication (ALTERNATE_AUTH_ENC) = NOT_SPECIFIED Cataloging allowed without authority (CATALOG_NOAUTH) = NO Trust all clients (TRUST_ALLCLNTS) = YES Trusted client authentication (TRUST_CLNTAUTH) = CLIENT Bypass federated authentication (FED_NOAUTH) = NO Default database path (DFTDBPATH) = /home/db2inst1 Database monitor heap size (4KB) (MON_HEAP_SZ) = AUTOMATIC(90) Java Virtual Machine heap size (4KB) (JAVA_HEAP_SZ) = 65536 Audit buffer size (4KB) (AUDIT_BUF_SZ) = 0 Global instance memory (% or 4KB) (INSTANCE_MEMORY) = AUTOMATIC(131833) Member instance memory (% or 4KB) = GLOBAL Agent stack size (AGENT_STACK_SZ) = 1024 Sort heap threshold (4KB) (SHEAPTHRES) = 0 Directory cache support (DIR_CACHE) = YES Application support layer heap size (4KB) (ASLHEAPSZ) = 15 Max requester I/O block size (bytes) (RQRIOBLK) = 65535 Workload impact by throttled utilities(UTIL_IMPACT_LIM) = 10 Priority of agents (AGENTPRI) = SYSTEM Agent pool size (NUM_POOLAGENTS) = AUTOMATIC(100) Initial number of agents in pool (NUM_INITAGENTS) = 0 Max number of coordinating agents (MAX_COORDAGENTS) = AUTOMATIC(200) Max number of client connections (MAX_CONNECTIONS) = AUTOMATIC(MAX_COORDAGENTS) Keep fenced process (KEEPFENCED) = YES Number of pooled fenced processes (FENCED_POOL) = AUTOMATIC(MAX_COORDAGENTS) Initial number of fenced processes (NUM_INITFENCED) = 0 Index re-creation time and redo index build (INDEXREC) = RESTART Transaction manager database name (TM_DATABASE) = 1ST_CONN Transaction resync interval (sec) (RESYNC_INTERVAL) = 180 SPM name (SPM_NAME) = db2 SPM log size (SPM_LOG_FILE_SZ) = 256 SPM resync agent limit (SPM_MAX_RESYNC) = 20 SPM log path (SPM_LOG_PATH) = TCP/IP Service name (SVCENAME) = db2c_db2inst1 Discovery mode (DISCOVER) = SEARCH Discover server instance (DISCOVER_INST) = ENABLE SSL server keydb file (SSL_SVR_KEYDB) = SSL server stash file (SSL_SVR_STASH) = SSL server certificate label (SSL_SVR_LABEL) = SSL service name (SSL_SVCENAME) = SSL cipher specs (SSL_CIPHERSPECS) = SSL versions (SSL_VERSIONS) = SSL client keydb file (SSL_CLNT_KEYDB) = SSL client stash file (SSL_CLNT_STASH) = Maximum query degree of parallelism (MAX_QUERYDEGREE) = ANY Enable intra-partition parallelism (INTRA_PARALLEL) = NO Maximum Asynchronous TQs per query (FEDERATED_ASYNC) = 0 Number of FCM buffers (FCM_NUM_BUFFERS) = AUTOMATIC(4096) FCM buffer size (FCM_BUFFER_SIZE) = 32768 Number of FCM channels (FCM_NUM_CHANNELS) = AUTOMATIC(2048) FCM parallelism (FCM_PARALLELISM) = AUTOMATIC(2) Node connection elapse time (sec) (CONN_ELAPSE) = 10 Max number of node connection retries (MAX_CONNRETRIES) = 5 Max time difference between nodes (min) (MAX_TIME_DIFF) = 60 db2start/db2stop timeout (min) (START_STOP_TIME) = 10 WLM dispatcher enabled (WLM_DISPATCHER) = NO WLM dispatcher concurrency (WLM_DISP_CONCUR) = COMPUTED WLM dispatcher CPU shares enabled (WLM_DISP_CPU_SHARES) = NO WLM dispatcher min. utilization (%) (WLM_DISP_MIN_UTIL) = 5 Communication buffer exit library list (COMM_EXIT_LIST) = Current effective arch level (CUR_EFF_ARCH_LVL) = V:11 R:5 M:6 F:0 I:0 SB:0 Current effective code level (CUR_EFF_CODE_LVL) = V:11 R:5 M:6 F:0 I:0 SB:0 Keystore type (KEYSTORE_TYPE) = NONE Keystore location (KEYSTORE_LOCATION) = Path to python runtime (PYTHON_PATH) = Path to R runtime (R_PATH) =
[3] Oracle Clientのレスポンスファイル
[oracle@db2 oraInventory]$ cat client.rsp ############################################################################### ## Copyright(c) Oracle Corporation 1998,2019. All rights reserved. ## ## ## ## Specify values for the variables listed below to customize ## ## your installation. ## ## ## ## Each variable is associated with a comment. The comment ## ## can help to populate the variables with the appropriate ## ## values. ## ## ## ############################################################################### #------------------------------------------------------------------------------- # Do not change the following system generated value. #------------------------------------------------------------------------------- oracle.install.responseFileVersion=/oracle/install/rspfmt_clientinstall_response_schema_v19.0.0 #------------------------------------------------------------------------------- # Unix group to be set for the inventory directory. #------------------------------------------------------------------------------- UNIX_GROUP_NAME=oinstall #------------------------------------------------------------------------------- # Inventory location. #------------------------------------------------------------------------------- INVENTORY_LOCATION=/u01/app/oraInventory #------------------------------------------------------------------------------- # Complete path of the Oracle Home #------------------------------------------------------------------------------- ORACLE_HOME=/u01/app/oracle/product/19.0.0/client_1 #------------------------------------------------------------------------------- # Complete path of the Oracle Base. #------------------------------------------------------------------------------- ORACLE_BASE=/u01/app/oracle #------------------------------------------------------------------------------ #Name : INSTALL_TYPE #Datatype : String #Description: Installation type of the component. # # The following choices are available. The value should contain # only one of these choices. # - Administrator # - Runtime # - InstantClient # - Custom # #Example : INSTALL_TYPE = Administrator #------------------------------------------------------------------------------ oracle.install.client.installType=Administrator #------------------------------------------------------------------------------- # Name : oracle.install.client.customComponents # Datatype : StringList # # This property is considered only if INSTALL_TYPE is set to "Custom" # # Description: List of Client Components you would like to install # # The following choices are available. You may specify any # combination of these choices. The components you choose should # be specified in the form "internal-component-name:version" # Below is a list of components you may specify to install. # # oracle.sqlj:19.0.0.0.0 -- "Oracle SQLJ" # oracle.rdbms.util:19.0.0.0.0 -- "Oracle Database Utilities" # oracle.javavm.client:19.0.0.0.0 -- "Oracle Java Client" # oracle.sqlplus:19.0.0.0.0 -- "SQL*Plus" # oracle.dbjava.jdbc:19.0.0.0.0 -- "Oracle JDBC/THIN Interfaces" # oracle.ldap.client:19.0.0.0.0 -- "Oracle Internet Directory Client" # oracle.rdbms.oci:19.0.0.0.0 -- "Oracle Call Interface (OCI)" # oracle.precomp:19.0.0.0.0 -- "Oracle Programmer" # oracle.xdk:19.0.0.0.0 -- "Oracle XML Development Kit" # oracle.network.aso:19.0.0.0.0 -- "Oracle Advanced Security" # oracle.oraolap.mgmt:19.0.0.0.0 -- "OLAP Analytic Workspace Manager and Worksheet" # oracle.network.client:19.0.0.0.0 -- "Oracle Net" # oracle.network.cman:19.0.0.0.0 -- "Oracle Connection Manager" # oracle.network.listener:19.0.0.0.0 -- "Oracle Net Listener" # oracle.ordim.client:19.0.0.0.0 -- "Oracle Multimedia Client Option" # oracle.odbc:19.0.0.0.0 -- "Oracle ODBC Driver" # oracle.has.client:19.0.0.0.0 -- "Oracle Clusterware High Availability API" # oracle.dbdev:19.0.0.0.0 -- "Oracle SQL Developer" # oracle.rdbms.scheduler:19.0.0.0.0 -- "Oracle Scheduler Agent" # # Example : oracle.install.client.customComponents="oracle.precomp:19.0.0.0.0","oracle.oraolap.mgmt:19.0.0.0.0","oracle.rdbms.scheduler:19.0.0.0.0" #------------------------------------------------------------------------------- oracle.install.client.customComponents= #------------------------------------------------------------------------------- # Host name to be used for by the Oracle Scheduler Agent. # This needs to be entered in case oracle.rdbms.scheduler is selected in the # list of custom components during custom install # # Example : oracle.install.client.schedulerAgentHostName = acme.domain.com #------------------------------------------------------------------------------ oracle.install.client.schedulerAgentHostName= #------------------------------------------------------------------------------ # Port number to be used for by the Oracle Scheduler Agent. # This needs to be entered in case oracle.rdbms.scheduler is selected in the # list of custom components during custom install # # Example: oracle.install.client.schedulerAgentPortNumber = 1500 #------------------------------------------------------------------------------ oracle.install.client.schedulerAgentPortNumber=
2021-10-09 13:31