No space left on device
/var以下でファイルが作成できない現象が発生。
例えば、適当にファイル作成してみると
$ echo hoge>aaa bash: No space left on device
というエラーが出る。*1
ここで、ディスク容量を確認してみると
$ df -h Filesystem Size Used Avail Use% Mounted on (中略) /dev/sdc1 2.6G 252M 2.2G 36% /var (以下略)
まだ十分に空きはある。
その後、情報収集した結果、inodeの使用量が怪しいみたいなので確認してみると
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on (中略) /dev/sdc1 344960 344960 0 100% /var (以下略)
( ゜д゜)ビンゴー
どうやらinodeを使い切ってしまった模様。
調べた結果、あるアプリのログファイルの数がエライ事になっていたので、それを削除して解決。
ちなみにログファイル増殖の原因はコレ
$ cat /etc/logrotate.d/hoge /var/log/hoge/* { missingok }
そんな所に*を書くんじゃねぇ!(`Д´)ノ*2
シーケンスオブジェクトの確認方法
oracleでシーケンスオブジェクトが存在しているかを確認するには
SELECT シーケンスオブジェクト名.CURRVAL FROM DUAL;
を実行しシーケンスオブジェクトの現在値を見る方法が手っ取り早い。
ただし、シーケンスオブジェクトを作成した直後(一度もNEXTVALを使用していない状態)では、上記のSQLはエラーになる。
(追記)作成した直後だけではなく、セッションで一度もNEXTVALが呼ばれていない場合だった。例えば、sqlplusで接続して最初にCURRVALを使用すると「ORA-08002:順序HOGEHOGE.CURRVALはこのセッションではまだ定義されていません」というエラーが発生する。
その場合は、
SELECT * FROM user_sequence;
を実行する事で、そのスキーマのシーケンスオブジェクトを確認できる。