UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

トランザクションログへの出力を停止したり開始したり

トランザクションログへの出力を停止したり開始したり


0.改訂履歴

  • 2002.07.17 新規作成

1.はじめに

 このドキュメントでは,Sybase SQL ServerおよびAdaptive Serverにおいて,トランザクションダンプを停止する手順を説明する.

2.トランザクションログの出力を停止する意味は?

  • まず,トランザクションログの仕組みについて,理解する必要がある.
    • SQL Serverでは,データ更新が行われると,トランザクションログに更新内容が書き込まれる.
    • 書き込まれるエリアは,logsegmentというセグメント上になる.
    • 「トランザクションログのダンプ」を行わない限り,logsegmentには更新ログデータが溜まっていく.
    • logsegmentの領域が無くなったら,更新処理が出来なくなる.
  • たとえば,大量のデータをbcpツールなどで等で挿入する場合,logsegmentの領域が不足し,データベースで更新処理が出来なくなることがある.
  • よって,一時的にトランザクションログを取得しないモードに変更して,そのような問題を回避することが出来る.

3.トランザクションログの設定の条件

  • トランザクションログの設定を行えるのは,次の権限のある人となる.

    • saアカウント(システム管理者)
    • dbo(データベース所有者)

  • また,このオプションは「データベース」の状態の変更であり,サーバに影響しないため,SQL Serverの再起動は必要ない.

4.トランザクションログを切り捨てる設定にする

  • isqlで接続し,ログを切り捨てる設定とする.
user_dbデータベースにて,ログを消去する設定例
1> sp_dboption "user_db","trunc log on chkpt",true
2> go
'user_db' データベースに対してデータベース・オプション 'trunc log on
 chkpt' が OFF になりました。

変更されたデータベースで CHECKPOINT コマンドを実行してください。

(return status = 0)
1> checkpoint
2> go
1>
  • この設定を行うことで,チェックポイントが行われる都度,logsegmentに溜まったトランザクションログが消去される.
    • ログを切り捨て(トランケート)すると,トランザクションダンプを行えなくなる.
    • 詳細については「Sybaseのバックアップ」を参照のこと.

5.トランザクションログを切り捨てないように設定する

  • 前述のパラメータと同様で,これをfalseに設定する.
たいとる
1> sp_dboption "user_db","trunc log on chkpt",false
2> go
'user_db' データベースに対してデータベース・オプション 'trunc log on
 chkpt' が OFF になりました。

変更されたデータベースで CHECKPOINT コマンドを実行してください。

(return status = 0)
1> checkpoint
2> go
1>


広告スペース
Google