首页 » 数据库 » Oracle » Oracle数据库SCN存在可能在2019年6月导致宕机问题

Oracle数据库SCN存在可能在2019年6月导致宕机问题

 

当前的问题

Oracle日前发布了两个公告在其官网上,简单描述为对应的数据库都需要打上对应的最小补丁,否则在2019年6月的时候可能会导致大范围宕机的情况。

SCN是System Change Number的缩写,是在某个时间点定义数据库已提交版本的时间戳标记。 Oracle为每个已提交的事务分配一个唯一的SCN。 SCN的值是对数据库进行更改的逻辑时间点。 Oracle使用此编号记录对数据库所做的更改。在数据库中,SCN也可以说是无处不在,数据文件头,控制文件,数据块头,日志文件等等都标记着SCN。也正是这样,数据库的一致性维护和SCN密切相关。不管是数据的备份,恢复都是离不开SCN的。

数据库SCN号是有上限值的,当低版本的数据库使用DB Link连接高版本的数据库的时候,在2019年6月23日的时候,系统会自动废除16K/s的SCN增长率,转而实行兼容性3的SCN增长率96K/s,所以SCN的增加会突然增加的非常快,并且上限会提高。但是使用DB Link的数据库之间,由于为了保持系统数据一致,SCN会被拉平为一致的,也就是低版本数据库的SCN会突然被同步成跟高版本数据库一致的SCN号,这时候,由于低版本数据库的SCN增长率并没有变更,上限依旧是以前的上限,所以SCN会触发 SCN Headroom,SCN无法增长,导致系统停止运行,并且这种情况会随着连接的DB Link传播到所有的数据库,可能导致大范围宕机,最后可能需要重建数据库来解决。

Oralce最近发布的SCN相关重要公告

注意Timelines:

All database are strongly recommended to be at the above-mentioned release/Patchset/PSU/BP levels (or above) before June 2019.

强烈建议所有的数据库都至少打到如图所示的版本的补丁版本。

这是同时发布的另一个ID 2335265.1的公告:

原文链接:Oracle数据库SCN存在可能在2019年6月导致宕机问题,转载请注明来源!

0