USEREXITプログラムを利用するには
出典: DB2逆引きWiki
【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#実装編】 【DB2逆引きリファレンス目次#ログ】
目次 |
前提
- インスタンス接続が必要
- 以下のいずれかが必要: SYSADM権限, SYSCTRL権限, SYSMAINT権限
解説
アーカイブロギングモードを使用している場合、不要になったアーカイブログを自動的に移動させることができます。移動させるためにはまず、ユーザー出口プログラムと呼ばれるプログラムを作成する必要があります。 ユーザー出口プログラムはdb2uext2という名前を持ち、規定のユーザー出口プログラムインターフェースを実装する必要がありますが、$DB2PATH/sample/c(UNIX環境の場合)もしくは%DB2PATH%\sample\c(Windows環境の場合)に用意されたサンプルプログラムを修正して利用することができます。 ユーザー出口プログラムを適切なディレクトリに配置した上でデータベース構成パラメータUSEREXITをONに設定すると、ユーザ出口プログラムが有効になります。
手順
ユーザー出口プログラムのサンプルを利用するための手順を以下に紹介します。このサンプルは、ログディレクトリのログファイルを別のディレクトリにコピーするものです。
- ファイル名を変更します。
サンプルのファイル名はdb2uext2.cdiskになっています。これをdb2uext.cというファイル名に変更してください。
$ mv db2uext2.cdisk db2uext2.c↓
- サンプル(ここではdb2uext2.c)を修正します。
ログファイルのコピー先ディレクトリなどは、ソースプログラムの中で以下のような定数として定義されています。環境に合わせて修正します。
- ARCHIVE_PATH
- アーカイブログの退避先ディレクトリのパス。UNIX環境であれば'/'で、Windows環境なら'\\'で終わること。
- RETRIEVE_PATH
- アーカイブログが必要になった時に検索するディレクトリのパス。UNIX環境であれば'/'で、Windows環境なら'\\'で終わること。基本的にはARCHIVE_PATHと同じで構わない。
- AUDIT_ERROR_PATH
- ユーザー出口プログラム実行時に作成される各種のログファイルを格納するためのディレクトリ。UNIX環境であれば'/'で、Windows環境なら'\\'で終わること。
- ユーザ出口プログラム(ここではdb2uext2)をコンパイルします。
コンパイラが必要です(以下はLinux環境での例)。
$ cc -o db2uext2 db2uext2.c↓
- ユーザー出口プログラムを配置します。
Windows環境の場合は%DB2PATH%\bin、UNIX環境の場合は、$HOME/sqllib/admにコピーします (以下はLinux環境での例)。
$ cp db2uext2 $HOME/sqllib/adm↓
- データベース構成パラメータUSEREXITを設定します。
$ db2 UPDATE DB CFG FOR sample USING USEREXIT ON↓
注意
- アーカイブログファイルの移動はユーザー出口プログラムを利用して行ってください。
- 無限アクティブロギングではユーザー出口プログラムの有効化が必須です。
- db2uext2.cdiskを用いる場合、ARCHIVE_PATH、RETRIEVE_PATHおよびAUDIT_ERROR_PATHで指定するディレクトリは予め作成しておいてください。
