首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle UNDO 表空間重建完整操作手冊:臨時表空間切換、參數修改、雙階段重建

     編輯:Oracle 資料庫基礎

場景:UNDO 表空間損壞需重建

嘗試清除壞日誌失效,需採「建臨時 UNDO → 切換 → 刪除舊 → 重建原名 → 切回 → 清理」雙階段策略。

第一階段:建立臨時 UNDO 並切換


-- 1. 建立臨時 UNDO 表空間
CREATE UNDO TABLESPACE "UNDOTEMP"
DATAFILE 'G:\Oracle\ORADATA\HOME\UNDOTEMP.ora' SIZE 5M;
-- Linux 路徑範例
CREATE UNDO TABLESPACE "UNDOTEMP"
DATAFILE '/home/oracle/oradata/Oracle9/UNDOTEMP.ora' SIZE 50M;

-- 2. 修改系統預設 UNDO 表空間
ALTER SYSTEM SET UNDO_TABLESPACE = 'UNDOTEMP';
-- 或透過 OEM Console 修改

第二階段:刪除舊 UNDO、重建原名、切回


-- 3. 刪除原損壞 UNDO 表空間
DROP TABLESPACE "UNDOTBS1" INCLUDING CONTENTS AND DATAFILES;

-- 4. 重建原名 UNDO 表空間
CREATE UNDO TABLESPACE "UNDOTBS1"
DATAFILE 'G:\Oracle\ORADATA\HOME\UNDOTBS1.ora' SIZE 500M;

-- 5. 切回原名
ALTER SYSTEM SET UNDO_TABLESPACE = 'UNDOTBS1';

-- 6. 清理臨時 UNDO
DROP TABLESPACE "UNDOTEMP" INCLUDING CONTENTS AND DATAFILES;

Oracle 9i TEMP 表空間重建(同邏輯)


STARTUP;

-- 1. 建立中轉暫存表空間
CREATE TEMPORARY TABLESPACE TEMP_TEMP
TEMPFILE '/home/oracle/oradata/Oracle9/temp_temp.dbf' SIZE 128M
REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;

-- 2. 切換預設暫存表空間
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_TEMP;

-- 3. 刪除原 TEMP
DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

-- 4. 重建 TEMP
CREATE TEMPORARY TABLESPACE TEMP
TEMPFILE '/home/oracle/oradata/Oracle9/temp01.dbf' SIZE 512M
REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;

-- 5. 切回 TEMP
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

關鍵原則

  • 不可直接刪除正在使用的 UNDO/TEMP 表空間
  • 必須先建立替代表空間並切換預設值
  • INCLUDING CONTENTS AND DATAFILES 確保徹底清除
  • 操作前務必完整備份控制檔與資料檔
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved