0

本教程指出

Database datafiles are physical files stored on disk

现在,如果我的计算机上有一个文件,两个进程无法同时更新该文件。但是在 Oracle 中,如果我们更新位于同一数据文件中的两行,这两行如何同时更新(并发)?

4

1 回答 1

3

好吧,一般来说,写入数据文件的不是单独的会话,而是代表它们更改文件的DB Writer进程。您的会话正在更改保存在内存中的数据块 - 在系统全局区域中- 并将更改写入重做日志缓冲区

当您提交更改时,数据文件本身不会同步更新,但在日志写入进程将未完成的更改记录写入重做日志文件之前,提交无法(通常)完成。对重做日志文件的更改和提交记录的写入足以在实例崩溃的情况下保留更改以供恢复——对 dat 文件的更改可以异步进行。

这是一个严重的过度简化,您可以在此处阅读有关 Oracle 架构的更多信息。

于 2013-11-01T20:27:36.413 回答