Log 領域が Full になった場合のサンプル Can't allocate space for object 'syslogs' in database 'tempdb' because 'logsegment' segment is full/has no free extents. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE to increase the size of the segment.
Database 領域が Full になった場合のサンプル Can't allocate space for object 'RPT_TR' in database 'apricot' because 'default' segment is full/has no free extents. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase size of the segment.
解決策
Log 領域が Full の場合 以下の方法で Transaction log を Dump してください。
scmscm ユーザで ~scmscm/cm/bin/cm stop を実行し、CM を停止。
以下のコマンドで Transaction log を Dump。 ~sybase/OCS-15_0/bin/isql -Spqbsyb1 -Usa -Ppcube2001 1> dump transaction apricot with no_log 2> go 1> dump transaction tempdb with no_log 2> go 1> exit
messages ログに以下のメッセージが出ていることを確認。 Attempt by user 1 to dump xact on db apricot with NO_LOG was successful Attempt by user 1 to dump xact on db tempdb with NO_LOG was successful
以上の操作で Transaction log が Dump されます。しかしながら、多くの場合 Database 領域のサイズが大きくなっていることに起因して Log 領域が Full になるので、以下の Database 領域が Full の場合の操作も実施する必要がある場合があります。
本問題の発生を未然に防ぐためには古いレコードの定期削除が有効です。以下のドキュメントの『Managing the Periodic Deletion of Old Records』セクションに設定方法が記載されていますので、参照してください。本ドキュメントには上で紹介した各スクリプトの説明も記載されていま す。