SQL Anywhere Tips – dbtranコマンドとその活用

SQL Anywhereは付属するdbtranコマンドでログファイルからSQLを抽出することが出来ます。例えば
insert into tablea values (1,'aaaaa');
commit;
と実行し、その後”コマンドラインから”(Interactive SQLなどではなくOSのコマンドラインです)
dbtran <dbのログファイル名>
と実行します。
dbのログファイル名.sqlというファイルが出力されますので中を見てみます。
--BEGIN TRANSACTION-1016-0000698840
BEGIN TRANSACTION
go
--INSERT-1016-0000698913
INSERT INTO DBA.tablea(col1,col2)
VALUES (1,'aaaaa')
go
--COMMIT-1016-0000698931-2023-10-31 14:59:14.009561
COMMIT WORK
go
このように出力されていることが確認できます。Ver.17ではコミット時の時刻も記載されています。
dbtranコマンドの実行にはデータベースへの接続は必要ありません。ログファイルだけあれば良いです。
このコマンドはログファイルに記載されている内容をSQLとして出力するものです。つまり、出力される内容はログに記述されるものになります。
SELECT文はログに記述されませんので当然含まれません。データベースに変更を行う文はログに記述されますが、LOAD文はLOADが行われたことが記述されても実際にロードされたデータはログには記述されないことに注意して下さい。
このコマンドは何に使うのかというと、アプリケーションのデバッグ用途(INSERTなどのコマンドを実行しているかの確認)やログされた内容を利用してデータベースの手動リカバリなどに使用することが出来ます。

続きはこちら:SQL Anywhere Tips – dbtranコマンドとその活用

 

SAPのSAP SQL Anywhere製品ページはこちら