使用SQLite进行日志记录

时间:2012-12-21 03:37:09

标签: c# asp.net .net sqlite rdbms

我想使用SQLite作为WCF服务日志记录的数据库后端。一切看起来都不错,但是如何从真实系统中提取数据库日志文件并且不会因检查/分析日志而锁定数据库?这个系统似乎非常负载,每当我尝试获取数据库日志文件时,它就会被锁定。

2 个答案:

答案 0 :(得分:0)

SQLite允许多个进程/应用程序打开相同的数据库文件进行读写(写入时会涉及一些锁定,但这并不是典型的问题)。

您应该能够使用日志记录过程将新行连续记录到数据库中,同时卸载/解压缩过程将旧行复制到其他位置。

但是,如果您不打算在打开时使用标准复制功能将数据库复制为文件,因为它很可能会损坏它(在Windows上,由于严格锁定,甚至可能无法实现)。

相反,卸载过程使用标准SQLite API(或某些支持SQLite的脚本语言)连接到数据库,使用该API读取行并在其他地方创建该数据的副本,例如在另一个SQLite数据库或大“真实”中SQL数据库,如MySQL,Postgres或MSSQL(如果是这样的话,还是在文本文件中)。

答案 1 :(得分:0)

使用SQLite的online backup API提取数据,而无需锁定数据库。

相关问题