一為了打開資料庫,首先想到的是将壞的日志清除掉,但是:
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
二.*系統UNDO表空間的重建*/
--1. 建立新的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控制台修改系統預設的UNDO表空間名, 由UNDOTBS改為UNDOTEMP, 或通過下面的指令修改預設UNDO表空間的辨別
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTEMP
/
--3. 删除原來的系統預設UNDO表空間, 并重建UNDOTBS
DROP TABLESPACE "UNDOTBS1" INCLUDING CONTENTS AND DATAFILES
/
CREATE UNDO TABLESPACE "UNDOTBS"
DATAFILE 'G:/ORACLE/ORADATA/HOME/UNDOTBS01.DBF' SIZE 200M
AUTOEXTEND ON NEXT 4096K MAXSIZE 500M
/
CREATE UNDO TABLESPACE "UNDOTBS" DATAFILE '/home/oracle/oradata/oracle9/UNDOTBS01.DBF' SIZE 1024M AUTOEXTEND ON NEXT 4096K MAXSIZE 2000M
--4. 在OEM控制台修改系統預設的UNDO表空間名, 由 UNDOTEMP 改為 UNDOTBS, 改回原有的UNDO表空間辨別
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS
/
--5. 删除臨時建立的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; --重置預設臨時表空間