oracle-SCN系统改变号

2024-01-02 12:39:06

SCN
system change number
我们看到的SCN是一串数字,由时间经过函数算出的,其实就是时间。但时间的比较复杂,不如转换成数字比较。
给一个日志加scn号,其实就是给日志加上时间点。
在这里插入图片描述
2常见的SCN
在这里插入图片描述
对于scn的理解
控制文件中有两个scn,开始和结束,数据文件头部也有一个scn号。
当数据库正常运行时,控制文件的开始scn号和数据文件的scn号一直,结束scn号为空。当正常关闭数据库时,三个号统一一致。
当非正常关闭时,结束scn号未被写入,再启动数据库时,由于结束scn号为空,数据库知道异常关闭,则会进行实例异常恢复。
在日志文件中,每一条日志都有scn号,而且日志循序写的。同时每个日志块在头部也有开始scn号和nextscn号。
在这里插入图片描述
inactive是表示buffer pool脏块写进磁盘去,可以被覆盖。
active表示buffer pool脏块还没写进磁盘去,不可以被覆盖,实例恢复需要。
current表示当前所用的日志文件。
所以系统和文件的SCN是与最老的active的日志的first的SCN一致的。
具体的实例恢复,还得定位到最老的*active的日志里面的LRBA的具体日志。
在这里插入图片描述

文章来源:https://blog.csdn.net/lubo268/article/details/135333150
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。