Oracle臨時(shí)表空間刪除和重建實(shí)現(xiàn)過(guò)程
一、臨時(shí)表空間概念
臨時(shí)表空間用來(lái)管理數(shù)據(jù)庫(kù)排序操作以及用于存儲(chǔ)臨時(shí)表、中間排序結(jié)果等臨時(shí)對(duì)象,當(dāng)ORACLE里需要用到SORT的時(shí)候,并且當(dāng)PGA中sort_area_size
大小不夠時(shí),將會(huì)把數(shù)據(jù)放入臨時(shí)表空間里進(jìn)行排序。臨時(shí)表空間存儲(chǔ)大規(guī)模排序操作(小規(guī)模排序操作會(huì)直接在RAM里完成,大規(guī)模排序才需要磁盤排序Disk Sort)和散列操作的中間結(jié)果.它跟永久表空間不同的地方在于它由臨時(shí)數(shù)據(jù)文件(temporary files)組成的,而不是永久數(shù)據(jù)文件(datafiles
)。臨時(shí)表空間不會(huì)存儲(chǔ)永久類型的對(duì)象,所以它不會(huì)也不需要備份。另外,對(duì)臨時(shí)數(shù)據(jù)文件的操作不產(chǎn)生redo日志,不過(guò)會(huì)生成undo日志。
創(chuàng)建臨時(shí)表空間或臨時(shí)表空間添加臨時(shí)數(shù)據(jù)文件時(shí),即使臨時(shí)數(shù)據(jù)文件很大,添加過(guò)程也相當(dāng)快。這是因?yàn)镺RACLE的臨時(shí)數(shù)據(jù)文件是一類特殊的數(shù)據(jù)文件:稀疏文件(Sparse File),當(dāng)臨時(shí)表空間文件創(chuàng)建時(shí),它只會(huì)寫(xiě)入文件頭部和最后塊信息(only writes to the header and last block of the file)。它的空間是延后分配的.這就是你創(chuàng)建臨時(shí)表空間或給臨時(shí)表空間添加數(shù)據(jù)文件飛快的原因。
另外,臨時(shí)表空間是NOLOGGING
模式以及它不保存永久類型對(duì)象,因此即使數(shù)據(jù)庫(kù)損毀,做Recovery也不需要恢復(fù)Temporary Tablespace。
二、重建oracle臨時(shí)表空間過(guò)程
STEP1: Find the existing temp tablespace details--查找現(xiàn)有臨時(shí)表空間信息
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)建一個(gè)臨時(shí)表空間
CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE ‘/u01/app/oradata/DBACLASS/temp01′ SIZE 2G;
STEP3: Move Default Database temp tablespace--移動(dòng)默認(rèn)數(shù)據(jù)庫(kù)臨時(shí)表空間
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;
STEP4: If any sessions are using temp space, then kill them.--禁止使用臨時(shí)表空間
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--刪除臨時(shí)表空間
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.
如果想要將臨時(shí)空間表名稱從temp 1更改為temp,可以按照以下相同的過(guò)程進(jìn)行操作
STEP6: Create TEMP tablespace--創(chuàng)建臨時(shí)表空間
CREATE TEMPORARY TABLESPACE TEMP TEMPFILE /u01/app/temp/temp01′ SIZE 2000M;
STEP7: Make TEMP as default tablespace--將臨時(shí)設(shè)置為默認(rèn)表空間
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
STEP8: Drop temporary for tablespace temp1--刪除臨時(shí)表空間臨時(shí)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
到此這篇關(guān)于Oracle臨時(shí)表空間刪除和重建實(shí)現(xiàn)過(guò)程的文章就介紹到這了,更多相關(guān)Oracle臨時(shí)表空間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle出現(xiàn)ora-12154無(wú)法解析指定連接標(biāo)識(shí)符的解決方法
這篇文章主要為大家詳細(xì)介紹了Oracle出現(xiàn)ora-12154無(wú)法解析指定連接標(biāo)識(shí)符的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Oracle RMAN還原時(shí)set newname文件名有空格報(bào)錯(cuò)的解決方法
數(shù)據(jù)庫(kù)備份還原是我們?nèi)粘i_(kāi)發(fā)少不了的一個(gè)功能,但如果一不注意估計(jì)就會(huì)有問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Oracle RMAN還原時(shí)set newname文件名有空格報(bào)錯(cuò)的解決方法,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11oracle數(shù)據(jù)庫(kù)遷移到MySQL的方法總結(jié)
本文主要總結(jié)了oracle數(shù)據(jù)庫(kù)遷移到MySQL的方法,方法包括手動(dòng)方式導(dǎo)入導(dǎo)出、使用工具Navicat 進(jìn)行導(dǎo)入、使用工具DBMover 的OracleToMySQL 進(jìn)行導(dǎo)入和使用工具intelligent-converters 的 oracle-to-mysql 進(jìn)行導(dǎo)入,需要的朋友可以參考下。2017-03-03使用oracle發(fā)生標(biāo)識(shí)符無(wú)效問(wèn)題及解決
這篇文章主要介紹了使用oracle發(fā)生標(biāo)識(shí)符無(wú)效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07oracle自動(dòng)巡檢腳本生成html報(bào)告的方法
這篇文章主要介紹了oracle自動(dòng)巡檢腳本生成html報(bào)告的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
這篇文章主要介紹了使用sqlplus為oracle創(chuàng)建用戶和表空間的方法,本文介紹的是使用Oracle 9i所帶的命令行工具:SQLPLUS,需要的朋友可以參考下2017-11-11DBF 文件恢復(fù) ORACLE 數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了DBF 文件 ORACLE 數(shù)據(jù)庫(kù)恢復(fù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01