數據庫恢復一例(1)
2024-07-21 02:07:16
供稿:網友
oracle9i回滾段表空間丟失后的處理方法:
用隱含參數恢復數據庫的例子:
具體操作步驟如下:
首先把初init.ora文件里自動管理改為手工管理,然后加入隱含參數:
#undo_management=auto
undo_tablespace=undotbs
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$)
sql>startup mount (數據庫啟動到mount狀態)
sql> alter database datafile 'd:/oracle/oradata/orcl/undotbs01.dbf' offline drop;
database altered.
sql>alter database open;
database opened.
sql> show parameter undo
name type value
------------------------------------ ----------- ---------
undo_management string manual
undo_retention integer 900
undo_suppress_errors boolean false
undo_tablespace string undotbs
sql> drop tablespace undotbs including contents;
tablespace dropped.
重建undotbs表空間:
sql> create undo tablespace undotbs datafile 'd:/oracle/oradata/orcl/undotbs01.dbf'
size 100m;
tablespace created.
sql> shutdown immediate (關閉數據庫)
database closed.
database dismounted.
oracle instance shut down.
編輯init.ora初始化參數文件,去掉隱含參數,設置
undo_management=auto
undo_tablespace=undotbs
保存init.ora文件,然后執行
sql> startup mount
oracle instance mounted.
total system global area 114061244 bytes
fixed size 282556 bytes
variable size 79691776 bytes
database buffers 33554432 bytes
redo buffers 532480 bytes
database mounted.
sql>alter database datafile 'd:/oracle/oradata/orcl/undotbs01.dbf' online;
database altered.
sql>alter database open;
database opened.
sql> show parameter undo
name type value
------------------------------------ ----------- ------------------------------
undo_management string auto
undo_retention integer 900
undo_suppress_errors boolean false
undo_tablespace string undotbs