天天看點

Oracle重建表空間

 一為了打開資料庫,首先想到的是将壞的日志清除掉,但是:

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; --重置預設臨時表空間