數(shù)據(jù)庫(kù)基本概念類
1:pctused and pctfree 表示什么含義有什么作用
pctused與pctfree控制數(shù)據(jù)塊是否出現(xiàn)在freelist中,
pctfree控制數(shù)據(jù)塊中保留用于update的空間,當(dāng)數(shù)據(jù)塊中的free space小于pctfree設(shè)置的空間時(shí),
該數(shù)據(jù)塊從freelist中去掉,當(dāng)塊由于dml操作free space大于pct_used設(shè)置的空間時(shí),該數(shù)據(jù)庫(kù)塊將
被添加在freelist鏈表中。
2:簡(jiǎn)單描述table / segment / extent / block之間的關(guān)系
table創(chuàng)建時(shí),默認(rèn)創(chuàng)建了一個(gè)data segment,
每個(gè)data segment含有min extents指定的extents數(shù),
每個(gè)extent據(jù)據(jù)表空間的存儲(chǔ)參數(shù)分配一定數(shù)量的blocks
3:描述tablespace和datafile之間的關(guān)系
一個(gè)tablespace可以有一個(gè)或多個(gè)datafile,每個(gè)datafile只能在一個(gè)tablespace內(nèi),
table中的數(shù)據(jù),通過(guò)hash算法分布在tablespace中的各個(gè)datafile中,
tablespace是邏輯上的概念,datafile則在物理上儲(chǔ)存了數(shù)據(jù)庫(kù)的種種對(duì)象。
4:本地管理表空間和字典管理表空間的特點(diǎn),ASSM有什么特點(diǎn)
本地管理表空間(Locally Managed Tablespace簡(jiǎn)稱LMT)
8i以后出現(xiàn)的一種新的表空間的管理模式,通過(guò)位圖來(lái)管理表空間的空間使用。
字典管理表空間(Dictionary-Managed Tablespace簡(jiǎn)稱DMT)
8i以前包括以后都還可以使用的一種表空間管理模式,通過(guò)數(shù)據(jù)字典管理表空間的空間使用。
動(dòng)段空間管理(ASSM),
它首次出現(xiàn)在Oracle920里有了ASSM,鏈接列表freelist被位圖所取代,它是一個(gè)二進(jìn)制的數(shù)組,
能夠迅速有效地管理存儲(chǔ)擴(kuò)展和剩余區(qū)塊(free block),因此能夠改善分段存儲(chǔ)本質(zhì),
ASSM表空間上創(chuàng)建的段還有另外一個(gè)稱呼叫Bitmap Managed Segments(BMB 段)。
5:回滾段的作用是什么
事務(wù)回滾:當(dāng)事務(wù)修改表中數(shù)據(jù)的時(shí)候,該數(shù)據(jù)修改前的值(即前影像)會(huì)存放在回滾段中,
當(dāng)用戶回滾事務(wù)(ROLLBACK)時(shí),ORACLE將會(huì)利用回滾段中的數(shù)據(jù)前影像來(lái)將修改的數(shù)據(jù)恢復(fù)到原來(lái)的值。
事務(wù)恢復(fù):當(dāng)事務(wù)正在處理的時(shí)候,例程失敗,回滾段的信息保存在undo表空間中,
ORACLE將在下次打開數(shù)據(jù)庫(kù)時(shí)利用回滾來(lái)恢復(fù)未提交的數(shù)據(jù)。
讀一致性:當(dāng)一個(gè)會(huì)話正在修改數(shù)據(jù)時(shí),其他的會(huì)話將看不到該會(huì)話未提交的修改。
當(dāng)一個(gè)語(yǔ)句正在執(zhí)行時(shí),該語(yǔ)句將看不到從該語(yǔ)句開始執(zhí)行后的未提交的修改(語(yǔ)句級(jí)讀一致性)
當(dāng)ORACLE執(zhí)行Select語(yǔ)句時(shí),ORACLE依照當(dāng)前的系統(tǒng)改變號(hào)(SYSTEM CHANGE NUMBER-SCN)
來(lái)保證任何前于當(dāng)前SCN的未提交的改變不被該語(yǔ)句處理。可以想象:當(dāng)一個(gè)長(zhǎng)時(shí)間的查詢正在執(zhí)行時(shí),
若其他會(huì)話改變了該查詢要查詢的某個(gè)數(shù)據(jù)塊,ORACLE將利用回滾段的數(shù)據(jù)前影像來(lái)構(gòu)造一個(gè)讀一致性視圖。
6:日志的作用是什么
記錄數(shù)據(jù)庫(kù)事務(wù),最大限度地保證數(shù)據(jù)的一致性與安全性
重做日志文件:含對(duì)數(shù)據(jù)庫(kù)所做的更改記錄,這樣萬(wàn)一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù),一個(gè)數(shù)據(jù)庫(kù)至少需要兩個(gè)重做日志文件
歸檔日志文件:是重做日志文件的脫機(jī)副本,這些副本可能對(duì)于從介質(zhì)失敗中進(jìn)行恢復(fù)很必要。
7:SGA主要有那些部分,主要作用是什么
SGA:db_cache/shared_pool/large_pool/java_pool
db_cache:
數(shù)據(jù)庫(kù)緩存(Block Buffer)對(duì)于Oracle數(shù)據(jù)庫(kù)的運(yùn)轉(zhuǎn)和性能起著非常關(guān)鍵的作用,
它占據(jù)Oracle數(shù)據(jù)庫(kù)SGA(系統(tǒng)共享內(nèi)存區(qū))的主要部分。Oracle數(shù)據(jù)庫(kù)通過(guò)使用LRU
算法,將最近訪問(wèn)的數(shù)據(jù)塊存放到緩存中,從而優(yōu)化對(duì)磁盤數(shù)據(jù)的訪問(wèn).
shared_pool:
共享池的大小對(duì)于Oracle 性能來(lái)說(shuō)都是很重要的。
共享池中保存數(shù)據(jù)字典高速緩沖和完全解析或編譯的的PL/SQL 塊和SQL 語(yǔ)句及控制結(jié)構(gòu)
large_pool:
使用MTS配置時(shí),因?yàn)橐赟GA中分配UGA來(lái)保持用戶的會(huì)話,就是用Large_pool來(lái)保持這個(gè)會(huì)話內(nèi)存
使用RMAN做備份的時(shí)候,要使用Large_pool這個(gè)內(nèi)存結(jié)構(gòu)來(lái)做磁盤I/O緩存器
java_pool:
為java procedure預(yù)備的內(nèi)存區(qū)域,如果沒(méi)有使用java proc,java_pool不是必須的
8 oracle系統(tǒng)進(jìn)程主要有哪些,作用是什么
數(shù)據(jù)寫進(jìn)程(dbwr):負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存寫入數(shù)據(jù)文件
日志寫進(jìn)程(lgwr):將重做日志緩沖區(qū)中的更改寫入在線重做日志文件
系統(tǒng)監(jiān)控(smon) :檢查數(shù)據(jù)庫(kù)的一致性如有必要還會(huì)在數(shù)據(jù)庫(kù)打開時(shí)啟動(dòng)數(shù)據(jù)庫(kù)的恢復(fù)
進(jìn)程監(jiān)控(pmon) :負(fù)責(zé)在一個(gè)Oracle 進(jìn)程失敗時(shí)清理資源
檢查點(diǎn)進(jìn)程(chpt):負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫(kù)中時(shí),更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫(kù)狀態(tài)信息。
歸檔進(jìn)程(arcn) :在每次日志切換時(shí)把已滿的日志組進(jìn)行備份或歸檔
作業(yè)調(diào)度器(cjq) :負(fù)責(zé)將調(diào)度與執(zhí)行系統(tǒng)中已定義好的job,完成一些預(yù)定義的工作.
恢復(fù)進(jìn)程(reco) :保證分布式事務(wù)的一致性,在分布式事務(wù)中,要么同時(shí)commit,要么同時(shí)rollback;