######################################################################################
# []回滚段恢复 #
######################################################################################
参见
################################
# []正常shutdown回滚数据文件丢失
# 有备份回滚段恢复
################################
SQL> startup
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo 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_NAMESTATUS 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%pbak database;
启动 backup 于 月
使用通道 ORA_DISK_
通道 ORA_DISK_: 正在启动 full 数据文件备份集
通道 ORA_DISK_: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\INDXDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\USERSDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\TOOLSDBF
通道 ORA_DISK_: 正在启动段 于 月
通道 ORA_DISK_: 已完成段 于 月
段 handle=C:\NOARCH_BAK comment=NONE
通道 ORA_DISK_: 备份集已完成 经过时间:::
完成 backup 于 月
RMAN>
RMAN>
RMAN> copy current controlfile to c:\currcontctl;
启动 copy 于 月
使用通道 ORA_DISK_
通道 ORA_DISK_: 已复制当前的控制文件
输出文件名=C:\CURRCONTCTL
完成 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> commit;
提交完成
SQL> insert into arch select * from arch;
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> commit;
提交完成
SQL> alter system switch logfile;
系统已更改
SQL> insert into arch select no from dba_objects;
已创建行
SQL> commit;
提交完成
SQL> select GROUP#SEQUENCE#archived STATUS from v$log;
GROUP# SEQUENCE# ARC STATUS
NO CURRENT
YES ACTIVE
NO ACTIVE
SQL> shutdown >>这里是正常shutdown所以会做检查点当前的数据文件不需要恢复状态
数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭
~~~~~~~~~~~~~~~~~~~~~~~~
模拟删除UNDOTBSDBF
这时其他文件都是一致性的
只需要UNDOTBSDBF恢复
~~~~~~~~~~~~~~~~~~~~~~~~
删除UNDOTBSDBF
还原一个UNDOTBSDBF的备份
SQL> startup
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕
ORA: 文件 需要介质恢复
ORA: 数据文件 : C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
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> startup
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕
数据库已经打开
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 C:\oracle\oradata\testdb\archive
最早的概要日志序列
下一个存档日志序列
当前日志序列
RMAN> backup format c:\noarch_%s%pbak database;
启动 backup 于 月
使用通道 ORA_DISK_
通道 ORA_DISK_: 正在启动 full 数据文件备份集
通道 ORA_DISK_: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\INDXDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\USERSDBF
输入数据文件 fno= name=C:\ORACLE\ORADATA\TESTDB\TOOLSDBF
通道 ORA_DISK_: 正在启动段 于 月
通道 ORA_DISK_: 已完成段 于 月
段 handle=C:\NOARCH_BAK comment=NONE
通道 ORA_DISK_: 备份集已完成 经过时间:::
完成 backup 于 月
RMAN>
RMAN>
RMAN> copy current controlfile to c:\currcontctl;
启动 copy 于 月
使用通道 ORA_DISK_
通道 ORA_DISK_: 已复制当前的控制文件
输出文件名=C:\CURRCONTCTL
完成 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> commit;
提交完成
SQL> insert into arch select * from arch;
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> commit;
提交完成
SQL> alter system switch logfile;
系统已更改
SQL> insert into arch select no from dba_objects; 这里没有commit
已创建行
提交完成
SQL> select GROUP#SEQUENCE#archived STATUS from v$log;
GROUP# SEQUENCE# ARC STATUS
NO CURRENT
YES ACTIVE
NO ACTIVE
SQL> shutdown abort>>这里是正常shutdown所以会做检查点当前的数据文件不需要恢复状态
数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭
~~~~~~~~~~~~~~~~~~~~~~~~
模拟删除UNDOTBSDBF
这时其他文件都是一致性的
只需要UNDOTBSDBF恢复
~~~~~~~~~~~~~~~~~~~~~~~~
删除UNDOTBSDBF
还原一个UNDOTBSDBF的备份
SQL> startup
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕
ORA: 文件 需要介质恢复
ORA: 数据文件 : C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
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=(rbsrbsrbs……)
而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> commit;
提交完成
SQL> insert into arch select * from arch;
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> commit;
提交完成
SQL> alter system switch logfile;
系统已更改
SQL> insert into arch select no from dba_objects;
已创建行
SQL> shutdown abort
ORACLE 例程已经关闭
SQL>
丢失undo文件
SQL> startup mount;
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
SQL> alter database datafile C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF offline;
数据库已更改
SQL> alter database open;
数据库已更改
SQL> select US#NAMEts#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\UNDOTBSDBF
SQL> shutdown
数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭
SQL>
编辑INITtestdb_undoORA
*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_undoORA;
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
SQL> alter database open;
数据库已更改
SQL> select count(*) from arch;
COUNT(*)
再创建新的undo表空间
drop 坏的undo tablespace
最好做一个整库的导出并导入到新系统
################################
# []shutdown abort(或者使用了别的老的数据文件)
# 回滚数据文件丢失没有备份但控制文件有创建
# 该回撤段数据文件的所有历史日志回滚段恢复
# 数据库有活动事务
################################
SQL> startup
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕
数据库已经打开
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer
undo_suppress_errors boolean FALSE
undo_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> commit;
提交完成
SQL> insert into arch select * from arch;
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> commit;
提交完成
SQL> alter system switch logfile;
系统已更改
SQL> insert into arch select no from dba_objects;
已创建行
SQL> SHUTDOWN ABORT
ORACLE 例程已经关闭
删除UNDOTBS
SQL> STARTUP
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕
ORA: 无法标识/锁定数据文件 请参阅 DBWR 跟蹤文件
ORA: 数据文件 : C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
SQL> ALTER DATABASE CREATE DATAFILE C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF;
数据库已更改
SQL> RECOVER DATABASE;
完成介质恢复
SQL> ALTER DATABASE OPEN;
数据库已更改
SQL> COL NAME FORMAT A;
SQL> SELECT NAMESTATUS FROM V$DATAFILE;
NAME STATUS
C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF SYSTEM
C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF ONLINE
C:\ORACLE\ORADATA\TESTDB\INDXDBF ONLINE
C:\ORACLE\ORADATA\TESTDB\TOOLSDBF ONLINE
C:\ORACLE\ORADATA\TESTDB\USERSDBF ONLINE
C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF ONLINE
已选择行
################################
# []数据库打开时回撤表空间文件
# 损坏没有备份
################################
SQL> startup
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo 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> commit;
提交完成
SQL> insert into arch select * from arch;
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> /
已创建行
SQL> commit;
提交完成
SQL> alter system switch logfile;
系统已更改
SQL> insert into arch select no from dba_objects;
已创建行
SQL> commit;
提交完成
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_NAMESTATUS 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 AUTO
undo_retention integer
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS
~~~~~~~~~~~~~~~~~~~~~
这里模拟回撤数据文件损坏
~~~~~~~~~~~~~~~~~~~~~
用ultraedit破坏UNDOTBSDBF
SQL> shutdown 因为要使用回滚但回滚失败
ORA: ORACLE 服务器会话因致命错误而终止
SQL> startup
ORA: 未初始化服务句柄
ORA: 内部错误hostdef 扩展名不存在
SQL> exit
从Oraclei Enterprise Edition Release Production
With the Partitioning OLAP and Oracle Data Mining options
JServer Release Production中断开
C:\Documents and Settings\lifengfang>sqlplus sys/sunsdl as sysdba
SQL*Plus: Release Production on 星期五 月 ::
Copyright (c) Oracle Corporation All rights reserved
已连接
SQL> startup
ORA: cannot start alreadyrunning ORACLE shut it down first
SQL> shutdown
ORA: shutdown in progress connection is not permitted
SQL> shutdown abort 只有abort才可以关闭数据库因为不需要回滚
ORACLE 例程已经关闭
SQL> startup
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕
数据库已经打开
SQL> select SEGMENT_NAMESTATUS 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:\undopfileora from spfile;
文件已创建
SQL> create undo tablespace UNDOTBS datafile C:\oracle\oradata\testdb\UNDOTBDBF 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:\undopfileora
将设置*undo_tablespace=UNDOTBS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> startup pfile=c:\undopfileora
ORACLE 例程已经启动
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕
数据库已经打开
SQL> insert into arch select af from dba_objects;
已创建行
SQL> select
trunc(id/power()) rbs
bitand(idto_number(ffffxxxx))+ slot
id seq
lmoderequest
from v$lockv$session
where v$locktype = TX
and v$locksid = v$sessionsid
and v$sessionusername is not null;
RBS SLOT SEQ LMODE REQUEST
SQL> select SEGMENT_NAMETABLESPACE_NAMESTATUS 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#NAMEts#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_undoORA
*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@ORAUSORACLECOM> shutdown
Database closed
Database dismounted
ORACLE instance shut down
sys@ORAUSORACLECOM> exit
Disconnected from Oraclei Enterprise Edition Release Production
With the Partitioning OLAP and Oracle Data Mining options
JServer Release Production
[ora@tkytepcisdn ora]$ ls
controlctl cwmlitedbf indxdbf redolog redoBlog tempdbf
usersdbf
controlctl drsysdbf odmdbf redolog redoClog toolsdbf
xdbdbf
controlctl exampledbf redolog redoAlog systemdbf
undotbsdbf
[ora@tkytepcisdn ora]$ mv undotbsdbf undotbsdbfxxx
[ora@tkytepcisdn ora]$ sqlplus /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> startup
ORACLE instance started
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
Database mounted
ORA: cannot identify/lock data file see DBWR trace file
ORA: data file :
/usr/oracle/ora/OraHome/oradata/ora/undotbsdbf
idle> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS
idle> alter system set undo_management = manual scope=spfile;
System altered
Note: disabling the undo tablespace here thisll let us go back to rollback
segments and well use the system RBS to get back on our feet
idle> shutdown
ORA: database not open
Database dismounted
ORACLE instance shut down
idle> exit
Disconnected from Oraclei Enterprise Edition Release Production
With the Partitioning OLAP and Oracle Data Mining options
JServer Release Production
[ora@tkytepcisdn ora]$ !sql
sqlplus /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> startup
ORACLE instance started
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
Database mounted
ORA: cannot identify/lock data file see DBWR trace file
ORA: data file :
/usr/oracle/ora/OraHome/oradata/ora/undotbsdbf
Note: we still have to get rid of that thing
idle> alter database datafile
/usr/oracle/ora/OraHome/oradata/ora/undotbsdbf
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/undotbsdbf size
m
autoextend on next m maxsize m;
Tablespace created
idle> alter system set undo_management = auto scope=spfile;
System altered
Now weve put the undo tablespace back by creating a new one Just
bounce
idle> shutdown
Database closed
Database dismounted
ORACLE instance shut down
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~