ORA-01650: unable to extend rollback segment NAME by NUM in tablespace NAME
大事務導致現有回滾段耗盡,表空間無可用擴展空間。
ALTER TABLESPACE ts_name ADD DATAFILE 'path' SIZE 1G;SELECT * FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME='TS_NAME';SELECT CLASS, COUNT FROM V$WAITSTAT
WHERE CLASS IN ('system undo header','system undo block','undo header','undo block');
SELECT SUM(VALUE) FROM V$SYSSTAT
WHERE NAME IN ('db block gets','consistent gets');
若 COUNT/SUM(VALUE) > 1%,需增加回滾段。
ORA-01652: unable to extend temp segment by NUM in tablespace NAME
排序、雜湊、建索引等操作需要臨時段,表空間缺乏連續可用空間。
SELECT FILE_ID, BLOCK_ID, BLOCKS, BYTES FROM SYS.DBA_FREE_SPACE WHERE TABLESPACE_NAME='TEMP_TS';SELECT INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, PCT_INCREASE FROM SYS.DBA_TABLESPACES WHERE TABLESPACE_NAME='TEMP_TS';ALTER TABLESPACE TEMP_TS DEFAULT STORAGE (INITIAL 10M NEXT 10M);ALTER USER username TEMPORARY TABLESPACE NEW_TEMP_TS;注意:添加數據文件即時生效,無需離線;但添加後不可單獨刪除文件,僅能刪除整個表空間。
ORA-01578: Oracle data block corrupted (file # NUM, block # NUM)
SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE
FROM DBA_EXTENTS
WHERE FILE_ID = &file_id
AND &block_id BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1;
ANALYZE TABLE tbl VALIDATE STRUCTURE CASCADE; 多次執行鑑別永久性 vs 隨機性;-- 1. SHUTDOWN IMMEDIATE
-- 2. init.ora 添加: EVENT="10231 TRACE NAME CONTEXT FOREVER, LEVEL 10"
-- 3. STARTUP RESTRICT
-- 4. CREATE TABLE temp_table AS SELECT * FROM bad_table;
-- 5. 移除 EVENT,重啟
-- 6. RENAME bad_table TO bad_table_old; RENAME temp_table TO bad_table;
-- 7. 重建索引、約束、授權
ORA-01628: max # extents NUM reached for rollback segment NUM
段達到 MAXEXTENTS 參數上限(非硬體極限,受 DB_BLOCK_SIZE 影響)。
ALTER TABLESPACE ts_name STORAGE (MAXEXTENTS 9999);(不超過 LARGEST_MAXEXTENTS);EXPORT COMPRESS=Y 導出 → 重建表 → 導入;DROP 重建;臨時表空間:修改儲存參數。ANALYZE ... VALIDATE STRUCTURE 掃描壞塊;V$WAITSTAT、V$SYSSTAT 回滾段爭用指標。