sarasa

よくあるご質問

対応しているデータベースは何ですか?

以下のMicrosoft製品のデータベースに対応しています
  • SQL Server 2014
  • SQL Server 2012
  • SQL Server 2008 R2
  • SQL Server 2008
  • SQL Server 2005
  • SQL Server 2000

どのようなデータを復旧できますか?

SQL Serverのデータです。
トランザクションログの内容を解析して、データ状態をsarasaで逆算します。

OracleなどのSQL Server以外のデータベース、スマートフォン、クラウド上のデータなどは対象外です。

過去の履歴はどこまで遡ることができますか?

直近のバックアップまでです。

sarasaはSQL Serverに対してdbcc logコマンドを発行し、その出力結果を解析してデータ更新履歴を表示しています。
dbcc logコマンドで取得できるのは直近のバックアップ以降のログ内容です。
このコマンドで、取得可能な範囲まで履歴をさかのぼることができます。

※Express Editionでは再起動するとdbcc logの出力が消えるなど、さかのぼれる範囲にはSQL Server固有の制約がありますので、ご了承下さい。

データベースに準備をしておく必要がありますか?

ありません。

sarasaの解析対象はdbcc logコマンドの出力結果ですので、解析対象データベースに、事前の仕掛け、準備などは一切必要ありません。

動作時、データベースにオブジェクトを何か作成しますか?

一時テーブルを作成します。

sarasaは解析対象のログ内容を一時テーブルに格納します。
そのため、ログ容量によってはtempdbのスペースを大きく使用したり、データベースに負荷をかけることがあります。

作成するのはすべて一時テーブルなので、sarasaの終了と同時に削除されます。

本番環境でバックアップしたファイル(*.bak,*.trn)を、別の環境で復元しました。
復元した後、sarasaによる解析をしましたが、何も表示されません。
なぜでしょうか?

データベースをバックアップファイル(*.bak,*.trn)から復元した場合、sarasaで解析はできません。
バックアップファイルに含まれる情報はデータの復元に使われるだけで、トランザクションログそのものが復元されるわけではないためです。

バックアップファイルから復元したデータベースは解析できませんが、バックアップファイルそのものを解析対象とすることは可能です。

バックアップファイルは解析できますか?

データベース バックアップファイル(*.bak)を直接解析することができます。
ただ、データベース バックアップファイルには解析可能なログが含まれていないことが多いようです。

※ファイルからデータベースに復元しておく必要はありません
※バックアップを実施したサーバと同バージョンのSQL Serverが必要です

ファイル出力されたトランザクションログは解析できますか?

トランザクションログ バックアップファイル(*.trn)を直接解析することができます。

※ファイルからデータベースに復元しておく必要はありません
※バックアップを実施したサーバと同バージョンのSQL Serverが必要です

データ更新したユーザID、マシン名などはわかりますか?

トランザクションログには、更新したログインIDやマシン名などの情報は含まれておりません。
sarasaの解析対象にデータが含まれていないため、表示は不可能です。

過去に発行されたSQLがわかりますか?

トランザクションログには、SQL行結果の物理的データ内容が記録されています。
ログ解析によって更新データの内容は分かりますが、発行されたSQL文を見ることはできません。

更新内容は完全に正確ですか?

sarasaはdbcc logコマンドの出力結果から、当社が独自に解析したアルゴリズムを元に、データの更新履歴を計算、表示しています。
しかしdbcc logコマンドの仕様は一切公開されていないため、当社の解析アルゴリズムの正確性は判断できません。
このため、当製品は解析結果の精度について一切保証するものではないことをご了承下さい。

解析できないケースはありますか?

はい。いくつかのケースで解析できないパターンがございます。
  • image型、text型、ntext型、sql_variant型、xml型、hierarchyid型、geography型、geometry型の項目は解析対象外です
  • SQL Server2005以降の場合,varchar(max)などデータ長をmaxとした可変長項目に対し、8000バイト以上のデータを格納した場合はそのデータは解析対象外になります
  • 解析時点で存在していないユーザーテーブルは表示されません
    (dropしたテーブルは表示されません)
  • ログ記録期間中にtruncate tableすると、それ以前のデータ修正履歴が表示されなくなることがあります
  • ログ記録期間中にalter table で項目の追加や削除などを行うと、履歴表示が不正になります
  • SQL Server2005以降の場合、既にデータが存在しているテーブルに対しalter tableで項目の削除などを行うと、当該テーブルに対する履歴の解析が出来なくなることがあります
  • その他、データベースの状態によっては予期せぬ解析不可能ケースが発生することがあります

データの更新履歴を継続的に監視したいのですが可能ですか?

可能です。

「バッチ起動用解析ファイル生成オプションプログラム(別売)」をご利用ください。
SQL Serverのジョブ登録や、Windowsのタスク登録などでスケジュール起動の設定をすれば、定期的に更新履歴解析ファイルを生成、保存することができます。
保存したファイルをsarasaで開くだけで、データ更新履歴がすぐに確認できます。

ライセンスの考え方は?
1ライセンスとはコンピュータ、ユーザのどちらにつきますか?

ライセンスは、インストールするコンピュータにつきます。

(例)
サーバ1台に1ライセンスでインストールした場合
→複数人で使用することが可能

「1台」とは仮想マシンも含みますので、物理的に1台であっても仮想的に2台の場合は、それぞれにライセンスが必要となります。

トランザクションログのサイズが100MB以上あるとき、解析にかかる実行時間は?
必要なテンポラリースペースの容量はどのくらいですか?

解析時間は、発生したトランザクションの内容や量、またデータベースサーバマシンのスペックによって左右されますので、状況によります。
100MB以上に肥大化したトランザクションログですと、かなりの時間がかかることが予想されます。

解析のために使用するテンポラリースペース(tempdb)には、いったん、すべてのログを書き込みます。
トランザクションログの使用中容量と同じ程度の容量が必要です。

解析を実行しているときにSQL Serverのレスポンスが悪くなることはありませんか?

解析中はサーバマシンに負荷がかかります。
レスポンスの悪化を引き起こす可能性がありますので、実行タイミングにご注意下さい。

お試し版を利用中です。
「ログの収集が完了しました。解析可能全ログ数 0件」と表示されます。
完了を押しても次画面にはテーブル一覧等は表示されません。
dbcc logコマンドを実行すると何らかの表示はされるのですが、
dbcc logコマンドを使用しているはずのsarasaで解析できないのはなぜでしょうか?

dbcc logコマンド実行時に表示される内容は、すべてがテーブルの更新に関わるものとは限りません。
sarasaではテーブルに対するレコード挿入・修正・削除に関する部分のみ抽出した結果を「解析可能全ログ数」として表示しています。
そのため、dbcc logコマンドで何らかの表示がされていてもsarasaでの解析可能数がゼロと表示される場合もあります。

挿入、更新、削除のイベントを取得するためには、SQL Serverプロファイラーを常時起動しておく必要がありますか?

いいえ、プロファイラーなどの起動は一切必要ありません。