知识大全 一次误操作引起的Oracle数据库大恢复

Posted 文件

篇首语:夫学须志也,才须学也。非学无以广才,非志无以成学。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一次误操作引起的Oracle数据库大恢复相关的知识,希望对你有一定的参考价值。

一次误操作引起的Oracle数据库大恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  事情起由是在Oracle g手动建库脚本中看到dbms_backup_restore zerodbid( )过程 其中作用是修改数据库的dbid 于是想通过该存储直接在sqlplus中执行修改dbid

  修改之前记录其dbid

  引用

  SQL> select dbid from v$database;

  DBID

  

  

  修改dbid

  引用

  SQL> exec dbms_backup_restore zerodbid( );

  PL/SQL procedure successfully pleted

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

  引用

  Tue Mar  : :

  CKPT: terminating instance due to error

  Instance terminated by CKPT pid =

  Tue Mar  : :

  再次启动数据库报错

  引用

  Tue Mar  : :

  Errors in file /ora g/app/admin/ldbra/udump/ldbra_ora_ trc:

  ORA : data file is not the same file to a background process

  ORA signalled during: ALTER DATABASE OPEN

  dump Oracle数据文件头

  引用

  SQL> ALTER SESSION SET EVENTS immediate trace name file_hdrs level ;

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

  引用

  V STYLE FILE HEADER:

  Compatibility Vsn = = xa

  Db ID= = x Db Name= LDBRA

  Activation ID= = x

  Control Seq= = x fba File size= = xff

  File Number= Blksiz= File Type= DATA

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

  引用

  struct kcvfhhdr bytes                @

  ub kccfhswv                          @        x

  ub kccfhcvn                          @        x a

  ub kccfhdbi                          @        x

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

  引用

  SQL> alter database backup controlfile to trace;

  Database altered

  STARTUP NOMOUNT

  CREATE CONTROLFILE REUSE DATABASE LDBRA RESETLOGS  ARCHIVELOG

  MAXLOGFILES

  MAXLOGMEMBERS

  MAXDATAFILES

  MAXINSTANCES

  MAXLOGHISTORY

  LOGFILE

  GROUP /ora g/app/oradata/ldbra/redo log   SIZE M

  GROUP /ora g/app/oradata/ldbra/redo log   SIZE M

  GROUP /ora g/app/oradata/ldbra/redo log   SIZE M

   STANDBY LOGFILE

  DATAFILE

   /ora g/app/oradata/ldbra/system dbf

   /ora g/app/oradata/ldbra/undotbs dbf

   /ora g/app/oradata/ldbra/sysaux dbf

   /ora g/app/oradata/ldbra/users dbf

   /ora g/app/oradata/ldbra/example dbf

   /ora g/app/product/ /db_ /dbs/pany dbf

   /ora g/app/product/ /db_ /dbs/streams dbf

  CHARACTER SET ZHS GBK

  ;

  郁闷的是重建控制文件不成功

  引用

  CREATE CONTROLFILE REUSE DATABASE LDBRA RESETLOGS  NOARCHIVELOG

  *

  ERROR at line :

  ORA : CREATE CONTROLFILE failed

  ORA : log  is inconsistent with other logs

  想到还有另外一种语法重建控制文件(重建控制文件之前 备份controlfile和online redolog)

  引用

  Create controlfile reuse set database LDBRA

  MAXINSTANCES

  MAXLOGHISTORY

  MAXLOGFILES

  MAXLOGMEMBERS

  MAXDATAFILES

  Datafile

   /ora g/app/oradata/ldbra/system dbf

   /ora g/app/oradata/ldbra/undotbs dbf

   /ora g/app/oradata/ldbra/sysaux dbf

   /ora g/app/oradata/ldbra/users dbf

   /ora g/app/oradata/ldbra/example dbf

   /ora g/app/product/ /db_ /dbs/ pany dbf

   /ora g/app/product/ /db_ /dbs/streams dbf

  LOGFILE GROUP ( /ora g/app/oradata/ldbra/redo log ) SIZE K

  GROUP ( /ora g/app/oradata/ldbra/redo log ) SIZE K

  GROUP ( /ora g/app/oradata/ldbra/redo log ) SIZE K RESETLOGS;

  似乎重建成功了!但是进行recover的时候报错了!

  引用

  SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;

  ORA : recovery session canceled due to errors

  ORA : internal error code arguments: [kcvhvdf_ ] [] [] [] [] [] []

  []

  可以看到控制文件在重建的过程中进行了dbid重置

  引用

  SQL> select dbid from v$database;

  DBID

  

  

  问题到这里似乎失去了头绪 呵呵 拷回之前备份的控制文件替换刚建的控制文件 因为我采用的是resetlog选项创建控制文件 从理论上来讲 应该是会重置redolog的 即重新创建redolog 但是目前采用此选项确报ORA 错误 不可思议!后来一想可能是跟数据文件中的dbid为 有关 于是采用终极修复方法 bbed!首先将所有数据文件的dbid用bbed工具重置为 其次将fuzzy标记打为 x (因为数据库被ckpt进程异常终止 将标记打为 x 表示数据库是shutdown immediate关闭) 采用上述方法之后控制文件成功创建!

  引用

  SQL> STARTUP NOMOUNT

  CREATE CONTROLFILE REUSE DATABASE LDBRA RESETLOGS  ARCHIVELOG

  MAXLOGFILES

  MAXLOGMEMBERS

  MAXDATAFILES

  MAXINSTANCES

  MAXLOGHISTORY

  LOGFILE

  ORACLE instance started

  Total System Global Area bytes

  Fixed Size                  bytes

  Variable Size             bytes

  Database Buffers          bytes

  Redo Buffers                bytes

  GROUP /ora g/app/oradata/ldbra/redo log   SIZE M

  GROUP /ora g/app/oradata/ldbra/redo log   SIZE M

  GROUP /ora g/app/oradata/ldbra/redo log   SIZE M

   STANDBY LOGFILE

  DATAFILE

   /ora g/app/oradata/ldbra/system dbf

   /ora g/app/oradata/ldbra/undotbs dbf

   /ora g/app/oradata/ldbra/sysaux dbf

   /ora g/app/oradata/ldbra/users dbf

   /ora g/app/oradata/ldbra/example dbf

   /ora g/app/product/ /db_ /dbs/pany dbf

   /ora g/app/product/ /db_ /dbs/streams dbf

  CHARACTER SET ZHS GBK

     ;

  Control file created

  尝试打开数据库

  SQL> alter database open RESETLOGS;

  出现数据库挂起状态 后台alert日志显示[ ]错误 呵呵 看到这个错误 希望就来了!

  引用

  SMON: enabling cache recovery

  Tue Mar  : :

  Errors in file /ora g/app/admin/ldbra/udump/ldbra_ora_ trc:

  ORA : internal error code arguments: [ ] [ ] [ ] [ ] [ ] [ ] [] []

  Tue Mar  : :

  Errors in file /ora g/app/admin/ldbra/udump/ldbra_ora_ trc:

  ORA : internal error code arguments: [ ] [ ] [ ] [ ] [ ] [ ] [] []

  Tue Mar  : :

  由于shutdown abort实例不起作用 就采用杀Oracle进程 删除共享内存段的做法 将挂起的数据库实力强制abort

   杀Oracle核心进程

  引用

  [ora g@test bdump]$ ps ef|grep ora_

  ora g          Feb ?        : : ora_pmon_streams

  ora g          Feb ?        : : ora_psp _streams

  ora g          Feb ?        : : ora_mman_streams

  ora g          Feb ?        : : ora_dbw _streams

  ora g          Feb ?        : : ora_lgwr_streams

  ora g          Feb ?        : : ora_ckpt_streams

  ora g          Feb ?        : : ora_smon_streams

  ora g          Feb ?        : : ora_reco_streams

  ora g          Feb ?        : : ora_cjq _streams

  ora g          Feb ?        : : ora_mmon_streams

  ora g          Feb ?        : : ora_mmnl_streams

  ora g          Feb ?        : : ora_d _streams

  ora g          Feb ?        : : ora_s _streams

  ora g          Feb ?        : : ora_qmnc_streams

  ora g          Feb ?        : : ora_q _streams

  ora g          Feb ?        : : ora_q _streams

  ora g          : ?        : : ora_j _streams

  ora g     : pts/     : : grep ora_

  [ora g@test bdump]$ kill

   删除Oracle 共享内存段

  引用

  [ora g@test bdump]$ ipcs

   Shared Memory Segments

  key        shmid      owner      perms      bytes      nattch     status

   xcc b c     ora g             

   x b b     ora g           

   Semaphore Arrays

  key        semid      owner      perms      nsems

   x d ec      ora g           

   Message Queues

  key        msqid      owner      perms      used bytes   messages

  [root@test ~]# ipcrm m

  [root@test ~]# ipcrm s

  再次尝试将实例打开 这里用到了 事件

  引用

  SQL> alter session set events trace name adjust_scn level ;

  Session altered

  SQL> alter database open;

  alter database open

  *

  ERROR at line :

  ORA : file needs media recovery

  ORA : data file : /ora g/app/oradata/ldbra/system dbf

  SQL> recover database;

  Media recovery plete

  SQL> alter database open;

  Database altered

  后续工作就是将tempfile添加到temp表空间中 终于恢复成功

  引用

  SQL> alter tablespace temp add tempfile /ora g/app/oradata/ldbra/temp dbf size m reuse;

