![应用程序日志数据库替换的最佳实践](https://linux22.com/image/669269/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%A5%E5%BF%97%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9B%BF%E6%8D%A2%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.png)
我们的 Web 应用程序(大约 30 个)使用 log4net 将特定于应用程序的内容记录到集中式日志数据库(Sql Server 2012)中,因此日志数据库很快就会变得非常庞大。因此,我们决定每年更换它,例如重命名当前日志数据库(例如,将 AppLog 重命名为 AppLog2015),然后为 Web 应用程序创建一个新的日志数据库(AppLog)。我们需要保留替换的数据库以供将来查询。
进行这些替换的最佳做法是什么?在替换时,最好简单地设置所有应用程序的停机时间吗?或者是否可以在不停机的情况下替换数据库?
任何建议都值得感激。即使是完全不同的方法建议也欢迎。
答案1
如果您可以在几秒钟内查询一年的日志,那么对我来说这听起来很小。
它并不是微软的解决方案,但对于开源世界中的更大规模,ELK 堆栈很受欢迎。例如 Elastic Search、Logstash、Kibana。阅读它至少应该很有趣,可以了解可扩展的解决方案是什么样子。与微软工具的集成应该是可行的,因为您可以使用 syslog 协议发送日志。如果应用程序是您自己的,这很简单,但如果您的应用程序包含第三方工具,而这些工具不容易做到这一点,那么这可能会很麻烦。