当前位置:  数据库>oracle

修改Datafile Header规避ORA-01190

    来源: 互联网  发布时间:2017-05-25

    本文导语: 一 触发ORA-01190错误的原因 1 先抛出一个ora-01190错误,此错误用bbed工具构造 SQL> startup Oracle instance started.   Total System Global Area 322961408 bytes Fixed Size 2020480 bytes Variable Size 96471936 bytes Database Buffers 218103808 bytes Redo Buffers 6365184 bytes Datab...

一 触发ORA-01190错误的原因

1 先抛出一个ora-01190错误,此错误用bbed工具构造
SQL> startup
Oracle instance started.
 
Total System Global Area 322961408 bytes
Fixed Size 2020480 bytes
Variable Size 96471936 bytes
Database Buffers 218103808 bytes
Redo Buffers 6365184 bytes
Database mounted.
ORA-01190: control file or data file 11 is from before the last RESETLOGS
ORA-01110: data file 11: '/oracle/test/jiujian1.dbf'
 
2 oerr ora 01190 给出这个错误的解释
 
[oracle@oracle ~]$ oerr ora 01190
01190, 00000, "control file or data file %s is from before the last RESETLOGS"
// *Cause: Attempting to use a data file when the log reset information in
// the file does not match the control file. Either the data file
// or the control file is a backup that was made before the most
// recent ALTER DATABASE OPEN RESETLOGS.
// *Action: Restore file from a more recent backup.
 
3 查询数据文件头部和控制文件中关于resetlogs的信息
控制文件中关于resetlogs的相关信息如下:
SQL> select resetlogs_change#, to_char(resetlogs_time,'mm/dd/yyyy hh24:mi:ss') time from v$database;
RESETLOGS_CHANGE# TIME
----------------- ------- -------------------
2781464667 01/15/2013 21:51:45
各数据文件头中resetlogs的信息如下:
对于resetlogs count 的描述如下:
reset logs count and scn: The counter with the SCN is called the Reset Log Stamp,
and is a unique identification.
 
 
SQL> select hxfil,fhrls change#,fhrlc_i,fhrlc time from x$kcvfh;
 
HXFIL CHANGE# FHRLC_I TIME
---------- ---------------- ---------- -------------------- -----------------------
1 2781464667 804808305 01/15/2013 21:51:45
2 2781464667 804808305 01/15/2013 21:51:45
3 2781464667 804808305 01/15/2013 21:51:45
4 2781464667 804808305 01/15/2013 21:51:45
5 2781464667 804808305 01/15/2013 21:51:45
6 2781464667 804808305 01/15/2013 21:51:45
7 2781464667 804808305 01/15/2013 21:51:45
8 2781464667 804808305 01/15/2013 21:51:45
12 2781464667 804808305 01/15/2013 21:51:45
13 2781464667 804808305 01/15/2013 21:51:45
 
11 rows selected.
 
二 通过bbed修改数据文件头部规避此错误
 
1 resetlogs count 和resetlogs scn 在数据文件头部的位置
 
BBED> p offset 112
kcvfh.kcvfhrlc
--------------
ub4 kcvfhrlc @112 0x2ff85555 resetlogs count
 
BBED> p offset 116
kcvfh.kcvfhrls.kscnbas
----------------------
ub4 kscnbas @116 0xa5c9a35a resetlogs scn
 
2 用bbed 调整这两处的值
调整resetlogs count如下
BBED> dump /v dba 1,1 offset 112 count 30
File: /oracle/test/system1.dbf (1)
Block: 1 Offsets: 112 to 141 Dba:0x00400001
-------------------------------------------------------
7166f82f 5bc8c9a5 00000000 00000000 l qf?[壬?.......
00000000 00000000 00000420 dc07 l ........... ?
 
 
BBED> dump /v dba 11,1 offset 112 count 30
File: /oracle/test/jiujian1.dbf (11)
Block: 1 Offsets: 112 to 141 Dba:0x02c00001
-------------------------------------------------------
5aa3c9a5 00000000 00000000 l UU?ZI?.......
00000000 00000000 00000400 9b02 l ..............
 
 
BBED> modify /x 7166
File: /oracle/test/jiujian1.dbf (11)
Block: 1 Offsets: 112 to 141 Dba:0x02c00001
------------------------------------------------------------------------
5aa3c9a5 00000000 00000000 00000000 00000000 00000400 9b02
 
 
调整 resetlogs scn值如下
 
BBED> dump /v dba 1,1 offset 116 count 30
File: /oracle/test/system1.dbf (1)
Block: 1 Offsets: 116 to 145 Dba:0x00400001
-------------------------------------------------------
00000000 00000000 00000000 l [壬?...........
00000000 00000420 dc070000 df70 l ....... ?..遬
 
 
BBED> dump /v dba 11,1 offset 116 count 30
File: /oracle/test/jiujian1.dbf (11)
Block: 1 Offsets: 116 to 145 Dba:0x02c00001
-------------------------------------------------------
00000000 00000000 00000000 l ZI?...........
00000000 00000400 9b020000 b155 l ............盪
 
 
BBED> modify /x 5bc8
File: /oracle/test/jiujian1.dbf (11)
Block: 1 Offsets: 116 to 145 Dba:0x02c00001
------------------------------------------------------------------------
00000000 00000000 00000000 00000000 00000400 9b020000 b155
 
 
最后sum apply 使更改生效
BBED> sum apply
Check value for File 11, Block 1:
current = 0x77a2, required = 0x77a2

接下来请看第2页精彩内容:


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改Windows硬盘分区名称
  • unix 下 C++实现 ftp 到另一台主机上 修改文件内容 !能不能直接在主机上修改 还是只能get下来本地修改完后 在put上去
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 高手帮帮忙!!! 在线等!!outlook的附件修改且保存后,再次打开发现是修改之前的原件
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 修改ip地址的话应该修改/ect下哪个文件里的内容?
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 原密码被人恶意修改,如何修改suse系统的超级用户密码(急)
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • java开发知识 iis7站长之家
  • 通过docker commit命令保存对docker容器的修改
  • 请教一下,如何修改ubuntu命令,使其可以直接修改kvm虚拟机配置
  • linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
  • shell 程序监控网站网页是否被修改,如果被修改停止服务器的运行?
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  • 请教下关于root密码忘记了怎么修改(除了去现场单用户修改)
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • [fedora]下怎么修改MAC地址,并且要重新动的时候还是修改后的值。
  • 哪个DOS命令可以修改指定文件的时间(修改时间)?
  • ◆◆◆◆遇到这样一个问题,请帮忙修改修改.
  • 本来可以修改skb里tcp数据的,突然不能修改了,为什么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,