Oracle的启动机制
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
問(wèn)題1:搞不明白 ?表空間,數(shù)據(jù)表,數(shù)據(jù)庫(kù) ? 這幾個(gè)概念在oracle里面是什么關(guān)系啊
oracle 數(shù)據(jù)庫(kù)就是指的oracle 整體,一般一個(gè)機(jī)器上只安裝一個(gè)oracle數(shù)據(jù)庫(kù)
oracle建立好以后,實(shí)際上oracle是一個(gè)一個(gè)的DBF文件,然后N個(gè)DBF文件組成一個(gè)表空間
你的表就建立在表空間下,比如我舉個(gè)例子:
一個(gè)數(shù)據(jù)庫(kù)叫jack,
jack下用戶(hù)使用的表空間有3個(gè): users , abc, jacc
其中
users由d:\1.dbf組成
abc由d:\11.dbf d:\22.dbf組成
jacc 由 d:\jacc.dbf組成
你建的表可以選擇放在這3個(gè)表空間的任意一個(gè)里(如果不寫(xiě),就放在你這個(gè)用戶(hù)的默認(rèn)表空間里,一般都是users,這個(gè)表空間是系統(tǒng)自己建立的)
臨時(shí)表空間你也可以用,但是只能將臨時(shí)表放在里面,臨時(shí)表空間主要放置一些臨時(shí)數(shù)據(jù),比如你查詢(xún)一個(gè)復(fù)雜的sql語(yǔ)句,系統(tǒng)會(huì)將中間數(shù)據(jù)放在臨時(shí)表空間里暫存
臨時(shí)表空間會(huì)自己刪除(可以選擇會(huì)話(huà)結(jié)束就刪除)
問(wèn)題2:我在系統(tǒng)默認(rèn)的數(shù)據(jù)庫(kù)文件夾里面看到了幾種文件(比如.ctl,.dbf等)
我聽(tīng)我朋友說(shuō)oracle是先讀取.ctl然后讀dbf然后讀日志(好像是這樣,不知道記錯(cuò)沒(méi))
請(qǐng)問(wèn)oracle這個(gè)控制文件.ctl到底是做什么用的呢?
oracle啟動(dòng)的時(shí)候,讀取ctl文件(叫控制文件),這個(gè)控制文件里記錄的內(nèi)容告訴oracle目前這個(gè)數(shù)據(jù)庫(kù)都是由哪些dbf組成的。然后讀取所有的dbf文件,看這些dbf文件的最后修改時(shí)間是否和控制文件中記錄的一樣(同事還要比對(duì)日志文件中記錄的最后修改時(shí)間),如果這些文件的最后修改時(shí)間都一致,那么說(shuō)明oracle上次關(guān)閉是正常的,假如不一致,則利用日志文件重現(xiàn)之前的操作(日志文件里記錄oracle的所有操作),最終時(shí)所有類(lèi)型的文件的最后修改時(shí)間一致,然后打開(kāi),相信你已經(jīng)看出來(lái)了,如果ctl文件壞了的話(huà),你的數(shù)據(jù)實(shí)際上全都無(wú)法讀取,因?yàn)閛racle已經(jīng)不知道自己的結(jié)構(gòu)了。因此oracle默認(rèn)將控制文件復(fù)制3份保存,足見(jiàn)其重要性。
因?yàn)楣烙?jì)你沒(méi)有看過(guò)書(shū),所以我用了淺顯易懂的詞來(lái)描述,他們?cè)趏racle中應(yīng)該叫:
最后修改時(shí)間: SCN(System Change Number)
日志文件:redo log(可能還涉及到Archive 歸檔文件)
重現(xiàn)操作:roll forward (前滾)(實(shí)際上發(fā)生SCN不一致時(shí)需要進(jìn)行恢復(fù),在前滾后還要回滾,以后再說(shuō))
轉(zhuǎn)載于:https://my.oschina.net/ericliuandhisfriends/blog/473933
總結(jié)
以上是生活随笔為你收集整理的Oracle的启动机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在没有工具的情况下检查SSD 的TRIM
- 下一篇: 数字证书KeyTool使用(第二篇)