SQL Serverのトランザクションログを解析し、データの変更履歴を表示するソフト。「sarasa(サラサ)」は、Microsoft SQL Serverのトランザクションログを読み取り、現在に至るまでのデータベースの変更履歴を表示できるデータベースユーティリティ。データベースアプリケーションの開発やデータベースの修復などに役立つ、貴重な情報を得ることができる。
SQL Serverのデータベースは一般的に、ユーザが開発するアプリケーションなどからデータの書き換えが行われるが、アプリケーション側で「ログ」を保存していない限り、「いつデータが追加されたのか」「書き換えや削除が行われたのか」といった「データベース変更履歴(トランザクション)」情報を読み取ることはできない。
「sarasa」では、SQL Serverがデータベースのバックアップなどに使用する「トランザクションログ」を読み込み、通常は得られないはずのデータベース変更履歴を作成できる。トランザクション情報は、ツリー状に整理されたわかりやすい形で表示され、データベースアプリケーションの作成やバグ解析などに極めて有用な情報となる。
「sarasa」で得られるトランザクション情報は、
- データベースへのレコード追加(INSERT)
- データベース内でのレコード削除(DELETE)
- データベース内のデータ変更(MODIFY)
など。変更が行われた時刻や変更されたデータ内容も表示され、データベース内の特定のフィールドが「いつ、どのような値からどのような値へと書き換えられたか」を知ることができる(トランザクションログには、書き換えを実行したユーザアカウントは記録されていないため、「誰がデータを変更したか」は表示できない)。ツリー状のトランザクション情報の表示パターンは、
- データベース内のテーブルごとにグループ化表示される「テーブル毎」
- アクセスしたテーブルに関係なく、時系列で表示される「トランザクション毎」
から選べる。ツリー内で特定のトランザクションを選択すると、当該トランザクションで変更されたレコードの変更前/変更後の内容が表示される仕組み。同じレコードに対して、ほかにもトランザクションがある場合は、ツリー内でトランザクションが色付け表示されるようになっている。表示されるフィールドの内容は、別途定義する「フィルタ」で項目を選択できる。SQL Serverのトランザクションログは内容が非公開で、ログの内容を見ただけでは何が行われているかはわからない。「sarasa」では、独自にログを解析することで、データベース変更履歴の表示を実現している。
「sarasa」が解析できるトランザクションログは、現在有効なデータベースのものに限られる(T-SQLの「BACKUP DATABASE」コマンドでバックアップされたログは解析できない)。トランザクションログは、バックアップにより自動的に消去されるが、ログ消去によりデータ解析不能となることを防ぐため、トランザクションログから「sarasa」で使用できる解析用データを自動作成する別売ソフトウェアも用意されている。