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=start scn,不需要介质恢复 2)stopscn null,需要实例恢复 3、旧数据文件 system scn=datafile scn>start scn,stop scn null/notnull 1)system scn=datafile scn>start scn,需要介质恢复成system scn=datafile scn=start scn 2)stopscn null,需要实例恢复,not null 不需要实例恢复 4、备份控制文件 system scn=datafile scn<=start scn(当数据文件为旧的相等),stop scn notnull/null 1)system scn=datafile scn<=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn=current log scn(当前日志最大SCN) 2)为保证上一次恢复没有用到log日志不被使用,必须resetlogs 5、重建noresetlogs控制文件 控制文件中 datafile Checkpoint来自Online logs中的Current log头 current log scn=system scn=datafile scn>=start scn,stop scn not null/null 1)current log scn=system scn=datafile scn>=start scn,需要介质恢复成system scn=datafile scn=start scn=redolog scn(当前日志最大SCN),stop scn not null 2)stopscn not null 不需要实例恢复 6、重建resetlogs控制文件 控制文件中datafile Checkpoint来自各数据文件头。 system scn>=datafile scn=start scn,stop scn not null/null 1)system scn>=datafile scn=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn(当前日志最大SCN),stop scn not null 2)stop notnull,因为SCN已经为redolog scn,log已经不能使用,必须resetlogs
严格来说SCN是没有分类的,之所以会有不同类型的SCN,并不是说这些SCN的概念不一样,而是说不同分类的SCN代表的意义不一样,不管什么时候,SCN所指代的都是数据库的某个一致性的状态。
综述 众所周知,当在两个数据库之间建立 dblink连 接时,SCN 将被同步,以维持分布式事务读取一致性。 这将导致在较低 SCN 的数据库的 SCN 跳变。 在分布式事务中很难找到 SCN 跳变的来源。从 12.2 开始,视图DBA_EXTERNAL_SCN_ACTIVITY 以及 DBA_DB_LINK_SOURCES 和 DBA_DB_LINKS 使我们能够跟踪这些跳转。视图DBA_DB_LINK_SOURCES 也为 12.2 版本的新增视图。 Oracle 官网文档原文: Finding
一个SCN值总是发生在某一个特定的时刻,只不过由于粒度的不一样,通常会存在多个SCN对应同一个时间戳的情况。Oracle 10g提供了两个新函数用于SCN和时间戳进行相互转换,这两个函数分别是SCN_TO_TIMESTAMP和TIMESTAMP_TO_SCN,通过对SCN和时间戳进行转换,极大地方便了Oracle的很多备份和恢复过程:
SCN可以说是Oracle中一个很基础的部分,但同时它也是一个很重要的。它是系统中维持数据的一致性和顺序恢复的重要标志,是数据库非常重要的一种数据结构。 SCN介绍 SCN即系统改变号(System Change Number),是在某个时间点定义数据库已提交版本的时间戳标记。 Oracle为每个已提交的事务分配一个唯一的SCN。 SCN的值是对数据库进行更改的逻辑时间点。 Oracle使用此编号记录对数据库所做的更改。在数据库中,SCN也可以说是无处不在,数据文件头,控制文件,数据块头,日志文件等等都标记
Warning: The SCN headroom for this database is only 3 days!
正文: 在损失了日志,进行基于损坏的恢复时,可能会因为_allow_resetlogs_corruption参数的使用而收到ORA-600 2662的错误报告。 2662 错误是指: A data block SCN is ahead of the current SCN,也就是说数据块的SCN大于了系统的最大SCN,这意味着数据库出现了异常。 介绍一下SCN的基本知识:SCN可以说是Oracle中的很基础,但同时也是很重要的东西,它是一个单向增长的“时钟”,广泛应用于数据库的恢复、事务ACID、一致性读还
熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 Oracle数据库在安装了2012年1月发布的CPU或PSU补丁之后,经常出现下面一些现象: 1、应用出现ORA-1970
前情回顾: 更新通报:Oracle修正了关于DB Link补丁的公告 解决方案:Oracle的DB Link问题及升级路线详述 预警揭秘:11.2.0.4前版必须在2019年4月升级 Oracle D
在之前的文章中,我们阐述了“预警揭秘:倒计时炸弹11.2.0.4前版本DB Link必须在2019年4月升级真相”,很多读者提出了很多问题,我们在此进一步的补充和介绍一点基础知识,并给出解决方案。 我们整理了检查SCN的脚本 scnhealthcheck.sql 和文中用到的脚本,以及几篇文章的PDF版本,关注本公众号( OraNews)回复:SCNCOMP ,你可以找到下载链接。 1这个问题严重吗? 我想首先回答一下这个问题,可能很多人心存疑惑,这个问题严重吗?有多严重?会影响到我吗? 首先,我们分析这个
SCN(System Change Number,系统改变号)是一个由系统内部维护的序列号,在数据库全局是唯一的。当系统需要更新的时候自动增加,它是系统中维持数据的一致性和顺序恢复的重要标志,是数据库中非常重要的一种数据结构。在数据库中,SCN作为一种时钟机制来标记数据库动作,比如,当事务发生时,数据库会用一个SCN来标记它。SCN是在某个时间点定义数据库已提交版本的时间戳标记,Oracle为每个已提交的事务分配一个唯一的SCN。SCN的值是对数据库进行更改的逻辑时间点。SCN是一个只会增加、不会减少的数字。
环境:OEL 5.7 + Oracle 10.2.0.5 背景:Oracle发布的两篇关于2019年6月份将自动调整高版本数据库的SCN COMPATIBILITY的MOS文章引起了很多客户的恐慌,尤其是起初Oracle对10g版本未提供任何补丁。我这里结合业界多位Oracle ACE专家的系列文章,在自己的实验环境做了系列验证总结。
SYS.SMON_SCN_TIME基表用于记录过去时间段中SCN与具体的时间戳(timestamp)之间的映射关系,因为是采样记录这种映射关系,所以SMON_SCN_TIME可以较为粗糙地定位某个SCN的时间信息。实际的SMON_SCN_TIME是一张cluster table簇表。SMON_SCN_TIME基表的数据是由SMON后台进程来维护的。
在 Oracle 11.2.0.2 之后,随着一系列 SCN 耗尽问题的出现,很多补丁涌现出来,一个新的 Package 增加进来。 这个 Package 就是 DBMS_SCN。 如果你的数据库中存在这个 Package,也就意味着你已经安装具备了关于 DB Link 的修正补丁。 以下是这个包的主要函数过程以及说明,这个内容来自 Oracle 11.2.0.4 版本平台: Rem Rem $Header: rdbms/admin/dbmsscnc.sql /st_rdbms_11.2.0/1 2013/
SQL>select * from sys.smon_scn_time order by time_dp desc;
2、常见的SCN 2.1控制文件的三个SCN 系统SCN
zbar_symbol_type_t zbar_scan_y (zbar_scanner_t *scn, int y) { /* FIXME calc and clip to max y range... */ /* retrieve short value history */ register int x = scn->x; register int y0_1 = scn->y0[(x - 1) & 3];
自 2019年6月23日之后,关于 SCN 的问题不断爆发,尤其是 2252 错误引发了很多紧急的故障。 我在上一篇文章中已经详细描述了这个场景: https://www.enmotech.com/web/detail/1/843/1.html
最近几家客户的Oracle数据库开始集中爆发SCN HeadRoom问题,虽然SCN不会真正用完,但是数据库触碰到headroom天花板,还是可能有意想不到的情况发生,例如事务拒绝。 小编这里尽量用通
前情回顾,请参考之前的文章: 预警揭秘:倒计时炸弹11.2.0.4前版本DB Link必须在2019年4月升级真相 解决方案:Oracle的 DB Link 问题及2019年4月前升级路线详述 Oracle 的 DBMS_SCN 修正以及 SCN 的 auto-rollover 新特性 在 Oracle 官方支持站点 MOS 上,此前关于 DB Link 和 SCN 问题的两篇文章已经更新,发布了更详细的信息,现在这两篇文章的标题已经修改为: Recommended patches and action
在《ORA-1555错误解决一例》一文中,当时尝试模拟UNDO段头事务表被覆盖的情况下出现ORA-01555错误,没有成功。实际上没有成功的原因是事务数虽然多,但是事务过小,使UNDO块没有被覆盖完,
自2019年6月23日之后,Oracle启用了 SCN 自动 Auto-Rollover 的新特性,也就是自动调整了 SCN 的增长率算法(缺省32K 每秒,允许 SCN 最高以每秒 96K 计算)。注意,这里说的自动,是指不需要用户做任何主动的变化,数据库会自动调整。
环境:RHEL 6.5(x86-64) + Oracle 11.2.0.4 声明:推进SCN属于非常规恢复范畴,不建议非专业人员操作,否则后果自负。 需求:我这里演示下推进SCN 10W数量级,实际需求推进多少可以根据ORA-600 [2662] [a] [b] [c] [d] [e]具体值来确认。
李真旭 Oracle ACE,云和恩墨技术专家 个人博客:www.killdb.com 在Oracle数据库的日常维护中,我们可能经常会遇到一些从未见过的错误,甚至莫名其妙的错误。很多时候,甚至通过metalink、baidu、甚至google 都无法搜索到相关内容。这不,昨天公司南区同事让帮忙恢复的的一个客户数据库;据说是归档数据库,没有备份,重启实例后就无法打开数据库了。 我也是第一次听说这种事情,看了下居然是Oracle 11.2.0.3的数据库,还有这样起码的事情,确实有点匪夷所思。首先我们来
Oracle数据库意外宕机,归档开了,但是归档文件损坏,redo损坏,在强行拉起来之后UNDO报错,设置_corrupted_rollback_segments 跳过不一致的UNDO,重建UNDO表空间,接着报错:SMON encountered 100 out of maximum 100 non-fatal internal errors. 然后数据库自动宕机,报错处理如下: 1ORA-00600: internal error code, arguments: [13013], [5001], [458], [4197442], [6], [4197442], [3], [], [], [], [], []
在 Oracle 官方支持站点 MOS 上,最近发布了两篇告警文章,引发了用户的广泛关注,这两篇文章分别是: Oracle Databases Need to be Patched to a Minimum Patchset/PSU/RU level before April 2019 (Doc ID 2361478.1) Mandatory Patching Requirement for Database Versions 11.2.0.3 or Earlier, Using DB Links (Doc
SQL> alter session set events 'immediate trace name CONTROLF level 10';
Last Updated: Thursday, 2004-12-02 15:04 Eygle
ORA-01555错误是一种在Oracle数据库中很常见的错误。尤其在Oracle 8i及之前的版本最多。从9i开始的undo自动管理,至现在的10g、11g中的undo auto tuning,使得ORA-01555的错误越来越少。但是这个错误,仍然不可避免。 ORA-01555错误的原因分析 1、SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块
在删除Oracle数据的时候不小心,把delete语句执行错了,把别的表给delete,而且还执行了commit!那么如何进行恢复呢,下面介绍几种恢复方法。 第一种:
自前些天写了一个脚本通过shell脚本得到数据库的基本信息(一)(r9笔记第89天),今天特意测试了一下,没想到一下子发现了一个大问题。有一套一主两备的10gR2环境,一个异机备库一直在READ ONLY状态,也就意味着数据库在打开之后一直忘了恢复应用归档,然后在某一天发现时,已经延迟了好几个月。无论怎样,还得庆幸发现了这个问题。 目前来看一种行之有效的方法就是重搭备库,但是这种修复方式需要大量的磁盘空间,而且需要恢复的时间较长,怎么改进呢,可以考虑通过基于SCN的增量备份来跳归档恢复。目前的
误删除了Oracle部分重要数据,已提交,需要恢复。首先尝试Flashback Query闪回数据。
场景1:数据库SWITCHOVER切换之前停止OGG CLASSIC EXTRACT进程,切换之后修改OGG访问新主库,OGG EXTRACT进程RBA不移动也不会报错.
在数据库异常恢复中,经常需要修改数据库的 SCN 值,在 12C 之前,我们常用的方法有如下几个: oradebug poke 直接修改内存中的值; event 10015 来增加 scn 的值; _minimum_giga_scn 来增加 scn 的值; gdb/dbx 来直接修改内存中的值; 修改控制文件来修改 scn 的值; 修改数据文件头来修改 scn 的值; adjust_scn 来增加scn。 在这几种方法中,2、3和4方法在2012年中,Oracle 已经通过补丁更新,导致方法失效,就只有1,
在数据库异常恢复中,经常需要修改数据库的 SCN 值,在 12C 之前,我们常用的方法有如下几个:
在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3》中,我们看到一些区块的信息都有偏移指向。而我们本文讨论的节信息是没有任何偏移指向的,所以它是紧跟在可选文件头后面的。(转载请注明来源于breaksoftware的csdn博客)于是该节的起始位置要如此计算
如果一不小心对Oracle数据库中的数据进行了误删除操作,那么如何进行数据恢复呢(不考虑全库备份和利用归档日志)?如果使用的是9i以及之后的版本,那么我们可以采用闪回技术对误删除的数据进行恢复。方式有两种。
1.创建序列 CREATE SEQUENCE SEQ_ROAD_NETWORK_PLAN MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 10 NOORDER NOCYCLE ; 2.查看建表DDL语句 SELECT DBMS_METADATA.GET_DDL('TABLE','表名大写','用户大写') FROM DUAL; 同理可以更换第一个参数的名字查看其他对象的DDL。 3
--==================================================
如果是用户主生产环境,通常不会有用户会开启这个功能。 但如果是在ADG备库端,就会有不少客户选择开启这个功能,这可以有效补充误操作应急处置方法。
崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 在很多数据恢复的场景中,我们可能需要调节SCN,但是一个重要的隐含参数_minimum_giga_scn,在Oracle 11.2.0.2打上相关的SCN的补丁以及后续的版本中已经被废弃。 Connected to Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 Connected as SYS SQL> select count(*) from
首先通过备库sql查出相应的 node[thread#] 和归档位置 name:
oracle提供了针对已经删除的数据恢复;分为两种方法:scn和时间戳两种方法恢复。
闪回表(Flashback TABLE)是将表恢复到过去的某个时间点或某个SCN值时的状态。对闪回表语句不能进行回滚,如果要闪回表,那么需要有对表的FLASHBACK对象权限或者FLASHBACK ANY TABLE系统权限。
scn是数据库对自身变化的一个标记。通过一个序列号能够反映出数据库在那个时间点正在进行的操作,scn没有选用时间来作为基准单位,可能也是因为时间的不确定性,比如当前时间为2014年3月14号晚上八点整,如果修改了系统时间,改为晚上七点钟,name重启数据库以后,那个时间段的操作就都乱套了。这个scn在一般的库上都看似比较大,根据数据库的设计角度来说,这个scn能够使用很长很长的时间。 scn的变化也基本分为四类,实例级别scn,数据文件scn,数据文件头scn,结束scn,为了测试scn的变化情况,准备了下
在Oracle中,什么是闪回事务查询(Flashback Transaction Query)?
该文介绍了PE文件格式以及其结构,包括DOS头部、NT头部、节区、Section Table和重定位表等。
领取专属 10元无门槛券
手把手带您无忧上云