Oracle還是比較常用的,於是我研究了一下Oracle UNDO表空間,在這裡拿出來和大家分享一下,希望對大家有用。
一.為了打開數據庫,首先想到的是將壞的日志清除掉,但是:
- SQL> alter database clear unarchived logfile group 3 ;
- SQL> alter database clear unarchived logfile group 3 unrecoverable datafile;
- alter database clear unarchived logfile group 3 unrecoverable datafile
二.系統Oracle UNDO表空間的重建
1. 創建新的Oracle UNDO表空間
- CREATE UNDO TABLESPACE "UNDOTEMP"
- DATAFILE 'G:\Oracle\ORADATA\HOME\UNDOTEMP.ora' SIZE 5M
- CREATE UNDO TABLESPACE "UNDOTEMP" DATAFILE
- '/home/oracle/oradata/Oracle9/UNDOTEMP.ora' SIZE 50M
2. 在OEM控制台修改系統默認的Oracle UNDO表空間名,由UNDOTBS改為UNDOTEMP,或通過下面的命令修改默認Oracle UNDO表空間的標識
- ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTEMP
3. 刪除原來的系統默認Oracle UNDO表空間,並重建UNDOTBS
- DROP TABLESPACE "UNDOTBS1" INCLUDING CONTENTS AND DATAFILES
4. 在OEM控制台修改系統默認的Oracle UNDO表空間名,由 UNDOTEMP 改為 UNDOTBS,改回原有的Oracle UNDO表空間標識
- ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS
5. 刪除臨時創建的Oracle UNDO表空間UNDOTEMP
- DROP TABLESPACE "UNDOTEMP" INCLUDING CONTENTS AND DATAFILES
三.Oracle 9I 重建 TEMP 表空間
1.startup:啟動數據庫
2.create temporary tablespace TEMP_TEMP TEMPFILE '/home/oracle/oradata/Oracle9/temp_temp.dbf' SIZE 128M REUSE AUTOEXTEND
ON NEXT 640K MAXSIZE UNLIMITED:創建中轉臨時表空間
3.alter database default temporary tablespace TEMP_TEMP:改變缺省臨時表空間 為剛剛創建的新臨時表空間temp2
4.drop tablespace temp including contents and datafiles:刪除原來臨時表空間
5.create temporary tablespace TEMP TEMPFILE '/home/oracle/oradata/Oracle9/temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED:重新創建臨時表空間
6.alter database default temporary tablespace temp:重置缺省臨時表空間