标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,753)
- DB2 (22)
- MySQL (76)
- Oracle (1,596)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (162)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (586)
- Oracle安装升级 (96)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (84)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (31)
- SQL Server恢复 (12)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (38)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (21)
-
最近发表
- 达梦数据库dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
- 11.2.0.4库中遇到ORA-600 kcratr_nab_less_than_odr报错
- [MY-013183] [InnoDB] Assertion failure故障处理
- Oracle 19c 202504补丁(RUs+OJVM)-19.27
- Oracle Recovery Tools修复ORA-600 6101/kdxlin:psno out of range故障
- pdu完美支持金仓数据库恢复(KingbaseES)
- 虚拟机故障引起ORA-00310 ORA-00334故障处理
- pg创建gbk字符集库
- PostgreSQL运行日志管理
- ora-600 kdsgrp1 错误描述
- GAM、SGAM 或 PFS 页上存在页错误处理
- ORA-600 krhpfh_03-1208
- VMware勒索加密恢复(vmdk勒索恢复)
- ORA-39773: parse of metadata stream failed故障处理
- sql数据库备份失败—失败: 23(数据错误(循环冗余检查)
- vmdk文件被加密恢复(虚拟机文件加密)
- 差点被误操作的ORA-600 kcratr_nab_less_than_odr故障
- win平台19c 打patch遭遇2个小问题汇总
标签归档:ORA-01190
_allow_resetlogs_corruption和adjust_scn解决ORA-01190
一、模拟offline文件然后resetlogs操作
1.设置datafile 5数据文件offline 2.rman备份数据库 3.关闭原数据库,删除数据文件/当前日志和部分归档日志 4.执行不完全恢复,resetlogs打开数据库(如下面操作) [oracle@xifenfei ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 15 07:36:59 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> recover database until cancel; ORA-00279: change 868870 generated at 03/15/2012 03:32:11 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oradata/archivelog/ora11g/1_29_777766629.dbf ORA-00280: change 868870 for thread 1 is in sequence #29 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. 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; Database altered. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; FILE# ONLINE_STATUS TO_CHAR(CHANGE#,'999999999 ---------- -------------- -------------------------- 5 OFFLINE 868810 SQL> alter database datafile 5 online; alter database datafile 5 online * ERROR at line 1: ORA-01190: control file or data file 5 is from before the last RESETLOGS ORA-01110: data file 5: '/u01/oracle/oradata/ora11g/xifenfei01.dbf' SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(last_change#,'999999999999') from v$datafile; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(LAST_CHANGE#,'9999 ---------- -------------------------- -------------------------- 1 868874 2 868874 3 868874 4 868874 5 868810 868874 --可以看到offline的数据文件,没有因为resetlogs操作而改变 --CHECKPOINT_CHANGE#和RESETLOGS_CHANGE#信息 SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(RESETLOGS_CHANGE#,'999999999999') 3 from v$datafile_header; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(RESETLOGS_CHANGE#, ---------- -------------------------- -------------------------- 1 868874 868871 2 868874 868871 3 868874 868871 4 868874 868871 5 868810 787897
二、隐含参数设置
SQL> create pfile='/tmp/pfile' from spfile; File created. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. 在pfile中增加 _allow_resetlogs_corruption=true _allow_error_simulation=TRUE(10g及其以上版本需要)
三、打开数据库,online离线文件
SQL> startup pfile='/tmp/pfile' mount; ORACLE instance started. Total System Global Area 368263168 bytes Fixed Size 1345016 bytes Variable Size 293603848 bytes Database Buffers 67108864 bytes Redo Buffers 6205440 bytes Database mounted. --在mount状态下执行 SQL> alter session set events '10015 trace name adjust_scn level 2'; Session altered. --[一定要]在mount状态下执行online操作 SQL> alter database datafile 5 online; Database altered. SQL> recover database until cancel; ORA-00279: change 868810 generated at 03/13/2012 22:19:37 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oradata/archivelog/ora11g/1_27_777766629.dbf ORA-00280: change 868810 for thread 1 is in sequence #27 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01190: control file or data file 1 is from before the last RESETLOGS ORA-01110: data file 1: '/u01/oracle/oradata/ora11g/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; Database altered. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; no rows selected
姊妹篇:bbed解决ORA-01190
bbed解决ORA-01190
当我们使用resetlogs方式打开数据库后,发现有数据文件处于offline状态,这个时候很可能就是悲剧降临的时候,很有可能这个文件文件在resetlogs之前就处于offline状态,然后你resetlogs之后,这个文件使用常规方法很难再online,会出现ORA-01190或者ORA-01189之类的错误。
一、模拟offline文件然后resetlogs操作
1.设置datafile 5数据文件offline 2.rman备份数据库 3.关闭原数据库,删除数据文件/当前日志和部分归档日志 4.执行不完全恢复,resetlogs打开数据库(如下面操作) [oracle@xifenfei ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 15 07:36:59 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> recover database until cancel; ORA-00279: change 868870 generated at 03/15/2012 03:32:11 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oradata/archivelog/ora11g/1_29_777766629.dbf ORA-00280: change 868870 for thread 1 is in sequence #29 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. SQL> alter database open resetlogs; Database altered. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; FILE# ONLINE_STATUS TO_CHAR(CHANGE#,'999999999 ---------- -------------- -------------------------- 5 OFFLINE 868810 SQL> alter database datafile 5 online; alter database datafile 5 online * ERROR at line 1: ORA-01190: control file or data file 5 is from before the last RESETLOGS ORA-01110: data file 5: '/u01/oracle/oradata/ora11g/xifenfei01.dbf' SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(last_change#,'999999999999') from v$datafile; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(LAST_CHANGE#,'9999 ---------- -------------------------- -------------------------- 1 868874 2 868874 3 868874 4 868874 5 868810 868874 --可以看到offline的数据文件,没有因为resetlogs操作而改变 --CHECKPOINT_CHANGE#和RESETLOGS_CHANGE#信息 SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(RESETLOGS_CHANGE#,'999999999999') 3 from v$datafile_header; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(RESETLOGS_CHANGE#, ---------- -------------------------- -------------------------- 1 868874 868871 2 868874 868871 3 868874 868871 4 868874 868871 5 868810 787897 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down.
二、bbed修改相关项
下面两项与resetlogs相关 kcvfhrlc表示 reset logs count kcvfhrls表示 resetlogs scn 下面四项与数据库文件scn相关 kscnbas (at offset 140) – SCN of last change to the datafile. kcvcptim (at offset 148) - Time of the last change to the datafile. kcvfhcpc (at offset 176) – Checkpoint count. kcvfhccc (at offset 184) – Unknown, but is always 1 less than thecheckpoint point count. BBED> set filename '/u01/oracle/oradata/ora11g/system01.dbf' FILENAME /u01/oracle/oradata/ora11g/system01.dbf BBED> p kcvfhrlc ub4 kcvfhrlc @112 0x2e5eed37 BBED> p kcvfhrls struct kcvfhrls, 8 bytes @116 ub4 kscnbas @116 0x000d4207 ub2 kscnwrp @120 0x0000 BBED> p kcvcpscn struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x000d4495 ub2 kscnwrp @488 0x0000 BBED> p kcvfhcpc ub4 kcvfhcpc @140 0x00000078 BBED> p kcvfhccc ub4 kcvfhccc @148 0x00000077 BBED> set filename '/u01/oracle/oradata/ora11g/xifenfei01.dbf' FILENAME /u01/oracle/oradata/ora11g/xifenfei01.dbf BBED> p kcvfhrlc ub4 kcvfhrlc @112 0x2e5bc6e5 BBED> set mode edit MODE Edit BBED> m /x 37ed5e2e Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y BBED> p kcvfhrlc ub4 kcvfhrlc @112 0x2e5eed37 BBED> p kcvfhrls struct kcvfhrls, 8 bytes @116 ub4 kscnbas @116 0x000c05b9 ub2 kscnwrp @120 0x0000 BBED> m /x 07420d00 BBED> p kcvfhrls struct kcvfhrls, 8 bytes @116 ub4 kscnbas @116 0x000d4207 ub2 kscnwrp @120 0x0000 BBED> p kcvcpscn struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x000d41ca ub2 kscnwrp @488 0x0000 BBED> set offset 484 OFFSET 484 BBED> m /x 95440d00 BBED-00209: invalid number (95440d00) BBED> m /x 9544 BBED> set offset +2 OFFSET 486 BBED> m /x 0d00 BBED> p kcvfhcpc ub4 kcvfhcpc @140 0x00000003 BBED> m /x 78000000 BBED> p kcvfhcpc ub4 kcvfhcpc @140 0x00000078 BBED> p kcvfhccc ub4 kcvfhccc @148 0x00000002 BBED> m /x 77000000 BBED> p kcvfhccc ub4 kcvfhccc @148 0x00000077 BBED> sum Check value for File 0, Block 1: current = 0xe079, required = 0x5940 BBED> sum apply Check value for File 0, Block 1: current = 0x5940, required = 0x5940 1
三、数据文件online
[oracle@xifenfei ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 15 07:48:48 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 368263168 bytes Fixed Size 1345016 bytes Variable Size 301992456 bytes Database Buffers 58720256 bytes Redo Buffers 6205440 bytes Database mounted. Database opened. SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(RESETLOGS_CHANGE#,'999999999999') 3 from v$datafile_header; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(RESETLOGS_CHANGE#, ---------- -------------------------- -------------------------- 1 869528 868871 2 869528 868871 3 869528 868871 4 869528 868871 5 869525 868871 SQL> recover datafile 5; Media recovery complete. SQL> alter database datafile 5 online; Database altered.