0

そのため、実際にアクティブな mySQL サーバーを使用せずに、実行される SQL ステートメントをログに記録する方法を見つけようとしています。

私が解決しようとしている問題は、現在、リモートの mySQL インスタンスとローカル (アーカイブ データ) の両方にデータを書き込んでいることです。リモートが到達不能/ダウンした場合などに備えて、バックアップとしてローカルにログを記録しています。

そのため、代わりに SQL ステートメントをローカルにログに記録することをお勧めします (Spring JDBC テンプレートを使用して変数置換を行います)。そのため、SQL を自分でつなぎ合わせてファイルに書き込むほど簡単ではありません。 .

ブラックホール エンジンを使用している場合でも、ローカルの mySQL インスタンスをアクティブにする必要があることを除いて、見栄えの良いlog4jdbcを見つけました。リモート サーバーで log4jdbc を使用することもできると思いましたが、接続が切断された場合、JDBCTemplate は、エラーが発生する前に、基盤となる JDBC ドライバー オブジェクトに対してクエリを実行しようとしますか? ほとんどのプーリング メカニズムは、接続を返す前に検証するため、クエリが実行されてログに記録される前に失敗するだけです。

では、誰が明るいアイデアを持っていますか?

4

2 に答える 2

0

一般的には Mark O'Connors のソリューションが最適ですが、これを解決する方法は、load data infile ステートメントを介してインポートできるようにフォーマットされた CSV ファイルとしてデータを単純に書き出すことでした。

于 2012-06-27T21:50:28.250 に答える
0

bin logging を有効にしてリモート MySQL インスタンスを実行します。

バイナリ ログをバックアップし、必要に応じて mysqlbinlog コマンドを使用して SQL に変換し、後でデータベースを復元することができます。

于 2012-04-17T00:22:50.423 に答える