我们在 Oracle 10g 中有一个实例。Web 应用程序(面向 Internet)仅使用一种模式,该模式仅供用户阅读信息,不能添加或修改数据。其余模式未使用。
Archived Redo Logs
被激活。对我们来说奇怪的是,每天都会生成存档文件,包括周日和节假日,没有人来上班。
我认为归档重做日志是在插入、删除或更新数据时生成的,而不是因为 select 语句。
那是对的吗?
我们在 Oracle 10g 中有一个实例。Web 应用程序(面向 Internet)仅使用一种模式,该模式仅供用户阅读信息,不能添加或修改数据。其余模式未使用。
Archived Redo Logs
被激活。对我们来说奇怪的是,每天都会生成存档文件,包括周日和节假日,没有人来上班。
我认为归档重做日志是在插入、删除或更新数据时生成的,而不是因为 select 语句。
那是对的吗?
Oracle本身一般会在运行各种后台作业的过程中产生redo。例如,默认情况下,在 10g 中,有一个收集对象统计信息的作业。这将产生重做。默认情况下,10g 有一个每小时收集 AWR 信息的作业。这也会产生重做。还有许多其他后台作业(检查点、将 SCN 更新到时间戳映射表等)也将运行,它们将自然而然地持续生成重做。
如果您运行查询
在(从用户的角度)空闲数据库中,您会注意到
current_scn
每隔几秒钟就会增加一次。那是甲骨文做各种家务。每次整理都会产生少量的重做。在一整天的过程中,即使您的系统在其他方面非常空闲,这也足以容纳几个归档日志,这是很常见的。您可以使用LogMiner准确查看日志包含的内容。
由于延迟块清除,语句也可能
SELECT
生成重做日志条目。Oracle 文档中对此进行了介绍,但是您也可以在此处找到包含该主题的 Ask Tom 文章。