您好,登錄后才能下訂單哦!
本篇內容主要講解“Oracle臨時表空間過大如何解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Oracle臨時表空間過大如何解決”吧!
1.臨時表空間的使用情況題
SELECT D.tablespace_name, SPACE "SUM_SPACE(M)", blocks "SUM_BLOCKS", used_space "USED_SPACE(M)", Round(Nvl(used_space, 0) / SPACE * 100, 2) "USED_RATE(%)", SPACE - used_space "FREE_SPACE(M)"FROM (SELECT tablespace_name, Round(SUM(bytes) / (1024 * 1024), 2) SPACE, SUM(blocks) BLOCKS FROM dba_temp_files GROUP BY tablespace_name) D, (SELECT tablespace, Round(SUM(blocks * 8192) / (1024 * 1024), 2) USED_SPACE FROM v$sort_usageGROUP BY tablespace) F WHERE D.tablespace_name = F.tablespace(+) AND D.tablespace_name like 'TEMP%';
查看臨時表空間的總大小和最大擴展大小(能看到數據文件)
select file_name, tablespace_name, bytes / 1024 / 1024 MB, autoextensible, maxbytes / 1024 / 1024 MAX_MB from dba_temp_files;
增加臨時表空間的大小
alter tablespace temp1 add tempfile '/data/prod/proddata/temp013.dbf' size 4G; alter tablespace temp2 add tempfile '/data/prod/proddata/temp024.dbf' size 4G;
0.查看目前默認的臨時表空間
select * from database_propertieswhere property_name = 'DEFAULT_TEMP_TABLESPACE';
1.創建中轉臨時表空間
create temporary tablespace temp3 tempfile '/data/prod/proddata/temp31.dbf' size 4G tablespace group temp; create temporary tablespace temp4 tempfile '/data/prod/proddata/temp41.dbf' size 4G tablespace group temp;
2.刪除原臨時表空間組中的臨時表空間
2.1從默認臨時表空間組temp中移除temp1和temp2;
ALTER TABLESPACE temp1 TABLESPACE GROUP ''; ALTER TABLESPACE temp2 TABLESPACE GROUP '';
2.2刪除臨時表空間temp1和temp2
drop tablespace temp1 including contents and datafiles; drop tablespace temp2 including contents and datafiles;
2.3如果刪除表空間的時候,hang住的話,可以使用下列語句,先把運行在temp臨時表空間的sql語句kill掉,這樣的sql語句多為排序的語句
Select se.username, se.sid, se.serial#,su.extents, su.blocks * to_number(rtrim(p.value)) as Space, tablespace, segtype, sql_text from v$sort_usage su, v$parameter p, v$session se, v$sql swhere p.name = 'db_block_size'and su.session_addr = se.saddr and s.hash_value = su.sqlhash and s.address = su.sqladdr order by se.username, se.sid;
2.4 kill相關進程
alter system kill session '584,23181'; alter system kill session '196,64972'; alter system kill session '262,19832'; alter system kill session '324,40273'; alter system kill session '326,38967'; alter system kill session '1266,54596';
or 重啟DB 關閉應用>關閉監聽>shutdown immediate startup>啟動監聽>執行以下操作后打開應用
2.5 創建臨時表空間,并加入臨時表空間組temp
create temporary tablespace temp1 tempfile '/data/prod/proddata/temp11.dbf' size 4G tablespace group temp; create temporary tablespace temp2 tempfile '/data/prod/proddata/temp21.dbf' size 4G tablespace group temp;
2.6 給臨時表空間組temp的成員temp1,temp2,temp3,temp4 各增加一個成員。
alter tablespace temp1 add tempfile '/data/prod/proddata/temp12.dbf' size 4G; alter tablespace temp2 add tempfile '/data/prod/proddata/temp22.dbf' size 4G; alter tablespace temp3 add tempfile '/data/prod/proddata/temp32.dbf' size 4G; alter tablespace temp4 add tempfile '/data/prod/proddata/temp42.dbf' size 4G;
查看臨時表空間組temp
select * from dba_tablespace_groups;
3 臨時表空間組仍然使用99.98%
為每個臨時表空間添加4G空間
alter tablespace temp1 add tempfile '/data/prod/proddata/temp13.dbf' size 4G; alter tablespace temp2 add tempfile '/data/prod/proddata/temp23.dbf' size 4G; alter tablespace temp3 add tempfile '/data/prod/proddata/temp33.dbf' size 4G; alter tablespace temp4 add tempfile '/data/prod/proddata/temp43.dbf' size 4G;
到此,相信大家對“Oracle臨時表空間過大如何解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。