Oracle数据库的大恢复(误操作而引起)

数据库 Oracle
我们今天主要和大家分享的是Oracle数据库的大恢复(由于一次误操作而引起),以下就是文章的具体内容描述,希望你在浏览之后会对其有所收获。

以下的文章主要介绍的是由于一次误操作而引起的Oracle数据库的大恢复,前两天我在Oracle 10g手动建库脚本中柔然看到dbms_backup_restore.zerodbid(0)的过程,其中主要的作用是修改Oracle数据库的dbid。

于是想通过该存储直接在sqlplus中执行修改dbid。

修改之前记录其dbid

引用

 

SQL> select dbid from v$database;  
DBID  
1488207495  
  • 1.
  • 2.
  • 3.

 

修改dbid

引用

 

SQL> exec dbms_backup_restore.zerodbid(0);  
PL/SQL procedure successfully completed.  
  • 1.
  • 2.

 

貌似执行成功了,但随后alert日志显示ckpt进程将数据实例终止

引用

 

Tue Mar 9 01:43:22 2010  
CKPT: terminating instance due to error 1242  
Instance terminated by CKPT, pid = 16653 
Tue Mar 9 01:43:53 2010  
  • 1.
  • 2.
  • 3.
  • 4.

 

再次启动Oracle数据库报错

引用

 

Tue Mar 9 01:56:09 2010  
Errors in file /ora10g/app/admin/ldbra/udump/ldbra_ora_12275.trc:  
ORA-01221: data file 1 is not the same file to a background process  
ORA-1221 signalled during: ALTER DATABASE OPEN...  
  • 1.
  • 2.
  • 3.
  • 4.

 

dump Oracle数据文件头

引用

 

SQL> ALTER SESSION SET EVENTS 'immediate trace name file_hdrs level 3'; 
  • 1.

通过跟踪文件可以看到dbid以被重置为0

引用

 

V10 STYLE FILE HEADER:  
Compatibility Vsn = 169870080=0xa200300  
Db ID=0=0x0, Db Name='LDBRA' 
Activation ID=0=0x0  
Control Seq=8122=0x1fba, File size=65280=0xff00  
File Number=1Blksiz=8192, File Type=3 DATA  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

 

还有一种途径是通过bbed工具观察

引用

 

struct kcvfhhdr, 76 bytes @20  
ub4 kccfhswv @20 0x00000000  
ub4 kccfhcvn @24 0x0a200300  
ub4 kccfhdbi @28 0x00000000  
  • 1.
  • 2.
  • 3.
  • 4.

 

当然第一反应是重建控制文件,看看能不能恢复成功

引用

 

SQL> alter database backup controlfile to trace;  
Database altered.  
STARTUP NOMOUNT  
CREATE CONTROLFILE REUSE DATABASE "LDBRA" RESETLOGS ARCHIVELOG  
MAXLOGFILES 16  
MAXLOGMEMBERS 3  
MAXDATAFILES 100  
MAXINSTANCES 8  
MAXLOGHISTORY 292  
LOGFILE  
GROUP 1 '/ora10g/app/oradata/ldbra/redo01.log' SIZE 50M,  
GROUP 2 '/ora10g/app/oradata/ldbra/redo02.log' SIZE 50M,  
GROUP 3 '/ora10g/app/oradata/ldbra/redo03.log' SIZE 50M  
-- STANDBY LOGFILE  
DATAFILE  
'/ora10g/app/oradata/ldbra/system01.dbf',  
'/ora10g/app/oradata/ldbra/undotbs01.dbf',  
'/ora10g/app/oradata/ldbra/sysaux01.dbf',  
'/ora10g/app/oradata/ldbra/users01.dbf',  
'/ora10g/app/oradata/ldbra/example01.dbf',  
'/ora10g/app/product/10.2.0/db_1/dbs/company.dbf',  
'/ora10g/app/product/10.2.0/db_1/dbs/streams.dbf'  
CHARACTER SET ZHS16GBK  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

 

 

责任编辑:佚名 来源: 博客园
相关推荐

2010-04-02 09:30:27

Oracle数据库

2010-04-02 09:44:23

Oracle数据库

2011-05-25 09:45:40

Oracle数据库

2011-03-24 17:21:42

Oracle数据库Redo故障

2011-05-11 13:25:57

Oracle数据库后备恢复

2009-11-20 13:29:59

Oracle数据库恢复

2011-05-26 09:36:07

Oracle数据库Redo故障

2011-02-28 13:31:17

Oracle数据库

2017-05-31 16:10:45

MySQL误操作恢复数据

2010-04-15 12:43:06

Oracle数据库

2010-04-12 10:40:49

Oracle数据库

2011-04-12 15:44:08

Oracle数据库

2011-05-26 10:01:16

Oracle数据库ODU

2020-08-10 07:52:30

MySQL数据库

2011-08-29 16:41:14

OracleRMAN恢复数据文件的恢复

2009-04-03 10:54:49

Oracle备份恢复

2013-11-12 14:43:43

MySQL数据库

2010-04-20 16:56:19

Oracle数据库

2010-04-12 14:19:00

Oracle数据库备份

2011-04-11 13:46:17

Oracle数据库备份
点赞
收藏

51CTO技术栈公众号