1. 程式人生 > >oracle臨時表空間過大的原因&&處理

oracle臨時表空間過大的原因&&處理

oracle臨時表空間過大的原因 2009-05-12 11:22 Oracle臨時表空間主要是用來做查詢和存放一些快取的資料的,磁碟消耗的一個主要原因是需要對查詢的結果進行排序,如果沒有猜錯的話,在磁碟空間的(記憶體)的分配上,Oracle使用的是貪心演算法,如果上次磁碟空間消耗達到1GB,那麼臨時表空間就是1GB,如果還有增長,那麼依此類推,臨時表空間始終保持在一個最大的上限。Oracle臨時表空間暴漲的現象經過分析可能是以下幾個方面的原因造成的。         1. 沒有為臨時表空間設定上限,而是允許無限增長。但是如果設定了一個上限,最後可能還是會面臨因為空間不夠而出錯的問題,臨時表空間設定太小會影響效能,臨時表空間過大同樣會影響效能,至於需要設定為多大需要仔細的測試。         2.查詢的時候連表查詢中使用的表過多造成的。我們知道在連表查詢的時候,根據查詢的欄位和表的個數會生成一個迪斯卡爾積,這個迪斯卡爾積的大小就是一次查詢需要的臨時空間的大小,如果查詢的欄位過多和資料過大,那麼就會消耗非常大的臨時表空間。        3.對查詢的某些欄位沒有建立索引。Oracle中,如果表沒有索引,那麼會將所有的資料都複製到臨時表空間,而如果有索引的話,一般只是將索引的資料複製到臨時表空間中。        針對以上的分析,對查詢的語句和索引進行了優化,情況得到緩解,但是需要進一步測試。        總結:        1.SQL語句是會影響到磁碟的消耗的,不當的語句會造成磁碟暴漲。        2.對查詢語句需要仔細的規劃,不要想當然的去定義一個查詢語句,特別是在可以提供使用者自定義查詢的軟體中。        3.仔細規劃表索引。 如果臨時表空間是temporary的,空間不會釋放,只是在sort結束後被標記為free的,如果是permanent的,由SMON負責在sort結束後釋放,都不用去手工釋放的。檢視有哪些使用者和SQL導致TEMP增長的兩個重要檢視: v$sort_usage和v$sort_segment 對於非LMT管理方式的TEMP表空間,最簡單的方法是Metalink給出的一個方法: 修改一下TEMP表空間的storage引數,讓Smon程序觀注一下臨時段,從而達到清理和TEMP表空間的目的。 SQL>alter tablespace temp default storage(pctincrease 1); SQL>alter tablespace temp default storage(pctincrease 0); 而對於LMT管理方式的TEMP表空間,需要重新建立一個新的臨時表空間,將所有使用者的預設臨時表空間指定到新的表空間上,然後offline舊的臨時表空間,並drop掉。具體步驟如下: 首先查詢使用者的預設臨時表空間: [[email protected] oracle]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Wed Apr 12 11:11:43 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production With the Partitioning option JServer Release 9.2.0.4.0 - Production SQL> select username,temporary_tablespace from dba_users; USERNAME                       TEMPORARY_TABLESPACE ------------------------------ ------------------------------ SYS                                 TEMP2 SYSTEM                         TEMP2 OUTLN                           TEMP2 EYGLE                            TEMP2 CSMIG                            TEMP2 TEST                               TEMP2 REPADMIN                     TEMP2 ...... 13 rows selected. SQL> select name from v$tempfile; NAME --------------------------------------------------------------------- /opt/oracle/oradata/conner/temp02.dbf /opt/oracle/oradata/conner/temp03.dbf 重建新的臨時表空間並進行切換: SQL> create temporary tablespace temp tempfile '/opt/oracle/oradata/conner/temp1.dbf' size 10M; Tablespace created. SQL> alter tablespace temp add tempfile '/opt/oracle/oradata/conner/temp2.dbf' size 20M; Tablespace altered. SQL> alter database default temporary tablespace temp; Database altered. SQL> select username,temporary_tablespace from dba_users; USERNAME                       TEMPORARY_TABLESPACE ------------------------------ ------------------------------ SYS                                 TEMP SYSTEM                         TEMP OUTLN                           TEMP EYGLE                            TEMP CSMIG                           TEMP TEST                               TEMP REPADMIN                     TEMP ....... 13 rows selected. 如果原臨時表空間無使用者使用(select tablespace_name,current_users,total_blocks,used_blocks,free_blocks,free_blocks/total_blocks from v$sort_segment;),如果是檔案系統可以看看檔案的時間戳。 我們可以刪除該表空間:(如果原臨時表空間還有使用者在用,你是刪除不了這個表空間的!在一次生產環境的臨時表空間切換中,原臨時表空間始終有使用者在上面,即使我關閉了前臺程式,也還是有使用者,新的臨時表空間已經沒有使用者在使用了。我估計使用者程序已經死在原臨時表空間了。後來只有重新啟動資料庫才能把原來舊的臨時表空間給刪除。) SQL> drop tablespace temp2; Tablespace dropped. SQL>  SQL> select name from v$tempfile; NAME --------------------------------------------------------------- /opt/oracle/oradata/conner/temp1.dbf /opt/oracle/oradata/conner/temp2.dbf SQL> select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible 2 from dba_temp_files 3 / FILE_NAME                              TABLESPACE_NAME              MB AUTOEXTENSIBLE -------------------------------------- -------------------- ---------- -------------- /opt/oracle/oradata/conner/temp2.dbf   TEMP                         20 NO /opt/oracle/oradata/conner/temp1.dbf   TEMP                         10 NO drop tablespace temp including contents and datafiles; --將表空間的內容和資料檔案一起刪除。 下面是查詢在sort排序區使用的執行耗時的SQL: Select se.username,se.sid,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 s   where 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 或是: Select su.username,su.Extents,tablespace,segtype,sql_text From v$sort_usage su,v$sql s Where su.SQL_ID = s.SQL_ID ----------------- ORACLE 臨時表空間使用率過高的原因及解決方案 ORACLE 臨時表空間使用率過高的原因及解決方案(2009-11-14 19:59:02) 標籤:oracle 臨時表空間 使用率100 解決方案 it 分類:技術博論 在資料庫的日常學習中,發現公司生產資料庫的預設臨時表空間temp使用情況達到了30G,使用率達到了100%; 待調整為32G後,使用率還是為100%,導致磁碟空間使用緊張。根據臨時表空間的主要是對臨時資料進行排序和快取臨時資料等特性,待重啟資料庫後, temp會自動釋放。於是想通過重啟資料庫的方式來緩解這種情況,但是重啟資料庫之後,發現臨時表空間temp的使用率還是100%,一點沒變。雖然執行 中應用暫時沒有報什麼錯誤,但是這在一定程度上存在一定的隱患,有待解決該問題。由於臨時表空間主要使用在以下幾種情況: 1、order by or group by (disc sort佔主要部分); 2、索引的建立和重建立; 3、distinct操作; 4、union & intersect & minus sort-merge joins; 5、Analyze 操作; 6、有些異常也會引起TEMP的暴漲。 Oracle臨時表空間暴漲的現象經過分析可能是以下幾個方面的原因造成的: 1. 沒有為臨時表空間設定上限,而是允許無限增長。但是如果設定了一個上限,最後可能還是會面臨因為空間不夠而出錯的問題,臨時表空間設定太小會影響效能,臨時表空間過大同樣會影響效能,至於需要設定為多大需要仔細的測試。 2.查詢的時候連表查詢中使用的表過多造成的。我們知道在連表查詢的時候,根據查詢的欄位和表的個數會生成一個迪斯卡爾積,這個迪斯卡爾積的大小就是一次查詢需要的臨時空間的大小,如果查詢的欄位過多和資料過大,那麼就會消耗非常大的臨時表空間。 3.對查詢的某些欄位沒有建立索引。Oracle中,如果表沒有索引,那麼會將所有的資料都複製到臨時表空間,而如果有索引的話,一般只是將索引的資料複製到臨時表空間中。 針對以上的分析,對查詢的語句和索引進行了優化,情況得到緩解,但是需要進一步測試。 總結: 1.SQL語句是會影響到磁碟的消耗的,不當的語句會造成磁碟暴漲。 2.對查詢語句需要仔細的規劃,不要想當然的去定義一個查詢語句,特別是在可以提供使用者自定義查詢的軟體中。 3.仔細規劃表索引。如果臨時表空間是temporary的,空間不會釋放,只是在sort結束後被標記為free的,如果是 permanent的,由SMON負責在sort結束後釋放,都不用去手工釋放的。檢視有哪些使用者和SQL導致TEMP增長的兩個重要檢視:v$ sort_usage和v$sort_segment。 通過查詢相關的資料,發現解決方案有如下幾種: 一、重建臨時表空間temp Temporary tablespace是不能直接drop預設的臨時表空間的,不過我們可以通過以下方法達到。 檢視目前的Temporary Tablespace SQL> select name from v$tempfile; NAME ——————————————————————— D:/ORACLE/ORADATA/ORCL/TEMP01.DBF SQL> select username,temporary_tablespace from dba_users; USERNAME TEMPORARY_TABLESPACE ------------------------------ ------------------------------ MGMT_VIEW TEMP SYS TEMP SYSTEM TEMP DBSNMP TEMP SYSMAN TEMP 1.建立中轉臨時表空間 create temporary tablespace TEMP1 TEMPFILE 'D:/ORACLE/ORADATA/ORCL/temp02.DBF' SIZE 512M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;  2.改變預設臨時表空間 為剛剛建立的新臨時表空間temp1 alter database default temporary tablespace temp1; 3.刪除原來臨時表空間 drop tablespace temp including contents and datafiles; 4.重新建立臨時表空間 create temporary tablespace TEMP TEMPFILE 'D:/ORACLE/ORADATA/ORCL/temp01.DBF' SIZE 512M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;  5.重置預設臨時表空間為新建的temp表空間 alter database default temporary tablespace temp; 6.刪除中轉用臨時表空間 drop tablespace temp1 including contents and datafiles; 以上的方法只是暫時釋放了臨時表空間的磁碟佔用空間,是治標但不是治本的方法,真正的治本的方法是找出資料庫中消耗資源比較大的sql語句,然後對其進行優化處理。下面是查詢在sort排序區使用的執行耗時的SQL: Select se.username,se.sid,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 s where p.name='db_block_size' and su.session_addr=se.saddr and s.hashvalue=su.sqlhash and s.address=su.sqladdr order by se.username,se.sid; 或是: Select su.username,su.Extents,tablespace,segtype,sql_text From v$sort_usage su,v$sql s Where su.SQL_ID = s.SQL_ID; 注:如果原臨時表空間無使用者使用(select tablespace_name,current_users,total_blocks,used_blocks,free_blocks,free_blocks/total_blocks from v$sort_segment;),如果是檔案系統可以看看檔案的時間戳。 我們可以刪除該表空間:如果原臨時表空間還有使用者在使用,你是刪除不了這個表空間的!在一次生產環境的臨時表空間切換中, 原臨時表空間始終有使用者在上面,即使我關閉了前臺程式,也還是有使用者,新的臨時表空間已經沒有使用者在使用了。我估計使用者程序已經死在原臨時表空間了,後來 只有重新啟動資料庫才能把原來舊的臨時表空間給刪除。 二、修改引數(這個方案緊適用於8i及8i以下的版本) 修改一下TEMP表空間的storage引數,讓Smon程序觀注一下臨時段,從而達到清理和TEMP表空間的目的。 SQL>alter tablespace temp increase 1; SQL>alter tablespace temp increase 0; 三、Kill session 1、 使用如下語句a檢視一下認誰在用臨時段 SELECT se.username, se.SID, se.serial#, se.sql_address, se.machine, se.program, su.TABLESPACE,su.segtype, su.CONTENTS FROM v$session se, v$sort_usage su WHERE se.saddr = su.session_addr 2、kill正在使用臨時段的程序 SQL>Alter system kill session 'sid,serial#'; 3、把TEMP表空間回縮一下 SQL>Alter tablespace TEMP coalesce; 注:這處方法只能針對字典管理表空間(Dictionary Managed Tablespace)。於本地管理表空間(LMT:Local Managed Tablespace),不需要整理的。9i以後只能建立本地管理的表空間。 CREATE TABLESPACE TEST DATAFILE 'D:/TEST01.dbf' SIZE 5M EXTENT MANAGEMENT DICTIONARY CREATE TABLESPACE TEST DATAFILE 'D:/TEST01.dbf' SIZE 5M EXTENT MANAGEMENT LOCAL; 四、使用診斷事件,也是相對有效的一種方法 1、查詢事件程式碼 SQL>select ts#, name from sys.ts$ ; TS# NAME ---------- ------------------------------ 0 SYSTEM 1 UNDOTBS1 2 SYSAUX 3 TEMP 4 USERS 5 UNDOTBS2 2、 執行清理操作 SQL>alter session set events 'immediate trace name DROP_SEGMENTS level 4'; 說明:temp表空間的TS# 為 3, So TS#+ 1= 4。 oracle臨時表空間過大的原因 2009-05-12 11:22 Oracle 臨時表空間主要是用來做查詢和存放一些快取的資料的,磁碟消耗的一個主要原因是需要對查詢的結果進行排序,如果沒有猜錯的話,在磁碟空間的(記憶體)的分配 上,Oracle使用的是貪心演算法,如果上次磁碟空間消耗達到1GB,那麼臨時表空間就是1GB,如果還有增長,那麼依此類推,臨時表空間始終保持在一個 最大的上限。Oracle臨時表空間暴漲的現象經過分析可能是以下幾個方面的原因造成的。 1. 沒有為臨時表空間設定上限,而是允許無限增長。但是如果設定了一個上限,最後可能還是會面臨因為空間不夠而出錯的問題,臨時表空間設定太小會影響效能,臨時表空間過大同樣會影響效能,至於需要設定為多大需要仔細的測試。 2.查詢的時候連表查詢中使用的表過多造成的。我們知道在連表查詢的時候,根據查詢的欄位和表的個數會生成一個迪斯卡爾積,這個迪斯卡爾積的大小就是一次 查詢需要的臨時空間的大小,如果查詢的欄位過多和資料過大,那麼就會消耗非常大的臨時表空間。 3.對查詢的某些欄位沒有建立索引。Oracle中,如果表沒有索引,那麼會將所有的資料都複製到臨時表空間,而如果有索引的話,一般只是將索引的資料複製到臨時表空間中。 針對以上的分析,對查詢的語句和索引進行了優化,情況得到緩解,但是需要進一步測試。        總結: 1.SQL語句是會影響到磁碟的消耗的,不當的語句會造成磁碟暴漲。 2.對查詢語句需要仔細的規劃,不要想當然的去定義一個查詢語句,特別是在可以提供使用者自定義查詢的軟體中。 3.仔細規劃表索引。 如果臨時表空間是temporary的,空間不會釋放,只是在sort結束後被標記為free的,如果是permanent的,由SMON負責在sort結束後釋放,都不用去手工釋放的。檢視有哪些使用者和SQL導致TEMP增長的兩個重要檢視: v$sort_usage和v$sort_segment 對於非LMT管理方式的TEMP表空間,最簡單的方法是Metalink給出的一個方法: 修改一下TEMP表空間的storage引數,讓Smon程序觀注一下臨時段,從而達到清理和TEMP表空間的目的。 SQL>alter tablespace temp default storage(pctincrease 1); SQL>alter tablespace temp default storage(pctincrease 0); 而對於LMT管理方式的TEMP表空間,需要重新建立一個新的臨時表空間,將所有使用者的預設臨時表空間指定到新的表空間上,然後offline舊的臨時表空間,並drop掉。具體步驟如下: 首先查詢使用者的預設臨時表空間: [
[email protected]
oracle]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Wed Apr 12 11:11:43 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production With the Partitioning option JServer Release 9.2.0.4.0 - Production SQL> select username,temporary_tablespace from dba_users; USERNAME                       TEMPORARY_TABLESPACE ------------------------------ ------------------------------ SYS                                 TEMP2 SYSTEM                         TEMP2 OUTLN                           TEMP2 EYGLE                            TEMP2 CSMIG                            TEMP2 TEST                               TEMP2 REPADMIN                     TEMP2 ...... 13 rows selected. SQL> select name from v$tempfile; NAME --------------------------------------------------------------------- /opt/oracle/oradata/conner/temp02.dbf /opt/oracle/oradata/conner/temp03.dbf 重建新的臨時表空間並進行切換: SQL> create temporary tablespace temp tempfile '/opt/oracle/oradata/conner/temp1.dbf' size 10M; Tablespace created. SQL> alter tablespace temp add tempfile '/opt/oracle/oradata/conner/temp2.dbf' size 20M; Tablespace altered. SQL> alter database default temporary tablespace temp; Database altered. SQL> select username,temporary_tablespace from dba_users; USERNAME                       TEMPORARY_TABLESPACE ------------------------------ ------------------------------ SYS                                 TEMP SYSTEM                         TEMP OUTLN                           TEMP EYGLE                            TEMP CSMIG                           TEMP TEST                               TEMP REPADMIN                     TEMP ....... 13 rows selected. 如果原臨時表空間無使用者使用(select tablespace_name,current_users,total_blocks,used_blocks,free_blocks,free_blocks/total_blocks from v$sort_segment;),如果是檔案系統可以看看檔案的時間戳。 我們可以刪除該表空間:(如 果原臨時表空間還有使用者在用,你是刪除不了這個表空間的!在一次生產環境的臨時表空間切換中,原臨時表空間始終有使用者在上面,即使我關閉了前臺程式,也還 是有使用者,新的臨時表空間已經沒有使用者在使用了。我估計使用者程序已經死在原臨時表空間了。後來只有重新啟動資料庫才能把原來舊的臨時表空間給刪除。) SQL> drop tablespace temp2; Tablespace dropped. SQL>  SQL> select name from v$tempfile; NAME --------------------------------------------------------------- /opt/oracle/oradata/conner/temp1.dbf /opt/oracle/oradata/conner/temp2.dbf SQL> select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible 2 from dba_temp_files 3 / FILE_NAME                              TABLESPACE_NAME              MB AUTOEXTENSIBLE -------------------------------------- -------------------- ---------- -------------- /opt/oracle/oradata/conner/temp2.dbf   TEMP                         20 NO /opt/oracle/oradata/conner/temp1.dbf   TEMP                         10 NO drop tablespace temp including contents and datafiles; --將表空間的內容和資料檔案一起刪除。 下面是查詢在sort排序區使用的執行耗時的SQL: Select se.username,se.sid,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 s where p.name='db_block_size' and su.session_addr=se.saddr and s.hashvalue=su.sqlhash and s.address=su.sqladdr order by se.username,se.sid 或是: Select su.username,su.Extents,tablespace,segtype,sql_text From v$sort_usage su,v$sql s 查詢TEMP空間的使用 臨時表空間曾經最大使用情況: 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(%)",nvl(free_space, 0) "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_name,round(sum(bytes_used) / (1024 * 1024), 2) used_space, round(sum(bytes_free) / (1024 * 1024), 2) free_space from v$temp_space_header group by tablespace_name) f where d.tablespace_name = f.tablespace_name(+) 當前的臨時表空間使用情況: select sum(blocks*8192)/1024/1024 from v$sort_usage;

