コアファイルの採取方法についてよくある質問と、その回答について説明します。
コアファイルは、Symfoware/RDB関連の異常時に出力されます。コアファイルの出力先およびファイル名を以下に示します。
プロセス | 出力先 | ファイル名 |
---|---|---|
サーバプロセス | RDB構成パラメタファイル RDBCOREパラメタの指定先 (注) | Core_プロセスID.年月日.時分秒 |
RDBコマンド | カレントディレクトリ | Core |
アプリケーション | カレントディレクトリ | Core |
注) RDB構成パラメタファイルのRDBCOREパラメタに、存在しないディレクトリを指定している場合は、コアファイルはSymfoware/RDBを起動した(rdbstartコマンドを実行した)ディレクトリに出力されます。
このとき、ファイル名が“core”になる場合があります。
注意
Solaris/Linuxの場合
RDB構成パラメタファイルのRDBCOREパラメタの指定先が存在しない場合、Symfoware/RDBは起動できません。
coreが完全でない場合は、調査ができない場合があります。
core出力先のファイルシステムに空き容量が不足している場合、コアファイルは完全に採取されません。
coreのサイズが制限されている場合に、そのサイズ以上のcoreを出力しようとすると、コアファイルは完全に採取されません。
coreのサイズを制限する方法については、Solarisの場合は、Bシェルのulimitコマンド、Kシェルのulimitコマンド、または、Cシェルのlimitコマンドなどがあります。
Linuxの場合は、bashのulimitコマンド、TCシェルのlimitコマンド、systemd-coredumpの設定、または、systemdの設定などがあります。
出力先ディレクトリに“core”という名前のディレクトリが存在している場合、ファイル名は“core_プロセスID.年月日.時分秒”にはなりません。
以下の指定を行っている場合、各プロセスのコアファイルの出力先およびファイル名が上記の表とは異なります。
coreadmコマンドを使用して、OSのコアファイルの出力規約にコアファイルの出力先ディレクトリを指定している場合、または、コアファイル名に“core”以外を指定している場合は、その指定が有効となります。
なお、コアファイル出力先ディレクトリまたはコアファイル名は、coreadmコマンドを実行することで確認できます。
カーネルパラメタのkernel.core_patternにおいて、systemd-coredumpを有効にしている場合、上記の表に示す場所にコアファイルは格納されません。出力先ディレクトリなどsystemd-coredumpの詳細については使用しているシステムベンダのドキュメントを参照してください。
カーネルパラメタkernel.core_patternを使用して、OSのコアファイルの出力規約にコアファイルの出力先ディレクトリを指定している場合、または、コアファイル名に“core”以外を指定している場合は、その指定が有効となります。
なお、コアファイル出力先ディレクトリまたはコアファイル名は、/proc/sys/kernel/core_patternで確認できます。
格納データを暗号化している場合でも、コアファイルは暗号化されません。コアファイルが不要となった際には、rdbclrfコマンドまたはOSのコマンドで削除してください。
rdbclrfコマンドは、Symfoware Server Enterprise Extended Editionかつ標準セキュリティ運用の場合に使用可能です。それ以外の場合は、下記のOSのコマンドを使用して削除してください。
コアファイルのサイズを確認後、コアファイル内をゼロパディングしてから、コアファイルを削除します。
ls -l コアファイル名 dd if=/dev/zero of=コアファイル名 bs=コアファイルサイズ count=1 rm -f コアファイル名
shredコマンドを実行して、コアファイルを削除します。
shred -x -u コアファイル名
Windowsの場合
RDB構成パラメタファイルのRDBCOREパラメタの指定先が存在しない場合、Symfoware/RDBは起動できません。
coreが完全でない場合は、調査ができない場合があります。
core出力先のファイルシステムに空き容量が不足している場合、コアファイルは完全に採取されません。
RDB構成パラメタファイルのRDBCOREパラメタの指定先を変更しても、元のディレクトリは削除しないでください。
格納データを暗号化している場合でも、コアファイルは暗号化されません。コアファイルが不要となった際には、コアファイルのサイズを確認後、コアファイル内をゼロパディングしてから、コアファイルを削除してください。
dir コアファイル名 fsutil file setzerodata offset=0 length=コアファイルサイズ コアファイル名 del コアファイル名