undo表空間縮小

2021-09-06 03:35:44 字數 1022 閱讀 5724

最近執行乙個資料量比較大的儲存過程,造成undo表空間達到16g左右,但是直接採用resize的方式又無法縮小其大

小,因此經網上搜尋,採用了undo表空間重建的方式來縮小去空間大小,具體步驟如下:

1)建立備用undo表空間

create undo tablespace newundotbs datafile 'd:\oracle\product\10.2.0\oradata\telemt\newundotbs01.dbf' size 2500m

2)切換undo表空間

為新建的undo表空間

alter system set undo_tablespace=newundotbs scope=spfile

shutdown immediate

startup

3)drop原表空間

drop tablespace undotbs1 including contents and datafiles

然後將資料庫關閉刪除d:\oracle\product\10.2.0\oradata\telemt\undotbs01.dbf該檔案

如果無法刪除檢視v$transaction檢視看是否有事務在執行,若有可以與v$session關聯找出sid和serial#並kill掉,然後再dropundotbs1表空間

4)建立原undo表空間

create undo tablespace undotbs1 datafile 'd:\oracle\product\10.2.0\oradata\telemt\undotbs01.dbf' size 2500m

5)再切換undo表空間

為原來的undo表空間

alter system set undo_tablespace=undotbs1 scope=spfile

6)關閉重起並把備用undo表空間drop

shutdown immediate

startup

drop tablespace newundotbs including contents and datafiles

重建Undo表空間

檢視各表空間名稱 select name from v tablespace 檢視某個表空間資訊 select file name,bytes 1024 1024 from dba data files where tablespace name like undotbs1 檢視回滾段的使用情況,哪...

undo表空間損壞

操作如下 sqlplus as sysdba 繼續執行命令 alter database open 例項終止。強制斷開連線 recover database recover datafile 1 recover datafile 2 系統提示 介質恢復成功 以為恢復成功就,直接,startup fo...

oracle縮小表空間

資料庫用久了難免會出現沒有 的空間,如果空間太大可使用以下方法進行 查詢用個表所占用的空間 sql view plain copy select tablespace name,100 sum max sum alloc nvl sum free,0 sum max as capa per,sum ...