相關推薦

oracle臨時空間原因&&處理

oracle臨時表空間過大的原因 2009-05-12 11:22 Oracle臨時表空間主要是用來做查詢和存放一些快取的資料的,磁碟消耗的一個主要原因是需要對查詢的結果進行排序,如果沒有猜錯的話,在磁碟空間的(記憶體)的分配上,Oracle使用的是貪心演算法,如果上次磁碟空間消耗達到1GB,那麼臨時表空

oracle 11g解決臨時空間的問題

temp tablespace有的數據庫在使用過程中由於某些操作會導至臨時表空間過大,由於臨時表空間的工作機制,在作業完成後該部分臨時表空間也不會釋放。通過重建臨時表空間的方法可以解決這個問題,但操作還是有點繁瑣。在操作中發現,通過resize tempfile可以釋放臨時表空間,如果有多個tempfile,

臨時空間解決方法

臨時表空間臨時表空間過大解決方法解決臨時表空間過大有兩種方法,方法一增加臨時表空間的大小,方法二重建臨時表空間,解決臨時表空間過大的問題。方案一:增加臨時表空間的大小--1.臨時表空間的使用情況SELECT D.tablespace_name, SPACE "SUM_SPACE(M)&

ORACLE 臨時空間使用率高的原因及解決方案

        在資料庫的日常學習中,發現公司生產資料庫的預設臨時表空間temp使用情況達到了30G,使用率達到了100%; 待調整為32G後,使用率還是為100%,導致磁碟空間使用緊張。根據臨時表空間的主要是對臨時資料進行排序和快取臨

