事务日志是服务器或数据库的一部分吗?

事务日志是服务器或数据库的一部分吗?

实际上(并且一般来说),事务日志是数据库服务器的一部分还是数据库本身的一部分?我无法在任何地方找到此领域的信息。我需要我正在组装的模型的信息...

如果这非常依赖于实现,我会考虑 SQL Server 2005/2008、MySQL 和 SQLite。但我希望尽可能保持通用性。

我设想,如果事务日志是服务器的一部分,那么整个服务器中就会有一个(可能两个)事务日志。这与每个数据库都有一个事务日志相反,后者会在单个服务器上产生多个事务日志。

答案1

补充一下 Joe 的评论,当对数据库的更改传输到数据库服务器时,它“针对”一个特定的数据库。但是,更改不会直接发生在数据库中。它存储在内存 (RAM) 中,然后写入事务日志。然后事务日志被写入(提交)到实际数据库。提交时间因数据库软件(MySQL、SQL Server 等)、数据库引擎设置和其他变量而异。

总而言之:一般来说,事务日志是各个数据库的一个组成部分。理论上,一台服务器上可以有数百(数千?!)个事务日志。但也存在一些例外,例如 Exchange 服务器,其中事务日志是存储组的一个组成部分,存储组可能有多个数据库……但我不会提及这一点,因为这会混淆视听。=)

答案2

在 Microsoft SQL Server 中,事务日志是数据库的一个组件。

相关内容