糊言亂語(yǔ)

          志未半斤, 才無(wú)八兩. 有苦有樂(lè), 糊涂過(guò)活。
          posts - 25, comments - 7, trackbacks - 0, articles - 42
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          來(lái)自:http://blog.csdn.net/iori_guojun

          一、物理存儲(chǔ)結(jié)構(gòu)
          1、數(shù)據(jù)文件
          存放數(shù)據(jù)庫(kù)數(shù)據(jù),以dbf為擴(kuò)展名。將數(shù)據(jù)放在多個(gè)數(shù)據(jù)文件中,
          再將數(shù)據(jù)文件分放在不同的硬盤中,可以提高存取速度。數(shù)據(jù)文
          件由數(shù)據(jù)塊構(gòu)成,塊大小由數(shù)據(jù)庫(kù)創(chuàng)建時(shí)確定。

          2、重做日志文件,以rdo為擴(kuò)展名。含對(duì)數(shù)據(jù)庫(kù)所做的更改記錄,
          這樣萬(wàn)一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù)。一個(gè)數(shù)據(jù)庫(kù)至少需要兩個(gè)
          重做日志文件。重做日志在日志文件中以循環(huán)的方式工作。有
          歸檔日志模式和非歸檔日志模式。

          3、控制文件,以ctl或ctrl為擴(kuò)展名。控制文件維護(hù)數(shù)據(jù)庫(kù)的全局
          物理結(jié)構(gòu),記錄數(shù)據(jù)庫(kù)中所有文件的控制信息,每個(gè)數(shù)據(jù)庫(kù)至少
          要有一個(gè)控制文件,建議用戶使用兩個(gè)或更多控制文件,并存放
          在不同的磁盤上。Oracle系統(tǒng)通過(guò)控制文件保持?jǐn)?shù)據(jù)庫(kù)的完整性,
          以及決定恢復(fù)數(shù)據(jù)時(shí)使用哪些重做日志。

          4、參數(shù)文件,以ora為擴(kuò)展名。在一個(gè)數(shù)據(jù)庫(kù)啟動(dòng)時(shí),每個(gè)參數(shù)都有
          一個(gè)默認(rèn)值,而參數(shù)文件中的設(shè)置值被用來(lái)更改默認(rèn)值,參數(shù)值
          極大影響了oracle如何去執(zhí)行其不同的任務(wù)。參數(shù)文件包括以下
          幾種:
          <1>、初始化參數(shù)文件。當(dāng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)時(shí),oracle創(chuàng)建了一個(gè)
          默認(rèn)的init.ora文件,如果不修改任何參數(shù),oracle將用所有的
          缺省值來(lái)啟動(dòng)數(shù)據(jù)庫(kù),通常根據(jù)實(shí)際的應(yīng)用修改參數(shù)設(shè)置以提高
          性能。
          <2>、配置參數(shù)文件。一般被命名為config.ora,它被用于特定實(shí)
          例的信息。這個(gè)文件是一個(gè)由init.ora文件調(diào)用或激活的文本文
          件,init.ora中包含一個(gè)ifile參數(shù)以設(shè)置config.ora文件的位置。
          既然一個(gè)數(shù)據(jù)庫(kù)可以有一個(gè)或多個(gè)實(shí)例與之關(guān)聯(lián),那么配置文件中
          每一個(gè)參數(shù)對(duì)于不同的實(shí)例配置可能不同,當(dāng)然,如果和數(shù)據(jù)庫(kù)關(guān)
          聯(lián)的實(shí)例只有一個(gè),所有信息都保存在文件init.ora中,那么
          config.ora文件就不是必需的了。
          <3>、服務(wù)器參數(shù)文件(spfile)。它被設(shè)計(jì)為一個(gè)服務(wù)器端的參
          數(shù)文件,可以被認(rèn)為是在oracle數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行的機(jī)器上被管理
          的初始化參數(shù)的倉(cāng)庫(kù)。一個(gè)服務(wù)器參數(shù)文件可以用語(yǔ)句CREATE
          SPFILE從一個(gè)傳統(tǒng)的文件參數(shù)文件創(chuàng)建。

          5、跟蹤文件與警告日志。
          在實(shí)例中運(yùn)行的每一個(gè)后臺(tái)進(jìn)程都有一個(gè)跟蹤文件與之相連,跟蹤
          文件記載后臺(tái)進(jìn)程遇到的重大事件信息。oracle還有一個(gè)稱做警告
          日志的文件,用于記錄數(shù)據(jù)庫(kù)文件運(yùn)行中主要事件的命令與結(jié)果。

          6、歸檔文件,以arc為擴(kuò)展名,是重做日志文件的脫機(jī)副本,這些副本
          可能對(duì)于從介質(zhì)失敗中進(jìn)行恢復(fù)很必要。

          二、邏輯存儲(chǔ)結(jié)構(gòu)
          1、表空間。
          一個(gè)表空間對(duì)應(yīng)一個(gè)或多個(gè)數(shù)據(jù)文件組成。一個(gè)表空間由段組成,
          段由范圍組成,范圍由一組連續(xù)的數(shù)據(jù)塊組成,它們對(duì)應(yīng)磁盤上
          的一個(gè)或多個(gè)物理塊。一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)
          庫(kù)最少有一個(gè)表空間(SYSTEM表空間),該表空間包含整個(gè)數(shù)據(jù)庫(kù)
          的數(shù)據(jù)字典表,在數(shù)據(jù)庫(kù)建立時(shí)自動(dòng)創(chuàng)建。利用增加數(shù)據(jù)文件的形
          式可以擴(kuò)大表空間。表空間的大小為組成該表空間的數(shù)據(jù)文件的大
          下之和。一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間,一個(gè)數(shù)據(jù)文件一旦被
          加入到一個(gè)表空間中,就不能再?gòu)倪@個(gè)表空間中移走,也不能再加
          入到其他表空間中,建立新的表空間需要建立新的數(shù)據(jù)文件。

          2、段:是邏輯數(shù)據(jù)庫(kù)對(duì)象的物理副本,段存儲(chǔ)數(shù)據(jù),例如索引段存儲(chǔ)
          與索引相關(guān)的數(shù)據(jù)。段是一個(gè)物理實(shí)體,它被放到表空間的一個(gè)數(shù)
          據(jù)文件上。一個(gè)段segment只能屬于一個(gè)表空間,但可以屬于多個(gè)數(shù)
          據(jù)文件。

          3、范圍:段由范圍組成,范圍由一組連續(xù)的數(shù)據(jù)塊組成。一旦段中的
          現(xiàn)有范圍不能容納新數(shù)據(jù),該段將獲取新的范圍,如果需要的話,
          該過(guò)程持續(xù)下去,直到表空間中的數(shù)據(jù)文件沒有自由空間或已達(dá)到
          每個(gè)段內(nèi)部的范圍最大數(shù)量為止。

          4、塊:ORACLE最基本的存儲(chǔ)單位,在建立數(shù)據(jù)庫(kù)的時(shí)候指定,通常為
          操作系統(tǒng)塊大小的倍數(shù)。

          三、內(nèi)存結(jié)構(gòu)
          oracle內(nèi)存結(jié)構(gòu)大致具有四個(gè)區(qū):軟件代碼區(qū)、系統(tǒng)全局區(qū)、程序全局
          區(qū)和排序區(qū)。

          1、系統(tǒng)全局區(qū)。(SGA)
          系統(tǒng)全局區(qū)為一組由oracle分配的共享數(shù)據(jù)結(jié)構(gòu),它是實(shí)例的主要部
          分,它含有數(shù)據(jù)維護(hù)、SQL語(yǔ)句分析與重做緩存所必須的所有內(nèi)存結(jié)
          構(gòu),系統(tǒng)全局區(qū)的數(shù)據(jù)是共享的,也就是說(shuō),多個(gè)進(jìn)程可以在同一時(shí)
          間對(duì)SGA中的數(shù)據(jù)進(jìn)行訪問(wèn)和修改。它包含以下內(nèi)容:
          <1>、數(shù)據(jù)塊緩沖區(qū)
          該區(qū)存放最近使用過(guò)的數(shù)據(jù)塊,使用LRU(最近最好使用算法)
          進(jìn)行管理。
          <2>、字典緩沖區(qū)
          該區(qū)用于保存數(shù)據(jù)字典中的行,數(shù)據(jù)字典中存放oracle系統(tǒng)管
          理自身所需的所有信息。該區(qū)也使用LRU算法管理。
          <3>、重做日志緩沖區(qū)
          任何事務(wù)在記錄到重做日志之前都先放到該區(qū),數(shù)據(jù)庫(kù)系統(tǒng)定期
          將該區(qū)內(nèi)容寫入到聯(lián)機(jī)重做日志中。
          <4>、SQL共享池
          存放所有通過(guò)SQL語(yǔ)法分析、準(zhǔn)備執(zhí)行的SQL語(yǔ)句。
          <5>、JAVA池
          為JAVA命令提供語(yǔ)法分析。
          <6>、多緩沖池
          可以在SGA中創(chuàng)建多個(gè)緩沖池,能夠用多個(gè)緩沖池把的數(shù)據(jù)集與其
          他的應(yīng)用程序分開,以減少它們爭(zhēng)奪數(shù)據(jù)塊緩沖區(qū)相同資源的可
          能性。

          2、程序全局區(qū)(PGA)
          包含單個(gè)服務(wù)器進(jìn)程或單個(gè)后臺(tái)進(jìn)程的數(shù)據(jù)和控制信息,與幾個(gè)進(jìn)程共
          享的SGA 正相反PGA 是只被一個(gè)進(jìn)程使用的區(qū)域,PGA 在創(chuàng)建進(jìn)程時(shí)分
          配在終止進(jìn)程時(shí)回收。

          3、排序區(qū)
          排序需要內(nèi)存,這部分空間成為排序區(qū),排序區(qū)存在于請(qǐng)求排序的用戶
          進(jìn)程的內(nèi)存中,該空間的大小為適應(yīng)排序數(shù)據(jù)量的大小,可增長(zhǎng),但受
          初始化參數(shù)SORT_AREA_SIZER所限制。

          4、軟件代碼區(qū)
          用于存儲(chǔ)正在執(zhí)行或可以執(zhí)行的程序代碼。

          四、進(jìn)程結(jié)構(gòu)
          進(jìn)程分為兩類:用戶進(jìn)程和oracle進(jìn)程。oracle為每一個(gè)連接的用戶運(yùn)行的
          應(yīng)用建立一個(gè)用戶進(jìn)程。
          1、SMON
          當(dāng)啟動(dòng)一個(gè)數(shù)據(jù)庫(kù)時(shí),SMON(系統(tǒng)監(jiān)控進(jìn)程)執(zhí)行所需的實(shí)例恢復(fù)操作(使
          用聯(lián)機(jī)重做日志文件),它也可以清除數(shù)據(jù)庫(kù)(如不再使用的臨時(shí)段),取
          消系統(tǒng)不再需要的事務(wù)對(duì)象。

          2、PMON
          PMON(進(jìn)程監(jiān)控程序)后臺(tái)進(jìn)程清除失敗的用戶進(jìn)程,負(fù)責(zé)清理內(nèi)存儲(chǔ)區(qū)和
          釋放該進(jìn)程使用的資源。同SMON一樣,它被周期喚起檢測(cè)它是否需要被使用。

          3、DBRW
          數(shù)據(jù)庫(kù)寫進(jìn)程。負(fù)責(zé)將被修改的數(shù)據(jù)塊和字典緩沖內(nèi)容寫入到文件。

          4、LGWR。負(fù)責(zé)把聯(lián)機(jī)重做日志緩沖內(nèi)容寫入到文件。

          5、CKPT
          檢查點(diǎn)進(jìn)程:負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫(kù)中時(shí),
          更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫(kù)狀態(tài)信息。

          6、ARCH
          歸檔進(jìn)程:在每次日志切換時(shí)把已滿的日志組進(jìn)行備份或歸檔

          主站蜘蛛池模板: 上蔡县| 缙云县| 宜州市| 寻甸| 区。| 金寨县| 鸡东县| 黄冈市| 三河市| 涡阳县| 通许县| 桐城市| 射洪县| 隆子县| 潼南县| 民丰县| 和静县| 营山县| 金坛市| 六安市| 当涂县| 湟中县| 天柱县| 大丰市| 历史| 澄迈县| 铜鼓县| 怀仁县| 衡东县| 凤城市| 垦利县| 墨竹工卡县| 治县。| 饶河县| 上林县| 韩城市| 深水埗区| 西盟| 丰台区| 勃利县| 淮安市|