ORACLE臨時空間總結

datafile 資源 indicate height 完成 round clip blocks rip 臨時表空間概念 臨時表空間用來管理數據庫排序操作以及用於存儲臨時表、中間排序結果等臨時對象,當ORACLE裏需要用到SORT的時候,並且當PGA中sort_ar

oracle 臨時空間 占用磁盤空間

oracle 臨時表空間新創建一個臨時表空間 tmpacreate temporary tablespace TEMPA TEMPFILE ‘/oracle/tmp/tempa01.dbf ‘ SIZE 8192M REUSE AUTOEXTEND ON NEXT

Oracle臨時空間使用分析

臨時表空間查詢臨時表空間的使用情況: select * from (select a.tablespace_name,sum(maxbytes/1024/1024/1024) total_G,sum(a.bytes/1024/1024) allocated_mbfrom dba_temp_files awhe

oracle 臨時空間使用情況

HA 空間占用 limited 空間使用 ase hash join sel ted 不足 今天用戶那邊執行一個很簡單的SQL,輸出結果集也才幾萬條,涉及三表,最大也才100萬數據量,結果卻報了表空間不足的情況,理論來說,這樣的SQL怎麽也不應該吃這麽多臨時表空間。 查詢臨

解決Oracle臨時空間佔滿的問題

正常來說,在完成Select語句、create index等一些使用TEMP表空間的排序操作後,Oracle是會自動釋放掉臨時段的。但有些有侯我們則會遇到臨時段沒有被釋放,TEMP表空間幾乎滿的狀況,甚至是我們重啟了資料庫仍沒有解決問題。這個問題在論壇中也常被網友問到,下面我總結一下,給出幾

sysaux空間

RDBMS 11.2.0.4 RAC。發現sysaux表空間很大,大約有11G。(之前碰到過12CR1的sysaux有24G,還在增長,沒仔細研究) 檢視dba_hist_wr_control,發現topnsql不是預設的30,而是100.以為是這個原因引起的。 修改後不起作用。 檢

ORACLE 臨時空間管理

 臨時表空間和臨時段   臨時表空間用於存放排序、臨時表等資料,其資訊不需要REDO,因此臨時表的DML操作往往比普通表產生的REDO少很多。臨時表資料變化不產生REDO,UNDO資料變化產生REDO。臨時段不僅僅存在於臨時表空間中,也可能存在普通表空間。比如通過CTAS建立一張表,新表的資料放在

SYSTEM空間問題

巡檢發現system表空間使用率過高 TABLESPACE_NAME TOTAL FREE USED FREE/TOTAL------------------------------ ---------- ---------- ---------- ----------A11_ 28000 9823.062

oracle 臨時空間不夠了

SELECT *   FROM v$session se,       v$sort_usage suWHERE se.saddr=su.session_addr      SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_

審計日誌太多導致Oracle系統空間佔滿的處理

1.檢視所有表空間資訊(包括總大小、已使用、空閒、使用百分比): select a.tablespace_name,total "Total(M)",free "Free(M)",total-free "Used(M)",round(((total-free)/total)*

oracle 臨時空間組的概念

個人資訊 姓名:lyg ------------------------------ 地點:上海----------------------------- 職位:ebs dba ----------------------- email:[email prot

SYSAUX 空間歷史統計資料處理辦法—--範例篇

【INTRO】 SM/OPTSTAT是用於儲存老的統計資訊,10G之前,當對錶/欄位/索引做了相應的統計資訊之後,新的統計資訊就會覆蓋老的統計資訊,也就是說的無法直接找回統計資訊,要找回,只能事先通過dbms_stats匯出來。10G就不必了,它會自動的存到相應的表裡,而這

Oracle臨時空間和UNDO空間對應的檔案丟失後的處理

資料庫的臨時檔案和undo檔案不需要做備份,丟失後可以恢復,資料不會有丟失. 一,臨時表空間的檔案丟失後,在資料庫啟動後自動建立,不需要做干預. 模擬:在資料庫shutdown後將臨時檔案刪除,啟動的時候發現自動建立. 二,undo表空間對應的檔案丟失. 模擬:在資料庫sh

oracle創建用戶、空間臨時空間、分配權限步驟詳解

分配權限 use 表數據 依次 log auto create 過程 limit 首先登陸管理員賬號,或者有DBA權限的用戶,接下來依次: --查詢所有用戶select * from dba_users;--創建新用戶create user gpmgt identified

ORA-1652:臨時空間異常優化處理

ora-1652 temp is-not-null 優化 1、查看 alert_PROD.log 【錯誤信息】:ORA-1652: unable to extend temp segment by 128 in tablespace TEMP1 查看臨時表空間基礎信息及其使用情況:基礎信