undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复

undo表空间的数据文件丢失,如果没有备份的情况下,但是redo完好,这个时候可以这样恢复,下边给出一个例子。

 

undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://blog.itpub.net/26736162/viewspace-1458654/

 

[oracle@rhel6_lhr ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Mar 12 18:13:13 2015

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> select name from v$datafile;

 

NAME

--------------------------------------------------------------------------------

/u03/app/oracle/oradata/ora1024g/system01.dbf

/u03/app/oracle/oradata/ora1024g/undotbs01.dbf

/u03/app/oracle/oradata/ora1024g/sysaux01.dbf

/u03/app/oracle/oradata/ora1024g/users01.dbf

/u03/app/oracle/oradata/ora1024g/example01.dbf

/u03/app/oracle/oradata/ora1024g/undotbs02.dbf

 

6 rows selected.

 

SQL> drop table bb;

 

Table dropped.

 

 

SQL> create table bb as select * from user_tables;

 

Table created.

 

SQL> insert into bb select * from user_tables;

 

707 rows created.

 

SQL>  select count(1) from bb;

 

  COUNT(1)

----------

      1413

 

SQL>

 

SQL>

 

 

SQL> ho rm   /u03/app/oracle/oradata/ora1024g/undotbs01.dbf

 

SQL> shutdown abort;

ORACLE instance shut down.

 

 

SQL> startup;

ORACLE instance started.

 

Total System Global Area  448790528 bytes

Fixed Size                  2084616 bytes

Variable Size             130023672 bytes

Database Buffers          310378496 bytes

Redo Buffers                6303744 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 2 - see DBWR trace file

ORA-01110: data file 2: '/u03/app/oracle/oradata/ora1024g/undotbs01.dbf'

 

 

SQL> show parameter undo

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

undo_management                      string      AUTO

undo_retention                       integer     900

undo_tablespace                      string      UNDOTBS1

SQL>

 

SQL> set line 9999

SQL> col name format a100

SQL> select name,status,enabled from v$datafile;

 

NAME                                                                                                 STATUS  ENABLED

---------------------------------------------------------------------------------------------------- ------- ----------

/u03/app/oracle/oradata/ora1024g/system01.dbf                                                        SYSTEM  READ WRITE

/u03/app/oracle/oradata/ora1024g/undotbs01.dbf                                                       ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/sysaux01.dbf                                                        ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/users01.dbf                                                         ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/example01.dbf                                                       ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/undotbs02.dbf                                                       ONLINE  READ WRITE

 

6 rows selected.

 

 

SQL> select * from v$recover_file;

 

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME

---------- ------- ------- ----------------------------------------------------------------- ---------- ---------

         3 OFFLINE OFFLINE FILE NOT FOUND                                                             0

 

 

SQL> alter database create datafile 2 as '/u03/app/oracle/oradata/ora1024g/undotbs01.dbf' size 50m;

 

Database altered.

 

SQL>  select * from v$recover_file;

 

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME

---------- ------- ------- ----------------------------------------------------------------- ---------- ---------

         2 ONLINE  ONLINE                                                                       1278091 12-MAR-15

 

 

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01113: file 2 needs media recovery

ORA-01110: data file 2: '/u03/app/oracle/oradata/ora1024g/undotbs01.dbf'

 

 

SQL>  select * from v$recover_file;

 

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME

---------- ------- ------- ----------------------------------------------------------------- ---------- ---------

         2 ONLINE  ONLINE                                                                       1278091 12-MAR-15

 

 

 

SQL> recover datafile 2;

ORA-00279: change 1278091 generated at 03/12/2015 20:14:19 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_31_%u_.arc

ORA-00280: change 1278091 for thread 1 is in sequence #31

 

 

Specify log: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: change 1299920 generated at 03/12/2015 20:32:01 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_32_%u_.arc

ORA-00280: change 1299920 for thread 1 is in sequence #32

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_31_bj31wg6x_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1319924 generated at 03/12/2015 20:33:18 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_33_%u_.arc

ORA-00280: change 1319924 for thread 1 is in sequence #33

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_32_bj31wg77_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1339928 generated at 03/12/2015 20:33:59 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_34_%u_.arc

ORA-00280: change 1339928 for thread 1 is in sequence #34

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_33_bj31xqc4_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1359932 generated at 03/12/2015 20:35:20 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_35_%u_.arc

ORA-00280: change 1359932 for thread 1 is in sequence #35

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_34_bj3208q4_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1379936 generated at 03/12/2015 20:36:20 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_36_%u_.arc

ORA-00280: change 1379936 for thread 1 is in sequence #36

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_35_bj3224vc_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1399940 generated at 03/12/2015 20:37:20 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_37_%u_.arc

ORA-00280: change 1399940 for thread 1 is in sequence #37

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_36_bj32409g_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1419945 generated at 03/12/2015 20:40:48 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_38_%u_.arc

ORA-00280: change 1419945 for thread 1 is in sequence #38

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_37_bj32bj52_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1439949 generated at 03/12/2015 20:43:49 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_39_%u_.arc

ORA-00280: change 1439949 for thread 1 is in sequence #39

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_38_bj32j54p_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1459953 generated at 03/12/2015 20:45:50 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_40_%u_.arc

ORA-00280: change 1459953 for thread 1 is in sequence #40

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_39_bj32mygp_.arc' no longer needed for this recovery

 

 

ORA-00279: change 1479957 generated at 03/12/2015 20:48:27 needed for thread 1

ORA-00289: suggestion : /u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_13/o1_mf_1_41_%u_.arc

ORA-00280: change 1479957 for thread 1 is in sequence #41

ORA-00278: log file '/u03/app/oracle/flash_recovery_area/ORA1024G/archivelog/2015_03_12/o1_mf_1_40_bj32rv2k_.arc' no longer needed for this recovery

 

 

Log applied.

Media recovery complete.

 

SQL> select name,status,enabled from v$datafile;

 

NAME                                                                                                 STATUS  ENABLED

---------------------------------------------------------------------------------------------------- ------- ----------

/u03/app/oracle/oradata/ora1024g/system01.dbf                                                        SYSTEM  READ WRITE

/u03/app/oracle/oradata/ora1024g/undotbs01.dbf                                                       ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/sysaux01.dbf                                                        ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/users01.dbf                                                         ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/example01.dbf                                                       ONLINE  READ WRITE

/u03/app/oracle/oradata/ora1024g/undotbs02.dbf                                                       ONLINE  READ WRITE

 

6 rows selected.

 

SQL> select * from v$recover_file;

 

no rows selected

 

SQL> alter database open;

 

Database altered.

 

SQL> select count(1) from bb;

 

  COUNT(1)

----------

      706

 

 

 

 

时间: 2024-11-02 14:59:49

undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复的相关文章

undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复

  undo表空间的数据文件丢失,如果没有备份的情况下,而且丢失的undo文件可以置为offline状态后(注意是offline不是recover状态),则可以如下恢复,下边给出一个例子.   undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://blog.itpub.net/26736162/viewspace-1458654/ undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复:http://blog.itpub.net/26736162/viewspace-1

undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复

undo表空间的数据文件丢失,如果没有备份的情况下,而且redo也不可用,这个时候就要采用隐藏参数来恢复,下边给出一个例子.   undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://blog.itpub.net/26736162/viewspace-1458654/ undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复:http://blog.itpub.net/26736162/viewspace-1458663/   [oracle@rhel6_lhr ~]$

undo表空间文件丢失恢复(1)--有备份

  undo表空间的数据文件丢失,如果有备份的情况下,恢复非常简单,下边给出一个例子:       [oracle@rhel6_lhr ~]$ sqlplus / as sysdba   SQL*Plus: Release 10.2.0.4.0 - Production on Thu Mar 12 18:02:13 2015   Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.     Connected to: Oracle Dat

监控和管理Oracle UNDO表空间的使用

    对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DML操作的前镜像数据,它是实例恢复,数据回滚,一致性查询功能的重要组件:我们常常会忽略对它的监控,这会导致UNDO表空间可能出现以下问题:1).空间使用率100%,导致DML操作无法进行.2).告警日志中出现大量的ORA-01555告警错误.3).实例恢复失败,数据库无法正常打开. 一.对Or

UNDO表空间丢失/损坏测试

1.模拟丢失了undo表空间数据文件,SHUTDOWN ABORT,进行启动报错找不到数据文件 2.设置UNDO datafile offline后启动数据如下 SQL> alter database datafile 2 offline; 接下来试试能不能打开数据库,能打开就查看那些回退段 SQL> startup ORACLE instance started. Total System Global Area  599785472 bytes Fixed Size            

Oracle管理UNDO表空间

创建undo talespace有两种方式: (1)数据库创建时创建undo tablespace; (2)在一个已经存在的数据库创建. 在undo tablespace中不能创建数据库对象,这是因为这个表空间是为数据库recover而准备的. 1.创建数据库时创建undo tablespace 在创建数据库的时候可以通过指定undo子句来创建undo tablespace,但是这个子句不是必须的. 如果在创建数据库时,系统指定是auto模式,但是没有指明undo tablespace的名字,那

关于undo表空间配置错误的ORA-30012

      undo表空间是Oracle体系结构的重要组成部分,为什么我们可以回滚,就是因为有它.数据库任意数据的修改都会在undo表空间里生成前镜像,一是可以回滚,二是可以实现并发,以及一致性查询.因此undo也是Oracle数据库在创建和配置参数时必要的组成部分.本文描述的是错误的配置undo表空间之后故障的解决.       有关undo表空间的基础知识可以参考:             Oracle 回滚(ROLLBACK)和撤销(UNDO)            检查及设置合理的und

收缩undo表空间

      通常情况下,如果undo表空间的处于自动扩展且未指定最大值的情形,对于使用小表空间模式的数据库,undo表空间可能会一再增长,直到达到32GB.或者是在指定了自动扩展及其最大值而月底或年末的批量数据计算导致undo表空间疯狂超范围增长后不再释放.对于这些情形我们需要手动收缩表空间以达到节省空间资源以及数据库管理开销,如rman备份等.本文列出了收缩undo表空间的基本步骤并给出示例.      有关表空间,undo表空间的文章可参考:           Oracle 表空间与数据文

检查及设置合理的undo表空间

      UNDO是用于实现并发控制以及构建一致性读,也就是在数据变更之前产生前镜像,以保证用户能够回滚或撤销对数据库所作的修改.是Oracle数据库完整性的重要组成部分.因此合理的设计及配置undo以及使用undo都将对数据库有较大的影响.通常情况下,对于大规模数据的删除,更新操作,我们建议使用分批删除分次提交以减少对undo的占用和冲击.那么对于undo的大小到底应该设置多大?是启用自动扩展还是关闭自动扩展?这个问题仁者见仁,智者见智,见下文.   1.当前数据库环境及undo配置信息 s