【发布时间】:2020-06-02 02:04:46
【问题描述】:
我知道重做日志条目是在发生插入/更新/删除/创建/删除/更改时创建的。哪些信息存储在重做日志中?在实例失败的情况下,重做日志文件用于恢复数据库,它是否包含有关更改应用数据库缓冲区缓存的信息?
【问题讨论】:
标签: oracle database-performance sqlperformance sql-tuning
我知道重做日志条目是在发生插入/更新/删除/创建/删除/更改时创建的。哪些信息存储在重做日志中?在实例失败的情况下,重做日志文件用于恢复数据库,它是否包含有关更改应用数据库缓冲区缓存的信息?
【问题讨论】:
标签: oracle database-performance sqlperformance sql-tuning
如果进行重做日志挖掘(以准确查看重做日志中的内容),则有一个视图可以告诉您他们存储的内容:V$LOGMNR_CONTENTS。
这通常显示:
- Operation: INSERT, UPDATE, DELETE, or DDL
- SCN - system change number - very important for recovery
- The transaction to which a change belongs
- The table and schema name of the modified object
- The name of the user who issued the DDL or DML
- the SQL needed to redo and/or undo your changes.
所以是的,重做日志包含提交脏缓冲区时所做的更改。它们用于在发生故障时重建数据库。它们还保护回滚数据,因为用于重做和撤消的 SQL 都被存储并在恢复期间被回放。
V$LOG 和 V$LOGFILE 显示您的重做数据文件是如何分配的。您通常需要成对使用它们,因为您有备份以防丢失。您还希望至少有 3 个组(对),因为有些是活动的,有些是最新的,有些正在写入存档日志,这对于恢复也很重要。
【讨论】: