Db2-instance
DB2-インスタンス
前書き
インスタンスは、DB2 Database Managerの論理環境です。 インスタンスを使用して、データベースを管理できます。 要件に応じて、1つの物理マシン上に複数のインスタンスを作成できます。 インスタンスディレクトリの内容は次のとおりです。
- データベースマネージャーの構成ファイル
- システムデータベースディレクトリ
- ノードディレクトリ
- ノード構成ファイル[db2nodes.cfg]
- デバッグファイル、ダンプファイル
DB2 Database Serverの場合、デフォルトのインスタンスは「DB2」です。 作成後にインスタンスディレクトリの場所を変更することはできません。 インスタンスは複数のデータベースを管理できます。 インスタンスでは、各データベースには一意の名前、独自のカタログテーブルのセット、構成ファイル、権限、および特権があります。
DB2製品のインスタンスのアーキテクチャ
複数のインスタンス
Linux、UNIX、およびWindows上の1つのDB2Serverに複数のインスタンスを作成できます。 物理マシンに複数のDB2サーバーをインストールすることが可能です。
Linuxでのインスタンスの作成
DB2サーバーがrootユーザーとしてインストールされている場合、LinuxおよびUNIX上に複数のインスタンスを作成できます。 インスタンスは、LinuxとUNIXで独立して同時に実行できます。 一度にデータベースマネージャの単一のインスタンス内で作業できます。
インスタンスフォルダーには、データベース構成ファイルとフォルダーが含まれます。 インスタンスディレクトリは、オペレーティングシステムのバージョンに応じて、Windowsのさまざまな場所に保存されます。
インスタンスのリスト
インスタンスをリストするには、次のコマンドを使用します。
db2ilist
このコマンドは、システムで使用可能なすべてのインスタンスをリストします。
構文:
db2ilist
例: [DB2コピーで作成されたインスタンスの数を確認するには]
db2ilist
出力:
db2inst1
db2inst2
db2inst3
インスタンス環境コマンド
これらのコマンドは、DB2 CLIでインスタンスの配置を操作するのに役立ちます。
インスタンスを取得する
このコマンドは、現在実行中のインスタンスの詳細を表示します。
構文:
db2 get instance
例: [現在のユーザーをアクティブにした現在のインスタンスを表示するには]
db2 get instance
出力:
The current database manager instance is : db2inst1
インスタンスを設定
DB2 UDB上のインスタンスのデータベースマネージャーを起動または停止するには、現在のインスタンスに対して次のコマンドを実行します。
構文:
set db2instance=<instance_name>
例: [「db2inst1」環境を現在のユーザーにアレンジするには]
set db2instance=db2inst1
db2start
このコマンドを使用して、インスタンスを開始できます。 この前に、「インスタンスの設定」を実行する必要があります。
構文:
db2start
例: [インスタンスを開始するには]
db2start
出力:
SQL1063N DB2START processing was successful
db2stop
このコマンドを使用すると、実行中のインスタンスを停止できます。
構文:
db2stop
出力:
SQL1064N DB2STOP processing was successful.
インスタンスを作成する
新しいインスタンスを作成する方法を見てみましょう。
db2icrt
新しいインスタンスを作成する場合は、rootでログインする必要があります。 インスタンスIDはルートIDまたはルート名ではありません。
新しいインスタンスを作成する手順は次のとおりです。
*Step1* :たとえば、オペレーティングシステムユーザーを作成します。
構文:
useradd -u <ID> -g <group name> -m -d <user location> <user name>
-p <password>
例:[グループ 'db2iadm1’およびパスワード 'db2inst2’に名前 'db2inst2’のインスタンスのユーザーを作成するには]
useradd -u 1000 -g db2iadm1 -m -d/home/db2inst2 db2inst2 -p db2inst2
*Step2* :新しいユーザーを作成するには、rootユーザーのDB2インスタンスディレクトリに移動します。
ロケーション:
cd/opt/ibm/db2/v10.1/instance
- ステップ3 *:次の構文を使用してインスタンスを作成します。
構文:
./db2icrt -s ese -u <inst id> <instance name>
例:[ESE(Enterprise Server Edition)の機能を使用して、ユーザー 'db2inst2’に新しいインスタンス 'db2inst2’を作成するには]
./db2icrt -s ese -u db2inst2 db2inst2
出力:
DBI1446I The db2icrt command is running, please wait.
….
…..
DBI1070I Program db2icrt completed successfully.
インスタンスの通信ポートとホストの配置
/etc/servicesファイルを編集して、ポート番号を追加します。 以下の構文では、「inst_name」はインスタンス名を示し、「inst_port」はインスタンスのポート番号を示します。
構文:
db2c_<inst name> <inst_port>/tcp
例:[インスタンス 'db2inst2’の変数 'db2c_db2inst2’に 'services’ファイルに '50001/tcp’ポート番号を追加]
db2c_db2inst2 50001/tcp
- 構文1 *:[データベースマネージャーの構成をサービス名で更新します。 次の構文「svcename」はインスタンスサービス名を示し、「inst_name」はインスタンス名を示します]
db2 update database manager configuration using svcename db2c_&<inst_name>
- 例1 *:[インスタンス 'db2inst2’の値 'db2c_db2inst2’を持つ変数svcenameを使用したDBM設定の更新
db2 update database manager configuration using svcename db2c_db2inst2
出力
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.
- 構文2 *:現在のインスタンスの「tcpip」通信プロトコルを設定します
db2set DB2COMM=tcpip
- 構文3 *:[現在のインスタンスを停止および開始して、データベースマネージャーの構成から更新された値を取得する]
db2stop
db2start
インスタンスを更新する
次のコマンドを使用してインスタンスを更新できます。
db2iupdt
このコマンドは、同じバージョンリリース内のインスタンスを更新するために使用されます。 このコマンドを実行する前に、「db2stop」コマンドを使用してインスタンスデータベースマネージャーを停止する必要があります。 「inst_name」の下の構文は、以前にリリースまたはインストールされたdb2サーバーインスタンス名を示し、新しいリリースまたはインストールされたdb2サーバーバージョンに更新します。
- 構文1 *:通常モードでインスタンスを更新するには
db2iupdt <inst_name>
例1:
./db2iupdt db2inst2
- 構文2 *:デバッグモードでインスタンスを更新するには
db2iupdt -D <inst_name>
例
db2iupdt -D db2inst2
インスタンスのアップグレード
インスタンスを以前のバージョンのDB2コピーから、新しくインストールされた現在のバージョンのDB2コピーにアップグレードできます。
db2iupgrade
LinuxまたはUNIXシステムでは、このコマンドはDB2DIR/instanceディレクトリーにあります。 次の構文では、「inst_name」は以前のバージョンのDB2インスタンスを示し、「inst_username」は現在インストールされているバージョンのDB2コピーインスタンスユーザーを示します。
- 構文2 *:
db2iupgrade -d -k -u <inst_username> <inst_name>
例:
db2iupgrade -d -k -u db2inst2 db2inst2
コマンドパラメータ:
*-d* :デバッグモードをオンにします。
*-k* :DB2コピーでこのコマンドを実行している場所でサポートされている場合、アップグレード前のインスタンスタイプを保持します。
Linuxでdb2iupgradeコマンドにスーパーユーザー(su)を使用している場合、「-」オプションを指定して「su」コマンドを発行する必要があります。
インスタンスを削除する
「db2icrt」コマンドで作成されたインスタンスをドロップまたは削除できます。
db2idrop
LinuxおよびUNIXオペレーティングシステムでは、このコマンドはDB2_installation_folder/instanceディレクトリにあります。
構文:[次の構文では、「inst_username」はインスタンスのユーザー名を示し、「inst_name」はインスタンス名を示します]
db2idrop -u <inst_username> <inst_name>
例:[db2inst2を削除するには]
./db2idrop -u db2inst2 db2inst2
インスタンスで他のコマンドを使用する
現在作業中のDB2インスタンスを見つけるコマンド。
- 構文1 *:[データベースマネージャーによってアクティブ化された現在のインスタンスを確認するには]
db2 get instance
出力:
The current database manager instance is: db2inst1
- 構文2 *:[現在のインスタンスを操作ビットとリリースバージョンで表示するには]
db2pd -inst | head -2
例:
db2pd -inst | head -2
出力:
Instance db2inst1 uses 64 bits and DB2 code release SQL10010
- 構文3 *:[現在動作しているインスタンスの名前を確認するには]
db2 select inst_name from sysibmadm.env_inst_info
例:
db2 select inst_name from sysibmadm.env_inst_info
出力:
INST_NAME --------------------------------------
db2inst1
1 record(s) selected.
構文:[デフォルトとして新しいインスタンスを設定するには]
db2set db2instdef=<inst_name> -g
例:[新しく作成されたインスタンスをデフォルトのインスタンスとして配列するには]
db2set db2instdef=db2inst2 -g