您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“數據庫中如何收縮臨時表空間及處理ORA-03297錯誤”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“數據庫中如何收縮臨時表空間及處理ORA-03297錯誤”這篇文章吧。
當我們進行手動resize的時候報如下錯誤
SQL> alter database tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' resize 16G;
alter database tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' resize 16G
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
SQL> alter database tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' resize 20G;
alter database tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' resize 20G
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
我們采用交換臨時表空間方式,收縮臨時表空間
新建臨時表空間
SQL> CREATE TEMPORARY TABLESPACE temp2 tempfile '/u01/app/oracle/oradata/orcl/temp201.dbf' size 4G autoextend on next 20M maxsize 8G;
Tablespace created.
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2;
Database altered.
SQL> select * from (select username,temporary_tablespace from dba_users) where rownum<10;
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYS TEMP2
SYSTEM TEMP2
OUTLN TEMP2
DIP TEMP2
ORACLE_OCM TEMP2
APPQOSSYS TEMP2
WMSYS TEMP2
XS$NULL TEMP2
EXFSYS TEMP2
此時刪除原臨時表空間,發現一直hang在那里
SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;
查詢正在使用臨時表空間事務我們是測試環境直接kill(正式環境慎用,等一段時間再drop)
SQL> SELECT 'ALTER SYSTEM KILL SESSION ''' || sid ||','|| serial# || '''immediate;' FROM v$session where saddr in (SELECT session_addr FROM v$sort_usage WHERE tablespace='TEMP2');
SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.
刪除臨時表空間完成
以上是“數據庫中如何收縮臨時表空間及處理ORA-03297錯誤”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。