環(huán)境 centos7妥衣,oracle11
1扛点、新建
用oracle用戶登陸
sqlplus / as sysdba 進(jìn)入sql命令行
create undo tablespace undotbs2 datafile '/mnt/oracle/oradata/undotbs02.dbf' size 100M reuse autoextend on;
其中'/mnt/oracle/oradata/undotbs02.dbf' 新的表空間文件代兵,路徑文件夾事先建好
2着绷、切換
alter system set undo_tablespace=UNDOTBS2 scope=both;
在rac中運(yùn)行有可能會報(bào)錯(cuò)集乔,但是其實(shí)也會改當(dāng)前實(shí)例的默認(rèn)undo表空間。
ERROR at line 1:
ORA-32008: error while processing parameter update at instance SCDB2
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-30013: undo tablespace 'UNDOTBS3' is currently in use
如果不想報(bào)錯(cuò)笨农,應(yīng)該用下面一句就缆。
alter system set undo_tablespace=UNDOTBS2 sid=' 要修改的實(shí)例 ' ;
ALTER SYSTEM SET undo_tablespace='UNDOTBS1' SCOPE=BOTH SID='boss1';
用select instance_name from V$instance;查看SID
用show parameter undo看看現(xiàn)在默認(rèn)undo表空間有沒有改
3、刪除
查詢歷史undo是否還有事務(wù)(包含回滾事務(wù))
SELECT a.tablespace_name,a.segment_name,b.ktuxesta,b.ktuxecfl, b.ktuxeusn||'.'||b.ktuxeslt||'.'||b.ktuxesqn trans FROM dba_rollback_segs a, x$ktuxe b WHERE a.segment_id = b.ktuxeusn AND a.tablespace_name = UPPER('undotbs2') AND b.ktuxesta <> 'INACTIVE';
但是就算沒有回滾事務(wù)也不能馬上刪除谒亦,必須看看回滾段情況
查詢回滾段情況(原undo表空間的回滾段全部offline,可以刪除相關(guān)表空間)
select tablespace_name,segment_name,status from dba_rollback_segs order by tablespace_name;
alter tablespace undotbs1 offline;
多次查看確認(rèn)沒有 undotbs1為online后
drop tablespace undotbs3 including contents and datafiles;
4竭宰、重啟數(shù)據(jù)庫再次確認(rèn)
可以使用sys用戶,從sqlplus登錄份招,執(zhí)行startup force命令切揭,強(qiáng)制重啟
再次用show parameter undo看看現(xiàn)在默認(rèn)undo表空間有沒有改