cha138/Article/program/Oracle/201311/18247

相关参考

知识大全 oracle配置归档模式

  非归档  数据能恢复到最后一次备份  只能做全部恢复不能做部分恢复  只能脱机备份  归档  数据能恢复到失败点无数据丢失  可以热备份  完全恢复和部分恢复都行部分恢复文件中不一致的检查点可以用

知识大全 ORACLE大数据类型的操作之一CLOB

ORACLE大数据类型的操作之一CLOB  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大家在应

知识大全 Oracle恢复误操作的表

Oracle恢复误操作的表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle会把被删除

知识大全 oracle数据库恢复

  没做backup把冷备份复制出来装好oracle  报controlfileversion不匹配oracle版本  试过很多办法都没用最后只好重建controlfile  CREATECONTRO

知识大全 Oracle数据库恢复后心得

Oracle数据库恢复后心得  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  刚安装完Oracle

知识大全 Oracle数据库提供的恢复机制

Oracle数据库提供的恢复机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle数据

知识大全 没有备份只有归档日志如何恢复数据文件

  系统环境  操作系统WindowsServer机器内存M  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    模拟现象    可通过重建数据文件来恢复前提是归档日

知识大全 如何使用归档日志进行完全恢复

  系统环境  操作系统WindowsServer机器内存M  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    模拟现象      先将数据库设置为归档模式    

知识大全 Oracle数据库的灾难恢复

Oracle数据库的灾难恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  随着办公自动化和电子

知识大全 Oracle数据库备份与恢复

Oracle数据库备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一导出/导入(Exp