Home >Database >Mysql Tutorial >dblink致Oracle库的SCN变成两库的最大值

dblink致Oracle库的SCN变成两库的最大值

WBOY
WBOYOriginal
2016-06-07 17:22:171083browse

Oracle 数据库的scn是系统识别号,递增的,它的保存位数为48位,就是说最大值是2的48次方. 系统每秒最大增加16times;1024数。

Oracle 数据库的scn是系统识别号,递增的,它的保存位数为48位,就是说最大值是2的48次方.
 系统每秒最大增加16×1024数。

 我们的数据库有很多,相互之间中dblink关联的很多。
 而如使用A表使用dblink连接B库,A库的SCN的100,B库的SCN是300.在使用dblink连接操作一次后,A库的SCN立即变成300.两个库的SCN值会变成一致,,取的是两个数据库的SCN的最大值。

 这就是导致了数据库SCN不在遵守每秒16×1024这个最大值的限制。

 一个数据库群中,使用dblink相互关联后,所有的数据库SCN号变成SCN号最大的值。

 问题来了。。。

 数据库群中的版本会是各种各样的。有10g,也有11g
 如果某一个版本的库有问题,SCN爆涨,会导致所有的数据库SCN暴涨。

 如果SCN号增加到2的48次方,数据库将宕机,能不能再起得来都不知道。
 在这之前,alert.log会有这样的错误提示:
 ************************************************************
 Warning: The SCN headroom for this database is only 38 days!
 ************************************************************
 说scn只能用38天了。

不幸的是,oracle 在2012年发布了一个补丁包,会导致这个bug出现。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn