知识大全 数据库备份与恢复测试(8)

Posted 文件

篇首语:黄沙百战穿金甲,不破楼兰终不还。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据库备份与恢复测试(8)相关的知识,希望对你有一定的参考价值。

  #######################################################################################                                [ ] 回滚段恢复                                      #######################################################################################

  参见 ################################# [ ] 正常shutdown 回滚数据文件丢失 #       有备份 回滚段恢复 ################################

  SQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 数据库已经打开 SQL> archive log list数据库日志模式            存档模式自动存档             启用存档终点            C:\\oracle\\oradata\\testdb\\archive最早的概要日志序列     下一个存档日志序列   当前日志序列          

  SQL> select us# name status$ from undo$;

  US# NAME                              STATUS$          SYSTEM                                           _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                       _SYSSMU $                             

  已选择 行

  SQL> select SEGMENT_NAME STATUS from dba_rollback_segs;

  SEGMENT_NAME                   STATUS SYSTEM                         ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                     ONLINE

  已选择 行

  RMAN>  backup format c:\\noarch_%s%p bak database;

  启动 backup 于 月 使用通道 ORA_DISK_ 通道 ORA_DISK_ : 正在启动 full 数据文件备份集通道 ORA_DISK_ : 正在指定备份集中的数据文件在备份集中包含当前的 SPFILE备份集中包括当前控制文件输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\INDX DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\TOOLS DBF通道 ORA_DISK_ : 正在启动段 于 月 通道 ORA_DISK_ : 已完成段 于 月 段 handle=C:\\NOARCH_ BAK ment=NONE通道 ORA_DISK_ : 备份集已完成 经过时间: : : 完成 backup 于 月

  RMAN>

  RMAN>

  RMAN> copy current controlfile to c:\\currcont ctl ;

  启动 copy 于 月 使用通道 ORA_DISK_ 通道 ORA_DISK_ : 已复制当前的控制文件输出文件名=C:\\CURRCONT CTL完成 copy 于 月

  RMAN> exit

  恢复管理器完成

  SQL> create table arch (status varchar( )) tablespace users;

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select no from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> select GROUP# SEQUENCE# archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS                    NO  CURRENT                   YES ACTIVE                   NO  ACTIVE

  SQL> shutdown  >>这里是正常shutdown 所以会做检查点 当前的数据文件不需要恢复状态数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭

  ~~~~~~~~~~~~~~~~~~~~~~~~模拟删除UNDOTBS DBF这时其他文件都是一致性的 只需要UNDOTBS DBF恢复~~~~~~~~~~~~~~~~~~~~~~~~删除UNDOTBS DBF还原一个UNDOTBS DBF的备份

  SQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 ORA : 文件 需要介质恢复ORA : 数据文件 : C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF

  SQL> recover database ;完成介质恢复

  SQL> alter database open;

  数据库已更改

  SQL> select count(*) status from arch group by status;

  COUNT(*) ST       no     ok          ################################# [ ] shutdown abort(或者使用了别的老的数据文件) #       回滚数据文件丢失 有备份 回滚段恢复 #       数据库没有活动事务################################ 略 也能完全恢复~~~~~~~~~~~~~~~~~~~~~~虽然是abort 但是只是需要做一个检查点 将数据写到数据文件中 但这部分数据直接在在线日志中可以拿到了 只需要前滚 不需要进行回滚~~~~~~~~~~~~~~~~~~~~~~

  ################################# [ ] shutdown abort(或者使用了别的老的数据文件) #       回滚数据文件丢失 有备份 回滚段恢复 #       数据库有活动事务################################

  SQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 数据库已经打开 SQL> archive log list数据库日志模式            存档模式自动存档             启用存档终点            C:\\oracle\\oradata\\testdb\\archive最早的概要日志序列     下一个存档日志序列   当前日志序列          

  RMAN>  backup format c:\\noarch_%s%p bak database;

  启动 backup 于 月 使用通道 ORA_DISK_ 通道 ORA_DISK_ : 正在启动 full 数据文件备份集通道 ORA_DISK_ : 正在指定备份集中的数据文件在备份集中包含当前的 SPFILE备份集中包括当前控制文件输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\INDX DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\TOOLS DBF通道 ORA_DISK_ : 正在启动段 于 月 通道 ORA_DISK_ : 已完成段 于 月 段 handle=C:\\NOARCH_ BAK ment=NONE通道 ORA_DISK_ : 备份集已完成 经过时间: : : 完成 backup 于 月

  RMAN>

  RMAN>

  RMAN> copy current controlfile to c:\\currcont ctl ;

  启动 copy 于 月 使用通道 ORA_DISK_ 通道 ORA_DISK_ : 已复制当前的控制文件输出文件名=C:\\CURRCONT CTL完成 copy 于 月

  RMAN> exit

  恢复管理器完成

  SQL> create table arch (status varchar( )) tablespace users;

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select no from dba_objects; 这里没有mit

  已创建 行

  提交完成

  SQL> select GROUP# SEQUENCE# archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS                    NO  CURRENT                   YES ACTIVE                   NO  ACTIVE

  SQL> shutdown  abort >>这里是正常shutdown 所以会做检查点 当前的数据文件不需要恢复状态数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭

  ~~~~~~~~~~~~~~~~~~~~~~~~模拟删除UNDOTBS DBF这时其他文件都是一致性的 只需要UNDOTBS DBF恢复~~~~~~~~~~~~~~~~~~~~~~~~删除UNDOTBS DBF还原一个UNDOTBS DBF的备份

  SQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 ORA : 文件 需要介质恢复ORA : 数据文件 : C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF

  SQL> recover database ;完成介质恢复

  SQL> alter database open;

  数据库已更改

  SQL> select count(*) status from arch group by status;

  COUNT(*) ST      ok       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ i如果有活动的事务 那么恢复回滚表空间时 在前滚后后滚时要读自己回滚段里的数据 而自己的数据文件已经损坏了 所以就不允许的 所以在mount前将初始化参数rollback_segments=(system) _corrupted_rollback_segments=(rbs rbs rbs ……) 而 I 测试中回撤表空间数据文件恢复跟常规表空间恢复一样~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  

  ################################# [ ] shutdown abort(或者使用了别的老的数据文件) #       回滚数据文件丢失 没有备份 回滚段恢复 #       数据库有活动事务################################ SQL> create table arch (status varchar( )) tablespace users;

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select no from dba_objects;

  已创建 行

  SQL> shutdown abortORACLE 例程已经关闭 SQL>丢失undo文件SQL> startup mount;ORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes

  SQL> alter database datafile C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF offline;

  数据库已更改

  SQL> alter database open;

  数据库已更改

  SQL> select US# NAME ts# STATUS$ FLAGS from undo$ where STATUS$ <> ;

  US# NAME                                  TS#    STATUS$      FLAGS          _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                 _SYSSMU $                                                _SYSSMU $                                       

  SQL> select count(*) from arch;  这里表是不能读取一致性了select count(*) from arch                     *ERROR 位于第 行:ORA : ???????? ORA : ???? : C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF

  SQL> shutdown数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭 SQL>

  编辑INITtestdb_undo ORA * undo_management= AUTO * undo_retention= * undo_tablespace= UNDOTBS _allow_resetlogs_corruption=true_corrupted_rollback_segments=(_SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $) _offline_rollback_segments=true

  SQL> startup pfile= C:\\oracle\\ora \\database\\INITtestdb_undo ORA ;ORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes

  SQL> alter database open;

  数据库已更改

  SQL> select count(*) from arch;

  COUNT(*)    

  再创建新的undo表空间drop 坏的undo tablespace

  最好做一个整库的导出 并导入到新系统

  ################################# [ ] shutdown abort(或者使用了别的老的数据文件) #       回滚数据文件丢失 没有备份 但控制文件有创建#       该回撤段数据文件的所有历史日志 回滚段恢复 #       数据库有活动事务################################ SQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 数据库已经打开 SQL> show parameter undo

  NAME                                 TYPE        VALUE undo_management                      string      AUTOundo_retention                       integer     undo_suppress_errors                 boolean     FALSEundo_tablespace                      string      UNDOTBS SQL> alter tablespace UNDOTBS add datafile C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF size m;

  表空间已更改

  SQL>SQL>SQL> create table arch (status varchar( )) tablespace users;

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select no from dba_objects;

  已创建 行

  SQL> SHUTDOWN ABORTORACLE 例程已经关闭

  删除UNDOTBS

  SQL> STARTUPORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 ORA : 无法标识/锁定数据文件 请参阅 DBWR 跟踪文件ORA : 数据文件 : C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF

  SQL> ALTER DATABASE CREATE DATAFILE C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF ;

  数据库已更改

  SQL> RECOVER DATABASE;完成介质恢复 SQL> ALTER DATABASE OPEN;

  数据库已更改

  SQL> COL NAME FORMAT A ;SQL> SELECT NAME STATUS FROM V$DATAFILE;

  NAME                                               STATUS C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF              SYSTEMC:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF             ONLINEC:\\ORACLE\\ORADATA\\TESTDB\\INDX DBF                ONLINEC:\\ORACLE\\ORADATA\\TESTDB\\TOOLS DBF               ONLINEC:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF               ONLINEC:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF             ONLINE

  已选择 行

  ################################# [ ] 数据库打开时回撤表空间文件#       损坏 没有备份################################

  SQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 数据库已经打开 SQL> create table arch (status varchar( )) tablespace users;

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select no from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> select GROUP# SEQUENCE# archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS                    NO  CURRENT                   YES INACTIVE                   YES ACTIVE

  SQL>SQL>SQL>SQL> select GROUP# SEQUENCE# archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS                    NO  CURRENT                   YES INACTIVE                   YES ACTIVE

  SQL> select us# name status$ from undo$;

  US# NAME                              STATUS$          SYSTEM                                           _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                       _SYSSMU $                             

  已选择 行

  SQL> select SEGMENT_NAME STATUS from dba_rollback_segs;

  SEGMENT_NAME                   STATUS SYSTEM                         ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                      ONLINE_SYSSMU $                     ONLINE

  已选择 行

  SQL> show parameter undo

  NAME                                 TYPE        VALUE undo_management                      string      AUTOundo_retention                       integer     undo_suppress_errors                 boolean     FALSEundo_tablespace                      string      UNDOTBS

  ~~~~~~~~~~~~~~~~~~~~~这里模拟回撤数据文件损坏~~~~~~~~~~~~~~~~~~~~~用ultraedit破坏UNDOTBS DBF

  SQL> shutdown 因为要使用回滚 但回滚失败ORA : ORACLE 服务器会话因致命错误而终止

  SQL> startupORA : 未初始化服务句柄ORA : 内部错误 hostdef 扩展名不存在SQL> exit从Oracle i Enterprise Edition Release ProductionWith the Partitioning OLAP and Oracle Data Mining optionsJServer Release Production中断开

  C:\\Documents and Settings\\lifeng fang>sqlplus sys/sunsdl as sysdba

  SQL*Plus: Release Production on 星期五 月 : :

  Copyright (c) Oracle Corporation   All rights reserved

  已连接 SQL> startupORA : cannot start already running ORACLE shut it down firstSQL> shutdownORA : shutdown in progress connection is not permittedSQL> shutdown abort  只有abort才可以关闭数据库 因为不需要回滚ORACLE 例程已经关闭 SQL> startup ORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 数据库已经打开 SQL> select SEGMENT_NAME STATUS from dba_rollback_segs;

  SEGMENT_NAME                   STATUS SYSTEM                         ONLINE_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                      NEEDS RECOVERY_SYSSMU $                     NEEDS RECOVERY

  SQL> select us# name status$ from undo$;

  US# NAME                              STATUS$          SYSTEM                                           _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                        _SYSSMU $                                       _SYSSMU $                             

  已选择 行

  ~~~~~~~~~~~~~~~~~~~~~这里我们注意能够打开数据库但是这里状态是需要恢复~~~~~~~~~~~~~~~~~~~~~~SQL> create pfile= c:\\undopfile ora from spfile;

  文件已创建

  SQL> create undo tablespace UNDOTBS datafile C:\\oracle\\oradata\\testdb\\UNDOTB DBF size m;

  表空间已创建

  SQL> select count(*) status from arch group by status;

  COUNT(*) ST       no     ok     SQL> insert into arch select af from dba_objects;insert into arch select af from dba_objects            *ERROR 位于第 行:ORA : 非系统表空间 USERS 无法使用系统回退段  

  SQL> shutdown数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~编辑c:\\undopfile ora 将设置* undo_tablespace= UNDOTBS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SQL> startup pfile= c:\\undopfile ora

  ORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 数据库已经打开 SQL>  insert into arch select af from dba_objects;

  已创建 行

  SQL> select          trunc(id /power( )) rbs           bitand(id to_number( ffff xxxx ))+ slot           id seq           lmode request     from v$lock v$session    where v$lock type = TX       and v$lock sid = v$session sid      and v$session username is not null;

  RBS       SLOT        SEQ      LMODE    REQUEST                                                        

  SQL> select SEGMENT_NAME TABLESPACE_NAME STATUS from dba_rollback_segs;

  SEGMENT_NAME                   TABLESPACE_NAME                STATUS SYSTEM                         SYSTEM                         ONLINE_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                      UNDOTBS                        NEEDS RECOVERY_SYSSMU $                     UNDOTBS                        NEEDS RECOVERY

  SEGMENT_NAME                   TABLESPACE_NAME                STATUS _SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE_SYSSMU $                     UNDOTBS                        ONLINE 

  SQL> select US# NAME ts# STATUS$ FLAGS from undo$;

  US# NAME                                  TS#    STATUS$      FLAGS          SYSTEM                                                     _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                  _SYSSMU $                                                 _SYSSMU $                                       

  US# NAME                                  TS#    STATUS$      FLAGS         _SYSSMU $                                                _SYSSMU $                                                _SYSSMU $                                                _SYSSMU $                                                _SYSSMU $                                                _SYSSMU $                                                _SYSSMU $                                          插入数据的回滚信息在这        _SYSSMU $                                                _SYSSMU $                                                _SYSSMU $                                       

  已选择 行

  这些非online的回撤段也需要在初始化参数中强制_corrupted_rollback_segments且_offline_rollback_segments=true

  这里跟 一样 设置初始化文件编辑INITtestdb_undo ORA * undo_management= AUTO * undo_retention= * undo_tablespace= UNDOTBS _allow_resetlogs_corruption=true_corrupted_rollback_segments=(_SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $ _SYSSMU $) _offline_rollback_segments=true

  然后打开数据库

  看看TOM的例子sys@ORA US ORACLE > shutdownDatabase closed Database dismounted ORACLE instance shut down

  sys@ORA US ORACLE > exitDisconnected from Oracle i Enterprise Edition Release ProductionWith the Partitioning OLAP and Oracle Data Mining optionsJServer Release Production

  [ora @tkyte pc isdn ora ]$ lscontrol ctl  cwmlite dbf  indx dbf  redo log  redo B log    temp dbf     users dbfcontrol ctl  drsys dbf    odm dbf   redo log  redo C log    tools dbf    xdb dbfcontrol ctl  example dbf  redo log  redo A log  system dbf  undotbs dbf

  [ora @tkyte pc isdn ora ]$ mv undotbs dbf undotbs dbf xxx

  [ora @tkyte pc isdn ora ]$ sqlplus /nolog

  SQL*Plus: Release Production on Sat Sep : :

  Copyright (c) Oracle Corporation   All rights reserved

  idle> connect / as sysdbaConnected to an idle instance idle> startupORACLE instance started

  Total System Global Area  bytesFixed Size                   bytesVariable Size             bytesDatabase Buffers           bytesRedo Buffers                 bytesDatabase mounted ORA : cannot identify/lock data file see DBWR trace fileORA : data file : /usr/oracle/ora /OraHome /oradata/ora /undotbs dbf

  idle> show parameter undo

  NAME                                 TYPE        VALUE undo_management                      string      AUTOundo_retention                       integer     undo_suppress_errors                 boolean     FALSEundo_tablespace                      string      UNDOTBS

  idle> alter system set undo_management = manual scope=spfile;

  System altered

  Note: disabling the undo tablespace here this ll let us go back to rollback segments and we ll use the system RBS to get back on our feet

  idle> shutdownORA : database not open

  Database dismounted ORACLE instance shut down

  idle> exitDisconnected from Oracle i Enterprise Edition Release ProductionWith the Partitioning OLAP and Oracle Data Mining optionsJServer Release Production

  [ora @tkyte pc isdn ora ]$ !sqlsqlplus /nolog

  SQL*Plus: Release Production on Sat Sep : :

  Copyright (c) Oracle Corporation   All rights reserved

  idle> connect / as sysdba;Connected to an idle instance idle> startupORACLE instance started

  Total System Global Area  bytesFixed Size                   bytesVariable Size             bytesDatabase Buffers           bytesRedo Buffers                 bytesDatabase mounted ORA : cannot identify/lock data file see DBWR trace fileORA : data file : /usr/oracle/ora /OraHome /oradata/ora /undotbs dbf

  Note: we still have to get rid of that thing

  idle> alter database datafile  /usr/oracle/ora /OraHome /oradata/ora /undotbs dbf     offline drop;

  Database altered

  idle> alter database open;

  Database altered

  idle> drop tablespace undotbs ;

  Tablespace dropped

  idle> create UNDO tablespace undotbs     datafile /usr/oracle/ora /OraHome /oradata/ora /undotbs dbf size m    autoextend on next m maxsize m;

  Tablespace created

  idle> alter system set undo_management = auto scope=spfile;

  System altered

  Now we ve put the undo tablespace back by creating a new one   Just bounce

cha138/Article/program/Oracle/201311/17338

相关参考

知识大全 数据库备份与恢复测试(6)

  [测试]数据库在非归档模式数据库MOUNT数据文件丢失有表空间备份  RMAN>backuptablespaceusers;  启动backup于月分配的通道:ORA_DISK_通道ORA_

知识大全 数据库备份与恢复测试(3)

  ################################           

知识大全 oracle数据库备份与恢复apieceofcake(4)

  oracle数据库日志备份(windows平台)  本片是接上次的数据库在线备份进行数据库全备份后需要备份归档的日志文件  建立数据库备份的脚本  在上面建立的目录下建立如下的两个脚本  建立执行

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

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

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

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

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

Oracle数据库的备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  河南省新乡市电信局

知识大全 数据库中备份与恢复问题简介

  备份与恢复是我们使用数据库中不可缺少的部分也是我们在使用数据库时会经常碰到的问题当我们使用一个数据库时总希望数据库的内容是可靠的正确的但由于计算机系统的故障(硬件故障软件故障网络故障进程故障和系统

知识大全 如何实现MySQL数据库的备份与恢复

如何实现MySQL数据库的备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在数据库表丢

知识大全 Oracle数据库备份与恢复精华资料集锦

Oracle数据库备份与恢复精华资料集锦  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!主要介绍了O

知识大全 浅谈IBMDB2的数据库备份与恢复

浅谈IBMDB2的数据库备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本文探讨了