Sybase 資料一覧

不要なトランザクションログを削除する

2007/9/28更新

対応バージョン: 11.9.2

以下の手順でトランザクションログを削除する。

現在のトランザクションログの使用状況を確認する。

1> use <DB>
2> go

1> sp_spaceused syslogs
2> go
 name    rowtotal   reserved data    index_size unused
 ------- ---------- -------- ------- ---------- ----------
 syslogs Not avail. 95904KB  95904KB 0KB        Not avail.

上記の例では96MB(reservedカラム)使用している。

この情報だけではあとどのくらい使用できるのか分からないので、さらに以下のSPを実行する。

1> sp_helpsegment logsegment
2> go
 segment name       status
 ------- ---------- ------
       2 logsegment      0

 device     size        free_pages
 ---------- ----------- ----------
 logdisk_01 100.0MB           3248

 table_name index_name  indid
 ---------- ----------- -----
 syslogs    syslogs         0

 total_size total_pages free_pages used_pages
 ---------- ----------- ---------- ----------
 100.0MB          51200       3248      47952
     (1)                       (3)        (2)

(1) 全体で100MBの領域があり、

(2) 現在96MB(47952ページ x 2KB/ページ)使用しているので、

(3) 使用可能領域が6.4MB(3248ページ x 2KB/ページ)残っている。

不要なトランザクションログを削除する。

1> dump transaction <DB> with truncate_only
2> go

(*) truncate_onlyオプションを使用した場合この操作そのものに対するトランザクションログも生成されるので、本当にログがいっぱいで上記コマンドが実行できない場合は以下のno_logオプションを使用する。

1> dump transaction <DB> with no_log
2> go

ログ領域が開放されたことを確認する。

1> sp_helpsegment logsegment
2> go
 segment name       status
 ------- ---------- ------
       2 logsegment      0

 device     size        free_pages
 ---------- ----------- ----------
 logdisk_01 100.0MB           3248

 table_name index_name  indid
 ---------- ----------- -----
 syslogs    syslogs         0

 total_size total_pages free_pages used_pages
 ---------- ----------- ---------- ----------
 100.0MB          51200      51192          8
                             (2)          (1)

(1) 使用領域が16KB(8ページ x 2KB/ページ)に減ったので、

(2) 使用可能領域が1023MB(51192ページ x 2KB/ページ)に増えた。