0

所以,我试图弄清楚如何记录将要运行的 SQL 语句,而实际上没有一个活动的 mySQL 服务器。

我要解决的问题是现在我们正在将数据写入远程 mySQL 实例以及本地(存档数据)。我们正在登录到本地作为备份,以防远程无法访问/关闭/等。

所以,我们想做的是在本地记录 SQL 语句(我们正在使用带有变量替换的 Spring JDBC 模板),所以不像我们自己拼凑 SQL 并将其写入文件那么容易.

我确实发现log4jdbc看起来很棒,但我们仍然需要一个活动的本地 mySQL 实例,即使它只是使用黑洞引擎。我确实认为也许我们可以只在远程服务器上使用 log4jdbc,但是如果连接消失,JDBCTemplate 是否会在失败之前尝试在底层 JDBC 驱动程序对象上运行查询?大多数池化机制会在返回连接之前验证连接,因此在查询有机会运行并被记录之前它仍然会失败。

那么,谁有什么好主意呢?

4

2 回答 2

0

在启用 bin 日志记录的情况下运行远程 MySQL 实例。

可以备份二进制日志,如有必要,可以使用mysqlbinlog命令将其转换为 SQL,以便稍后恢复数据库。

于 2012-04-17T00:22:50.423 回答
0

Mark O'Connors 解决方案通常可能是最好的解决方案,但我们解决此问题的方法是将数据简单地写为 CSV 文件格式,以便通过 load data infile 语句准备好导入。

于 2012-06-27T21:50:28.250 回答