实验环境:OEL 5.7 + Oracle 10.2.0.5

Tips:该参数仅在特殊恢复场景下使用,需要在专业Oracle工程师指导下进行操作。

1.隐藏参数说明

查询隐藏参数"_allow_resetlogs_corruption"及说明:

set linesize 333
col name for a35
col description for a66
col value for a30
SELECT i.ksppinm name,
i.ksppdesc description,
CV.ksppstvl VALUE
FROM sys.x$ksppi i, sys.x$ksppcv CV
WHERE i.inst_id = USERENV ('Instance')
AND CV.inst_id = USERENV ('Instance')
AND i.indx = CV.indx
AND i.ksppinm LIKE '%&keyword%'
ORDER BY 1; Enter value for keyword: allow_resetlog
old 8: AND i.ksppinm LIKE '%&keyword%'
new 8: AND i.ksppinm LIKE '%allow_resetlog%' NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_allow_resetlogs_corruption allow resetlogs even if it will cause corruption FALSE

通过这个隐藏参数非常规恢复的库,原则建议还是要重建库的。其实在alert日志中也会看到有这样的建议:

Wed Dec 26 00:00:41 CST 2018
alter database open resetlogs
Wed Dec 26 00:00:41 CST 2018
RESETLOGS is being done without consistancy checks. This may result
in a corrupted database. The database should be recreated.

2.故障场景再现

模拟常规开库失败的场景:

SQL> select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#
------------------
10013731555
10014045643
10014045643
10014045643
10014045643
10014045643
10014045643
10014045643
10014045643 9 rows selected. SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '+ZHAOJINGYU/jy/datafile/system.256.839673875'

说明:这个环境是模拟数据文件1丢失,最终从备份restore出来一个旧的文件,但由于种种原因,总之没有后续的归档去做recover,导致无法追平。

此时就可尝试使用_allow_resetlogs_corruption隐藏参数强制开库:

SQL> alter system set "_allow_resetlogs_corruption" = true scope=spfile;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database open resetlogs;

此时再去查询数据文件头的SCN已经一致:

SQL> select checkpoint_change# from v$datafile_header;

  CHECKPOINT_CHANGE#
--------------------
10014022016
10014022016
10014022016
10014022016
10014022016
10014022016
10014022016
10014022016
10014022016 9 rows selected.

注意处理完毕后及时改回这个隐藏参数为false:

alter system set "_allow_resetlogs_corruption" = false scope=spfile;

其他注意事项:如果开库遇到ORA-600 [2662]类错误,可以参考之前随笔:

最终通过推进SCN的手段来解决ORA-600 [2662]类问题。

其实这个场景其实可能会遇到各种问题,都属于非常规恢复范畴,后续我会计划去继续测试验证一些常见场景及解决方案。

实验隐藏参数"_allow_resetlogs_corruption"的使用的更多相关文章

  1. Delphi 中的 procedure of object (类方法存在一个隐藏参数self),简单深刻 good

    其实要了解这些东西,适当的学些反汇编,WINDOWS内存管理机制,PE结构,看下李维的VCL架构剖析可以很好理解type TMyEvent = procedure of object;这是一种数据类型 ...

  2. Delphi函数指针的两种定义(对象方法存在一个隐藏参数self,所以不能相互赋值)

    delphi中经常见到以下两种定义 Type TMouseProc = procedure (X,Y:integer); TMouseEvent = procedure (X,Y:integer) o ...

  3. oracle 查看隐藏参数

    隐藏参数 (hidden parameters) ,由oracle内部使用,以 '_' 开头. 可以通过以下两种方式查看所有隐藏参数: SELECT   i.ksppinm name, i.ksppd ...

  4. ORACLE隐藏参数查看及修改

    查看隐藏参数 select x.ksppinm name, y.ksppstvl value, y.ksppstdf isdefault, decode(bitand(y.ksppstvf,7),1, ...

  5. 用超链接提交表单,实现在动态网页的url中隐藏参数

    动态网页中怎么隐藏url参数传递 我们在做动态网站的时候往往会在各个页面之间传递参数,而这些参数的名称和值都会在url地址栏中被暴露出来,这样一方面不安全,另一方面也不便于搜索引擎的收录,有的时候还有 ...

  6. jsp取addFlashAttribute值深入理解即springMVC发redirect传隐藏参数

    结论:两种方式 a.如果没有进行action转发,在页面中el需要${sessionScope['org.springframework.web.servlet.support.SessionFlas ...

  7. 极端恢复时用到的几个隐藏参数 Oracle hidden corruption recovery parameters

    Oracle hidden corruption recovery parameters Note: Oracle hidden parameters are undocumented and uns ...

  8. Oracle11g版本中未归档隐藏参数

    In this post, I will give a list of all undocumented parameters in Oracle 11g. Here is a query to se ...

  9. Android之Monkey全参数(包含隐藏参数)

    http://blog.csdn.net/jlminghui/article/details/38238443 参数如下: 注意:以下例子中命令均为Windows cmd命令窗口运行环境,往外官网列出 ...

随机推荐

  1. 60cms Cookies欺骗漏洞审计

    源码地址:https://files.cnblogs.com/files/ssooking/60cms.zip 运行60cms目录下的Netbox.exe即可开启Asp Web服务,默认端口80 环境 ...

  2. mysql分区方案的研究

    笔者觉得,分库分表确实好的.但是,动不动搞分库分表,太麻烦了.分库分表虽然是提高数据库性能的常规办法,但是太麻烦了.所以,尝试研究mysql的分区到底如何. 之前写过一篇文章,http://www.c ...

  3. [Linux]Linux read/write

    Read 默认read是block模式,如果想设置非block默认,则open时候参数添加O_NONBLOCK read block模式下,并非等到Buffer满才返回,而是只要有data avaia ...

  4. Tomcat 配置详解/优化方案(转)

    转载地址:https://blog.csdn.net/cicada688/article/details/14451541/ Service.xml Server.xml配置文件用于对整个容器进行相关 ...

  5. quartz与spring boot-最简模式

    多年前使用过quartz,今天又需要再用,而且是在spring boot框架下.很神奇,spring也是十年前用过的. 这里仅记录下完成的最快速和简单的操作,高级的使用以后有空弄明白了再写: 1.增加 ...

  6. CentOS安装和配置Rsync进行文件同步

    Liunx系统实现文件同步不需要搭建FTP这类的工具,只需要按照Rsync配置下文件就可以. 本文以Centos7.0为例. 1. 首先关闭SELINUX(不关闭无法同步,权限太高了) vi /etc ...

  7. 5迪米特法则LoD

    一.什么是迪米特法则 迪米特法则(Law of Demeter )又叫做最少知识 原则,也就是说,一个对象应当对其他对象尽可 能少的了解. 迪米特法则最初是用来作为面向对象的系统设 计风格的一种法则, ...

  8. 用scrapy框架爬取映客直播用户头像

    1. 创建项目 scrapy startproject yingke cd yingke 2. 创建爬虫  scrapy genspider live 3. 分析http://www.inke.cn/ ...

  9. error_match问题

    当nginx的sendfile处于on的情况下,在docker的环境下修改js文件会出现error_match的问题,应该要在nginx的配置中把sendfile设为off

  10. JBPM工作流(二)——数据库表说明

    以下为JBMP的数据库说明(18张): 1 流程配置类数据库表: 1.1 JBPM_PROCESSDEFINITION:流程模版表 字段名 字段含义 主键 外键 ID_ 流程模版标识 √ × NAME ...