Oracle臨時表空間刪除和重建實現(xiàn)過程
一、臨時表空間概念
臨時表空間用來管理數(shù)據(jù)庫排序操作以及用于存儲臨時表、中間排序結果等臨時對象,當ORACLE里需要用到SORT的時候,并且當PGA中sort_area_size
大小不夠時,將會把數(shù)據(jù)放入臨時表空間里進行排序。臨時表空間存儲大規(guī)模排序操作(小規(guī)模排序操作會直接在RAM里完成,大規(guī)模排序才需要磁盤排序Disk Sort)和散列操作的中間結果.它跟永久表空間不同的地方在于它由臨時數(shù)據(jù)文件(temporary files)組成的,而不是永久數(shù)據(jù)文件(datafiles
)。臨時表空間不會存儲永久類型的對象,所以它不會也不需要備份。另外,對臨時數(shù)據(jù)文件的操作不產生redo日志,不過會生成undo日志。
創(chuàng)建臨時表空間或臨時表空間添加臨時數(shù)據(jù)文件時,即使臨時數(shù)據(jù)文件很大,添加過程也相當快。這是因為ORACLE的臨時數(shù)據(jù)文件是一類特殊的數(shù)據(jù)文件:稀疏文件(Sparse File),當臨時表空間文件創(chuàng)建時,它只會寫入文件頭部和最后塊信息(only writes to the header and last block of the file)。它的空間是延后分配的.這就是你創(chuàng)建臨時表空間或給臨時表空間添加數(shù)據(jù)文件飛快的原因。
另外,臨時表空間是NOLOGGING
模式以及它不保存永久類型對象,因此即使數(shù)據(jù)庫損毀,做Recovery也不需要恢復Temporary Tablespace。
二、重建oracle臨時表空間過程
STEP1: Find the existing temp tablespace details--查找現(xiàn)有臨時表空間信息
SQL> select tablespace_name,file_name from dba_temp_files TABLESPACE_NAME FILE_NAME ------------------------------ ------------------------------------------------- TEMP /home/oracle/app/oracle/oradata/cdb1/orcl/orcl_temp01201 4-07-30_04-39-23-PM.dbf
STEP2: Create another Temporary Tablespace TEMP1--創(chuàng)建一個臨時表空間
CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE ‘/u01/app/oradata/DBACLASS/temp01′ SIZE 2G;
STEP3: Move Default Database temp tablespace--移動默認數(shù)據(jù)庫臨時表空間
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;
STEP4: If any sessions are using temp space, then kill them.--禁止使用臨時表空間
SELECT b.tablespace,b.segfile#,b.segblk#,b.blocks,a.sid,a.serial#, a.username,a.osuser, a.status FROM v$session a,v$sort_usage b WHERE a.saddr = b.session_addr; ALTER SYSTEM KILL SESSION 'SID,SERIAL#' IMMEDIATE;
STEP5: Drop the original temp tablespace.
Drop temp tablespace--刪除臨時表空間
DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;
If you want to change the name from TEMP1 to TEMP, then follow the same process as below.
如果想要將臨時空間表名稱從temp 1更改為temp,可以按照以下相同的過程進行操作
STEP6: Create TEMP tablespace--創(chuàng)建臨時表空間
CREATE TEMPORARY TABLESPACE TEMP TEMPFILE /u01/app/temp/temp01′ SIZE 2000M;
STEP7: Make TEMP as default tablespace--將臨時設置為默認表空間
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
STEP8: Drop temporary for tablespace temp1--刪除臨時表空間臨時1
DROP TABLESPACE temp1 INCLUDING CONTENTS AND DATAFILES;
三、查詢TEMP TABLESPACE利用率
3.1 script 1
column used_MBytes format 999,999 column free_Mbytes format 999,999 column total_MBytes format 999,999 column collect_time format A15 select to_char(sysdate,'DD-MON-RR:HH24:MI') collect_time ,round(used_blocks*8192/1024/1024,0) used_Mbytes ,round(free_blocks*8192/1024/1024,0) free_Mbytes ,round(total_blocks*8192/1024/1024,0) total_Mbytes from V$sort_segment where tablespace_name like '%TEMP%' / eg: COLLECT_TIME USED_MBYTES FREE_MBYTES TOTAL_MBYTES --------------- ----------- ----------- ------------ 17-JUL-16:17:23 5 24 29
3.2 script 2
set lines 180 col FreeSpaceGB format 999,999 col UsedSpaceGB format 999,999 col TotalSpaceGB format 999,999 col host_name format a30 col tablespace_name format a30 select tablespace_name, (free_blocks*8)/1024 FreeSpaceMB, (used_blocks*8)/1024 UsedSpaceMB, (total_blocks*8)/1024 TotalSpaceMB, i.instance_name,i.host_name from gv$sort_segment ss,gv$instance i where ss.tablespace_name in (select tablespace_name from dba_tablespaces where tablespace_name='&TEMPTBS' and contents='TEMPORARY') and i.inst_id=ss.inst_id; eg: TABLESPACE_NAME FREESPACEMB USEDSPACEMB TOTALSPACEMB INSTANCE_NAME HOST_NAME ------------------------------ ----------- ----------- ------------ ---------------- ---------------------- TEMP 24 5 29 orcl rac1.rajasekhar.com
3.3 script 3
SELECT TABLESPACE_NAME, TABLESPACE_SIZE/1024/1024 as TABLESPACE_SIZE_MB, ALLOCATED_SPACE/1024/1024 as ALLOCATED_SPACE_MB, FREE_SPACE/1024/1024 as FREE_SPACE_MB FROM dba_temp_free_space; TABLESPACE_NAME TABLESPACE_SIZE_MB ALLOCATED_SPACE_MB FREE_SPACE_MB ------------------------------ ------------------ ------------------ ------------- TEMP 30 30 29
到此這篇關于Oracle臨時表空間刪除和重建實現(xiàn)過程的文章就介紹到這了,更多相關Oracle臨時表空間內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Oracle出現(xiàn)ora-12154無法解析指定連接標識符的解決方法
這篇文章主要為大家詳細介紹了Oracle出現(xiàn)ora-12154無法解析指定連接標識符的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10Oracle RMAN還原時set newname文件名有空格報錯的解決方法
數(shù)據(jù)庫備份還原是我們日常開發(fā)少不了的一個功能,但如果一不注意估計就會有問題,下面這篇文章主要給大家介紹了關于Oracle RMAN還原時set newname文件名有空格報錯的解決方法,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-11-11oracle數(shù)據(jù)庫遷移到MySQL的方法總結
本文主要總結了oracle數(shù)據(jù)庫遷移到MySQL的方法,方法包括手動方式導入導出、使用工具Navicat 進行導入、使用工具DBMover 的OracleToMySQL 進行導入和使用工具intelligent-converters 的 oracle-to-mysql 進行導入,需要的朋友可以參考下。2017-03-03使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
這篇文章主要介紹了使用sqlplus為oracle創(chuàng)建用戶和表空間的方法,本文介紹的是使用Oracle 9i所帶的命令行工具:SQLPLUS,需要的朋友可以參考下2017-11-11DBF 文件恢復 ORACLE 數(shù)據(jù)庫的方法
這篇文章主要介紹了DBF 文件 ORACLE 數(shù)據(jù)庫恢復的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01