《oracle 12.2 local temp的原理和實(shí)現(xiàn)》要點(diǎn):
本文介紹了oracle 12.2 local temp的原理和實(shí)現(xiàn),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
從Oracle數(shù)據(jù)庫12c開始,可以將Oracle Clusterware和Oracle RAC配置在大型集群中,稱為Oracle Flex集群.?這些集群包含兩種類型的節(jié)點(diǎn):Hub節(jié)點(diǎn)和Leaf節(jié)點(diǎn).?Hub節(jié)點(diǎn)緊密連接,可以直接訪問共享存儲(chǔ),并作為一個(gè)或多個(gè)Leaf 節(jié)點(diǎn)的錨點(diǎn). leaf 節(jié)點(diǎn)與Hub節(jié)點(diǎn)松動(dòng)連接,可能無法直接訪問共享存儲(chǔ).
關(guān)于Flex Cluster,詳情請(qǐng)點(diǎn)擊:Oracle Flex Clusters
隨著12.2的發(fā)布,如果是FLEX集群,可以在LEAF?NODE創(chuàng)建read?only實(shí)例,從而引入了local?temp表空間的概念.
local?temp和local?undo的概念不一樣,首先pdb必須使用自己的temp表空間,local?temp指的是RAC環(huán)境下,可以在各自的節(jié)點(diǎn)上創(chuàng)建local?temp表空間,擁有各自的temp表空間就跟擁有各自的PGA一樣,對(duì)于只讀節(jié)點(diǎn)來說大的排序需要用到temp時(shí)就不需要去看這塊空間另外一個(gè)節(jié)點(diǎn)有沒有使用,另外避免了兩邊同時(shí)使用temp表空間產(chǎn)生的爭(zhēng)用.?
首先,PDB不能使用CDB的temp表空間,PDB和CDB上temp視圖查出來的結(jié)果都不一樣:?連接到PDB1,并查看當(dāng)前的臨時(shí)表空間
創(chuàng)建新的臨時(shí)表空間,設(shè)置為默認(rèn),并刪掉原來的臨時(shí)表空間
測(cè)試最初的臨時(shí)表空間不存在
查看當(dāng)前的臨時(shí)表空間
以sysdba連接,再次查詢
dba_temp_files的SHARED字段中表明了類型,local有兩種類型,RIM是read_only實(shí)例,ALL是所有實(shí)例
SHARED:?for?shared?temporary?tablespace
LOCAL_ON_ALL:?for?local?temporary?tablespace?on?all?instances
LOCAL_ON_RIM:?for?local?temporary?tablespace?on?read-only?instances
官方給的創(chuàng)建語句有兩處問題,一是未指定tempfile的大小,二是local?temp是BIGFILE類型,所以不能指定AUTOEXTEND,也不能添加第二個(gè)tempfile.
先來看LOCAL_ON_ALL,創(chuàng)建語句如下,(由于沒有RAC環(huán)境只能在單實(shí)例上測(cè)試)
查詢數(shù)據(jù)庫當(dāng)前的大文件表空間,臨時(shí)文件和臨時(shí)表空間
從操作系統(tǒng)層面查看
從上面可以看到,理論上會(huì)創(chuàng)建各自的tempfile,在指定文件名結(jié)尾加上_1和_2,但是不知V$TEMPFILE視圖中為什么沒有標(biāo)明詳細(xì)的文件名.
LOCAL_ON_RIM由于需要read?only的實(shí)例,創(chuàng)建會(huì)報(bào)錯(cuò)ORA-32778
[oracle@orasql2?~]$?oerr?ORA?32778
32778,?00000,?“DDL?operations?are?disabled?on?local?temporary?tablespaces?FOR?LEAF.”
//?*Cause:?A?DDL?operation?on?a?local?temporary?tablespace?FOR?LEAF?was
//?attempted?in?a?system?without?any?read-only?running?instances.
//?*Action:?Add?at?least?one?read-only?instance?to?the?cluster.
read?writ的實(shí)例會(huì)優(yōu)先使用shared的臨時(shí)表空間,再使用local的臨時(shí)表空間 ;read?only的實(shí)例優(yōu)先使用local的臨時(shí)表空間,再使用shared的臨時(shí)表空間?
其他操作都類似,具體可以參考官方文檔
http://docs.oracle.com/database/122/RACAD/introduction-to-oracle-rac.htm#RACAD-GUID-E84E3BA2-7F36-406B-B630-CD651E0C856F
文章來自微信公眾號(hào):數(shù)據(jù)和云
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4157.html