1、系统正常关闭: system scn=datafile scn=start scn=stop scn 1)system scn=datafile scn=start scn,不需要介质恢复 2)stopscn...not null,不需要实例恢复 2、系统异常关闭: system scn=datafile scn=start scn,stop scn null 1)system scn=datafile scn...1)system scn=datafile scn>start scn,需要介质恢复成system scn=datafile scn=start scn 2)stopscn null,需要实例恢复,not...1)current log scn=system scn=datafile scn>=start scn,需要介质恢复成system scn=datafile scn=start scn=redolog...system scn>=datafile scn=start scn,stop scn not null/null 1)system scn>=datafile scn=start scn,需要使用using
首先 2252 中抛出了 SCN 的两部分信息:SCN_WRAP 和 SCN_BASE。...4字节(32bit),SCN_WRAP 2字节(16bit)的数字,当SCN_BASE达到其最大值(2^32 = 4294967296)时,SCN_WRAP增加1,SCN_BASE将被置0重新计数。...所以 SCN 的计算公式如下: SCN =(SCN_WRAP * 4294967296)+ SCN_BASE 我们将错误信息中的: [2252], [4183], [1370899101] 计算一下就是...scn from dual; SCN ------------------------ 17,967,219,098,269 我们再根据时间计算一下这个时间点数据库允许的最大 SCN...16,650,300,226,976 我们注意前者已经大于后者,也就是主数据库的 SCN 高过了 DB Link 连接的低版本数据库 SCN 最大许可值。
ARGUMENTS: Arg [a] Current SCN WRAP Arg [b] Current SCN BASE Arg [c] dependent SCN WRAP Arg [d] dependent...SCN BASE Arg [e] Where present this is the DBA where the dependent SCN came from....更多详情可参考: ORA-600 [2662] "Block SCN is ahead of Current SCN" (文档 ID 28929.1) 1.查看当前数据库的Current SCN 2.重新启动数据库到...mount阶段 3.使用oradebug poke推进SCN 4.补充实际计算推进SCN的方法 1.查看当前数据库的Current SCN SYS@orcl> select current_scn||'...--------------- 4563483988 可以看到当前SCN是4563483988,我现在想推进SCN,在10w级别,也就是4563483988标红数字修改为指定值。
那么除了这些,SCN还有以下一些知识点: SCN的内部存储方式:在Oracle内部,SCN分为两部分存储,分别称之为scn wrap和scn base。...Maximum Reasonable SCN:在当前时间点,SCN最大允许达到(或者说最大可能)的SCN值。也称为Reasonable SCN Limit,简称RSL。...如果A库通过db link连接到B库,如果A库的SCN高于B库的SCN,那么B库就会递增SCN到跟A库一样,反之如果A库的SCN低于B库的SCN,那么A库的SCN会递增到跟B库的SCN一样。...kcmgas的意思是get and advance SCN,即获取并递增SCN。...在两个库通过dblink进行分布式事务时,假设B库的SCN值要高于A库的SCN,因此要将B库的SCN增同步到A库,但是如果B库的SCN过高,这样同步到A库之后,使得A库面临Headroom过小的风险,那么
综述 众所周知,当在两个数据库之间建立 dblink连 接时,SCN 将被同步,以维持分布式事务读取一致性。 这将导致在较低 SCN 的数据库的 SCN 跳变。...推进是否接受或拒绝 OPERATION_TIMESTAMP:推进发生的时间 EXTERNAL_SCN:当前 SCN 跳变到的新 SCN 值 SCN_ADJUSTMENT:SCN 的增量有多大 HOST_NAME...内容如下: select * from check_ext_scn; 使用Dblink前查看SCN 号与推进 检查两个数据库中的 SCN: Database 1: SQL> select current_scn...现在,由于两个数据库的 SCN 几乎接近,让我们尝试一个 Dblink 连接,看看如果跳变小于9830400个SCN,是否记录 SCN 跳变。...视图 DBA_EXTERNAL_SCN_ACTIVITY 不会捕获所有 SCN 跳变。 它只在下面的情况下捕获 SCN 跳变。
在 Oracle 11.2.0.2 之后,随着一系列 SCN 耗尽问题的出现,很多补丁涌现出来,一个新的 Package 增加进来。 这个 Package 就是 DBMS_SCN。...OUT number, cur_scn_compat OUT number, max_scn_compat OUT number); -...current value of SCN compatibility -- max_scn_compat - max value of SCN compatibility this database...; / 这里就可以看到 auto-rollover 的自动 SCN 兼容性终止时间,也就是说,在不同的兼容性设置中,SCN 的算法不同,但是内置了天然的算法过期时间。...在此之后,可以通过命令修改数据库的 SCN 兼容性算法: SQL> ALTER DATABASE SET SCN COMPATIBILITY 2; Database altered.
增长速度不会达到那么高, 一般而言,SCN的增长速度是和数据库繁忙程度相关的, 每次事务之前和之后都会生成新的SCN, 所有数据库的当前SCN会落后于最大可用SCN。...常见的SCN异常增长的几种场景如下: 数据库持续保持非常高的事务量,因为每次数据库事务至少生成两个SCN, 所以造成SCN高速增长, 但是这种情况比较少见; 当用户SQL使用不当, 或者在触发部分SCN...而SCN不能回退, 所以两个数据库会把SCN同步到相对较大的那个SCN。...DBLINK触发SCN同步时, 如果外来SCN远超出当前数据库的SCN ,系统会自动拒绝该请求, 该参数的缺省设置是24小时。...设置隐含参数_external_scn_rejection_threshold_hours=24,避免外来SCN引起SCN剧烈变化。
崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 在很多数据恢复的场景中,我们可能需要调节SCN,但是一个重要的隐含参数_minimum_giga_scn,在Oracle...11.2.0.2打上相关的SCN的补丁以及后续的版本中已经被废弃。...另外,经我测试,不仅_minimum_giga_scn失效了,alter session set events ‘10015 trace name adjust_scn level XXX’也失效了。...这里我想把SCN调整为1G。...调成了1G,现在我们通过oradebug直接修改内存的方式把SCN从1G调整到2G。
关于checkpoint cnt和checkpoint scn 通过试验说明checkpoint cnt 和checkpoint scn的关系 1.在不同条件下转储控制文件 SQL> alter session...scn: 0xffff.ffffffff 06/22/2004 18:58:05 Creation Checkpointed at scn: 0x0000.000000ae 07/16/2003 03...scn: 0xffff.ffffffff 06/22/2004 18:58:05 Creation Checkpointed at scn: 0x0000.000000ae 07/16/2003 03...scn: 0xffff.ffffffff 06/22/2004 18:58:05 Creation Checkpointed at scn: 0x0000.000000ae 07/16/2003 03...第二次检查数据文件头的开始SCN和对应控制文件中的结束SCN是否一致 如果结束SCN等于开始SCN,则不需要对那个文件进行恢复.
小编这里尽量用通熟易懂的语言,来解释下SCN HeadRoom,以及出现SCN HeadRoom后的处理措施。 ?...什么是SCN HeadRoom SCN是Oracle的内部时钟,他会随着Oracle的各种操作,不断增长,最大能涨到2的48次方,也算是个天文数字。...SCN增长不触碰到HeadRoom,就没问题。...,他们需要一个统一的SCN,两个库的SCN不一样,就同步成一样。...如果一个SCN异常增长的库放在你的生产环境里,又有DBlink查询的话,这片数据库的SCN增长基本都会异常。所以当DBLink触发的SCN增长超过限定值时,对端数据库可能会拒绝这次事务。
scn是数据库对自身变化的一个标记。...这个scn在一般的库上都看似比较大,根据数据库的设计角度来说,这个scn能够使用很长很长的时间。...scn的变化也基本分为四类,实例级别scn,数据文件scn,数据文件头scn,结束scn,为了测试scn的变化情况,准备了下面的场景 1)全局检查点更新 如alter system checkpoint...,数据库级scn应该会发生变化。...有些场景没有涉及到,目的只是向大家分享一下日常的操作中scn的变化。
SCN介绍 SCN即系统改变号(System Change Number),是在某个时间点定义数据库已提交版本的时间戳标记。 Oracle为每个已提交的事务分配一个唯一的SCN。...)的数字 每当SCN_BASE达到其最大值(2^32 = 4294967296)时,SCN_WRAP增加1,SCN_BASE将被重置为0,一直持续到SCN_WRAP达到其最大值,即2^16 = 65536...SCN =(SCN_WRAP * 4294967296)+ SCN_BASE SCN随着每个事务的完成而增加。提交不会写入数据文件,也不更新控制文件。...总共有4种SCN: 系统检查点(System Checkpoint)SCN 数据文件检查点(Datafile Checkpoint)SCN 结束SCN(Stop SCN) 开始SCN(Start SCN...SCN与数据库启动: 在数据库启动过程中,当System Checkpoint SCN、Datafile Checkpoint SCN和Start SCN都相同时,数据库可以正常启动,不需要做media
1、SCN的意义?...(dbms_flashback.get_system_change_number) from dual; SCN号,为了保证数据的一致性; 2、常见的SCN 2.1控制文件的三个SCN...文件SCN 与数据文件头部的SCN应该是一样的。...数据库正常关闭,buffer cache 更新系统SCN,文件SCN,终止SCN。数据文件头部的SCN。 非正常关闭,终止SCN为空,其他都一样,非正常关闭需要进行实例恢复。...②提升SCN,比如一个数据文件是旧的,就需要应用归档日志、重做日志使其SCN提升到跟系统SCN一致。 每个日志条目里面都有SCN。 每个日志文件 头部有两个SCN,first和next SCN。
SCN是在某个时间点定义数据库已提交版本的时间戳标记,Oracle为每个已提交的事务分配一个唯一的SCN。SCN的值是对数据库进行更改的逻辑时间点。SCN是一个只会增加、不会减少的数字。...在数据库中,SCN可以说是无处不在,例如数据文件头、控制文件、数据块头、日志文件等等都标记着SCN。也正因为如此,数据库的一致性维护和SCN密切相关。不管是数据的备份还是恢复都离不开SCN。...SCN的组成 SCN是一个6字节(48bit)的数字,其值为281,474,976,710,656(2^48),分为2个部分:SCN_BASE和SCN_WRAP。...每当SCN_BASE达到其最大值(2^32 = 4294967296)时,SCN_WRAP增加1,SCN_BASE将被重置为0,一直持续到SCN_WRAP达到其最大值,即2^16 = 65536。...SCN =(SCN_WRAP * 4294967296)+ SCN_BASE SCN随着每个事务的完成而增加。提交不会写入数据文件,也不更新控制文件。
操作完可以查看v$managed_standby视图确定是否关闭 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 2.确定备库scn...这是为了确定增量备份从哪个scn开始,需要查询两个地方,找到’lowest SCN’,哪个结果最小,就从哪个开始。...SQL> SELECT CURRENT_SCN FROM V$DATABASE; SQL> select min(checkpoint_change#) from v$datafile_header...file# from v$datafile where enabled = 'READ ONLY'); 3.主库增量备份 主库登陆RMAN RMAN> BACKUP INCREMENTAL FROM SCN...对备用数据文件所在的每个磁盘组(或目录)在STANDBY 中执行下面步骤: RMAN> CATALOG START WITH '+DATA/STBY/datafile/'; 如果在备份的SCN号之后,
如何获得当前数据库的SCN值 --SCN定义及获取方式 Last Updated: Thursday, 2004-12-02 15:04 Eygle SCN(System Change Number...在事物提交时,它被赋予一个唯一的标示事物的 SCN 。 SCN 提供 Oracle 的内部时钟机制, 可被看作逻辑时钟,这对于恢复操作是至关重要的 ( Oracle 仅根据 SCN 执行恢复)。...一直以来,对于 SCN 有很多争议,很多人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多时候, 这两个名词经常被交替使用。...到底是哪个词其实不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过 SCN 实施 Oracle 至关重要的恢复机制。...SCN 由 LGWR 顺序分配,用以标示提交、回滚和检查点。
在数据库异常恢复中,经常需要修改数据库的 SCN 值,在 12C 之前,我们常用的方法有如下几个: oradebug poke 直接修改内存中的值; event 10015 来增加 scn 的值; _minimum_giga_scn...来增加 scn 的值; gdb/dbx 来直接修改内存中的值; 修改控制文件来修改 scn 的值; 修改数据文件头来修改 scn 的值; adjust_scn 来增加scn。...在这几种方法中,我们常常使用方法1来修改 scn 的值,但是此方法在 12C 中,Oracle 也已经屏蔽,还可以继续使用4,5,6 的方法来实现修改 SCN。...2测试修改 SCN 的值 2.1 查看当前 SCN 的值 这里查询当前 SCN 的值,主要用于与后面修改后的值做对比。 SQL> startup ORACLE instance started....SQL> select current_scn from v$database; CURRENT_SCN ----------- 7423640 看到 SCN 的值增加了 300W。
2662 错误是指: A data block SCN is ahead of the current SCN,也就是说数据块的SCN大于了系统的最大SCN,这意味着数据库出现了异常。...那么除了这些,SCN还有以下一些知识点: SCN的内部存储方式:在Oracle内部,SCN分为两部分存储,分别称之为scn wrap和scn base。...遇到这种情况,如果SCN相差不大,通过重启数据库的自动SCN增进可能可以解决这个问题,如果两个SCN差异过大,就需要手工增进SCN来消除这个差异。...这里我设置了_minimum_giga_scn参数来推进SCN _minimum_giga_scn=6 增进这个参数后,启动数据库可以在ALERT文件中看到: Advancing SCN to 6442450944...详细的文章参考: SCN、ORA-19706错误和_external_scn_rejection_threshold_hours参数 SCN过度增进的防范 为了防范SCN的过度增进,Oracle限制了很多增进
” 其实我们这次的题目已经提出了解决方法,就是利用基于scn的备份去恢复我们的备库,从而绕开中间过多或者丢失的归档。 那么基于scn备份究竟是什么意思呢?...如何完成一次基于scn的恢复?...所以回到我们的方法,我们找到备库端数据文件中最低的scn,然后在主库去基于这个scn进行备份,这个时候rman回去扫描整个主库的块,如果块内的scn小于备库端数据文件中最低的scn,则证明这个块从备库应用到的时间点到现在是没有改变的...如果块内的scn大于备库端数据文件中最低的scn证明在这个阶段这个快进行了修改,就记录下这个块的内容。等拿到备库端去恢复的时候就替换这个块的内容。...run {configure controlfile autobackup on; sql 'alter system switch logfile'; BACKUP INCREMENTAL FROM SCN
领取专属 10元无门槛券
手把手带您无忧上云