ORACLE數(shù)據(jù)庫管理基礎(chǔ)_第1頁
ORACLE數(shù)據(jù)庫管理基礎(chǔ)_第2頁
ORACLE數(shù)據(jù)庫管理基礎(chǔ)_第3頁
ORACLE數(shù)據(jù)庫管理基礎(chǔ)_第4頁
ORACLE數(shù)據(jù)庫管理基礎(chǔ)_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

ORACLE數(shù)據(jù)庫管理基礎(chǔ)認(rèn)真就是能力,細(xì)心就是優(yōu)勢!Jerry序數(shù)據(jù)庫管理員是一個(gè)或一組全面負(fù)責(zé)管理和控制數(shù)據(jù)庫系統(tǒng)的人員。

簡稱:DBA(DataBaseAdministrator)ORACLE數(shù)據(jù)庫管理基礎(chǔ)了解Oracle體系結(jié)構(gòu)中的各種組件啟動和關(guān)閉Oracle數(shù)據(jù)庫創(chuàng)建可操作的數(shù)據(jù)庫管理Oracle控制文件、重做日志文件、數(shù)據(jù)文件、表空間、段、區(qū)和塊管理用戶、權(quán)限和資源使用“全球化支持”功能什么是Oracle9i企業(yè)版?Oracle9i企業(yè)版是一種可伸縮且易于管理的對象關(guān)系數(shù)據(jù)庫。本課程就最基本的企業(yè)版的管理進(jìn)行了探討。但是,下列選件還提供了其它功能。?分區(qū)(Partitioning):提供了一些可用于執(zhí)行大型、可伸縮的應(yīng)用程序的實(shí)用工具。通過它,您可以在比基本企業(yè)版中更低的粒度級別上控制表和索引?實(shí)時(shí)應(yīng)用集群(RealApplicationClusters):改善數(shù)據(jù)庫的可伸縮性和可用性,這是通過允許Oracle軟件的多個(gè)副本訪問單個(gè)數(shù)據(jù)庫來實(shí)現(xiàn)的?OracleEnterpriseManager工具包:構(gòu)建在OracleEnterpriseManager的基礎(chǔ)上。OracleEnterpriseManager的診斷包(DiagnosticsPack)、優(yōu)化包(TuningPack)和更改管理包(ChangeManagementPack)均是附件,可以為DBA提供一整套工具,用來對Oracle環(huán)境進(jìn)行高級診斷、監(jiān)視、優(yōu)化以及管理更改。?高級安全(AdvancedSecurity):使用加密和數(shù)據(jù)完整性檢查來提供客戶機(jī)-服務(wù)器和服務(wù)器-服務(wù)器的網(wǎng)絡(luò)安全,同時(shí)可使用第三方安全服務(wù)來支持增強(qiáng)的用戶驗(yàn)證服務(wù)。數(shù)據(jù)庫管理員的任務(wù)?計(jì)劃和創(chuàng)建數(shù)據(jù)庫?管理數(shù)據(jù)庫可用性?管理物理結(jié)構(gòu)和邏輯結(jié)構(gòu)?根據(jù)設(shè)計(jì)管理存儲?管理安全?網(wǎng)絡(luò)管理?備份和恢復(fù)?數(shù)據(jù)庫優(yōu)化體系結(jié)構(gòu)概述物理結(jié)構(gòu)

數(shù)據(jù)文件、日志文件、控制文件、參數(shù)文件系統(tǒng)全局區(qū)(SystemGlobalArea)

共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)進(jìn)程

用戶進(jìn)程、服務(wù)器進(jìn)程、后臺進(jìn)程口令文件主要組成部分簡圖實(shí)例SGA重做日志緩沖區(qū)共享池?cái)?shù)據(jù)字典緩沖區(qū)庫緩沖區(qū)DBWRSMONPMONCKPTLGWROthers用戶進(jìn)程服務(wù)器進(jìn)程PGA控制文件數(shù)據(jù)文件數(shù)據(jù)庫數(shù)據(jù)庫緩沖區(qū)重做日志文件Java池大池參數(shù)文件歸檔日志文件?Oracle服務(wù)器:Oracle服務(wù)器中包含多種文件結(jié)構(gòu)、進(jìn)程結(jié)構(gòu)和內(nèi)存結(jié)構(gòu);但是,處理SQL語句時(shí),并非所有這些結(jié)構(gòu)都會用到。某些結(jié)構(gòu)用于提高數(shù)據(jù)庫的性能,確保該數(shù)據(jù)庫在遇到軟件或硬件錯(cuò)誤時(shí)可以恢復(fù),或者執(zhí)行維護(hù)該數(shù)據(jù)庫所需的其它任務(wù)。Oracle服務(wù)器包括一個(gè)Oracle例程和一個(gè)Oracle數(shù)據(jù)庫。?Oracle例程:Oracle例程是后臺進(jìn)程和內(nèi)存結(jié)構(gòu)的組合。只有啟動例程后,才能訪問數(shù)據(jù)庫中的數(shù)據(jù)。每次啟動例程時(shí),會分配系統(tǒng)全局區(qū)(SGA)并啟動Oracle后臺進(jìn)程。后臺進(jìn)程代表調(diào)用進(jìn)程執(zhí)行各種功能。它們把為每個(gè)用戶運(yùn)行的多個(gè)Oracle程序所處理的功能統(tǒng)一起來。后臺進(jìn)程執(zhí)行輸入/輸出(I/O),并監(jiān)視其它Oracle進(jìn)程來提高并行性,從而使性能和可靠性更加優(yōu)越。基本組件概覽?Oracle數(shù)據(jù)庫:Oracle數(shù)據(jù)庫包含操作系統(tǒng)文件(也稱為數(shù)據(jù)庫文件),這些文件為數(shù)據(jù)庫信息提供了實(shí)際的物理存儲。數(shù)據(jù)庫文件用于確保數(shù)據(jù)一致性并能在例程失敗時(shí)得以恢復(fù)。?其它關(guān)鍵文件:非數(shù)據(jù)庫文件用于配置例程、驗(yàn)證特權(quán)用戶以及在磁盤出現(xiàn)故障時(shí)恢復(fù)數(shù)據(jù)庫。?用戶進(jìn)程和服務(wù)器進(jìn)程:執(zhí)行SQL語句時(shí),用戶進(jìn)程和服務(wù)器進(jìn)程是其中涉及的主要進(jìn)程;但是,其它進(jìn)程也會有助于服務(wù)器完成SQL語句的處理。?其它進(jìn)程:還有很多供其它選件使用的其它進(jìn)程,例如,高級排隊(duì)(AdvancedQueuing)、實(shí)時(shí)應(yīng)用集群(RealApplicationClusters)、共享服務(wù)器(SharedServer)和高級復(fù)制(AdvancedReplication)等基本組件概覽Oracle服務(wù)器端Oracle服務(wù)器端:是一個(gè)提供開放的、全面的、完整的信息管理的數(shù)據(jù)庫管理系統(tǒng)由Oracle實(shí)例和Oracle數(shù)據(jù)庫組成Oracle服務(wù)器Oracle服務(wù)器數(shù)據(jù)庫服務(wù)務(wù)器是信息息管理的關(guān)關(guān)鍵。一般般來說,服服務(wù)器必須須可靠地管管理多用戶戶環(huán)境中的的大量數(shù)據(jù),以便便多個(gè)用戶戶能夠同時(shí)時(shí)訪問同一一數(shù)據(jù)。所所有這一切切都必須在在保證高性性能的同時(shí)時(shí)進(jìn)行。數(shù)據(jù)庫服務(wù)務(wù)器還必須須防止未經(jīng)經(jīng)授權(quán)的訪訪問,并為為故障恢復(fù)復(fù)提供有效效的解決方方案。實(shí)例(INSTANCE)是存取和控控制數(shù)據(jù)庫庫的軟件機(jī)機(jī)制,它由由系統(tǒng)全局局(SystemGlobalArea,,簡稱SGA)和后后臺進(jìn)程組組成由系統(tǒng)全局局區(qū)(SGA)內(nèi)內(nèi)存結(jié)構(gòu)和和用于管理理數(shù)據(jù)庫的的后臺進(jìn)程程組成。例例程是通過過使用特定于于每個(gè)操作作系統(tǒng)的方方法來標(biāo)識識的。例程程一次只能能打開和使使用一個(gè)數(shù)數(shù)據(jù)庫。Oracle實(shí)例例Oracle實(shí)例例:提供對Oracle數(shù)據(jù)據(jù)庫的訪問問通常打開一一個(gè),只打打開一個(gè)數(shù)數(shù)據(jù)庫由內(nèi)存空間間和后臺進(jìn)進(jìn)程組成后臺進(jìn)程內(nèi)存結(jié)構(gòu)實(shí)例SGA重做日志緩緩沖區(qū)共享池?cái)?shù)據(jù)字典緩緩沖區(qū)庫緩沖區(qū)DBWRSMONPMONCKPTLGWROthers數(shù)據(jù)庫或重重區(qū)Java池池大池建立連接和和創(chuàng)建會話話連接到Oracle實(shí)例例:建立一個(gè)用用戶連接創(chuàng)建一個(gè)會會話會話被創(chuàng)建建用戶用戶進(jìn)程服務(wù)器進(jìn)程程連接已建立立Oracle服務(wù)器建立連接和和創(chuàng)建會話話用戶只有在在連接到例例程后,才才能向Oracle數(shù)據(jù)庫庫提交SQL語句句。?用戶啟啟動SQL*Plus之類類的工具,,或者運(yùn)行行使用OracleForms之之類的工具具開發(fā)的應(yīng)應(yīng)用程序。。該應(yīng)用程程序或工具具將作為用用戶進(jìn)程來來執(zhí)行。?在最基基本的配置置中,用戶戶登錄到Oracle服務(wù)務(wù)器時(shí),運(yùn)運(yùn)行Oracle服服務(wù)器的的計(jì)算機(jī)上上就會創(chuàng)建建一個(gè)進(jìn)程程。這個(gè)進(jìn)進(jìn)程稱為服服務(wù)器進(jìn)程程。服務(wù)器器進(jìn)程代表表客戶機(jī)上上運(yùn)行的用用戶進(jìn)程與與Oracle例例程進(jìn)行通通信。服務(wù)務(wù)器進(jìn)程代代表用戶執(zhí)執(zhí)行SQL語句。。連接連接是用戶戶進(jìn)程和Oracle服務(wù)務(wù)器之間的的通信路徑徑。數(shù)據(jù)庫庫用戶可以以采用以下下三種方式式之一連接接到Oracle服服務(wù)器::?用戶登登錄到運(yùn)行行Oracle例例程的操作作系統(tǒng)上,,然后啟動動訪問該系系統(tǒng)中的數(shù)數(shù)據(jù)庫的應(yīng)應(yīng)用程序或或工具。通通信路徑是是使用主機(jī)機(jī)操作系統(tǒng)統(tǒng)上的進(jìn)程程間通信機(jī)機(jī)制建立的的。?用戶在在本地計(jì)算算機(jī)上啟動動應(yīng)用程序序或工具,,然后通過過網(wǎng)絡(luò)連接接到運(yùn)行Oracle例程程的計(jì)算機(jī)機(jī)。在這個(gè)個(gè)稱為客戶戶機(jī)/服務(wù)務(wù)器的配置置中,用戶戶和Oracle服服務(wù)器使使用網(wǎng)絡(luò)軟軟件進(jìn)行通通信。?在三層層連接中,,用戶計(jì)算算機(jī)通過網(wǎng)網(wǎng)絡(luò)與應(yīng)用用程序服務(wù)務(wù)器或網(wǎng)絡(luò)絡(luò)服務(wù)器進(jìn)進(jìn)行通信,,這些服務(wù)務(wù)器又通過過網(wǎng)絡(luò)與運(yùn)運(yùn)行Oracle例例程的計(jì)計(jì)算機(jī)連接接。例如,,用戶在網(wǎng)網(wǎng)絡(luò)中的一一臺計(jì)算機(jī)機(jī)上運(yùn)行瀏瀏覽器來使使用位于NT服務(wù)務(wù)器上的應(yīng)應(yīng)用程序,,該NT服服務(wù)器又又從UNIX主機(jī)機(jī)上運(yùn)行的的Oracle數(shù)數(shù)據(jù)庫中檢檢索數(shù)據(jù)。。會話會話是用戶戶與Oracle服服務(wù)器的的一種特定定連接。會會話在Oracle服務(wù)器器驗(yàn)證用戶戶后啟動,,當(dāng)用戶退退出或出現(xiàn)現(xiàn)異常終止止時(shí)會話結(jié)結(jié)束。對某個(gè)具體體的數(shù)據(jù)庫庫用戶來說說,如果該該用戶從很很多工具、、應(yīng)用程序序或者終端端同時(shí)登錄錄,則可能能有很多并并發(fā)會話。。除了一些些專用的數(shù)數(shù)據(jù)庫管理理工具以外外,啟動數(shù)數(shù)據(jù)庫會話話還要求Oracle服務(wù)務(wù)器可供使使用。注:在此處處所講的連連接類型中中,用戶進(jìn)進(jìn)程和服務(wù)務(wù)器進(jìn)程之之間存在一一對一的通通信關(guān)系,,這稱作專專用服務(wù)器器連接。使使用共享服服務(wù)器(SharedServer)配置置時(shí),多個(gè)個(gè)用戶進(jìn)程程可以共享享服務(wù)器進(jìn)進(jìn)程。Oracle數(shù)據(jù)據(jù)庫Oracle數(shù)據(jù)據(jù)庫:是所有數(shù)據(jù)據(jù)的集合由三種類型型的文件組組成口令文件參數(shù)文件歸檔日志文件控制文件數(shù)據(jù)文件重做日志文件Oracle數(shù)據(jù)庫Oracle數(shù)據(jù)庫Oracle數(shù)據(jù)據(jù)庫具有邏邏輯結(jié)構(gòu)和和物理結(jié)構(gòu)構(gòu)。數(shù)據(jù)據(jù)庫的物理理結(jié)構(gòu)是數(shù)數(shù)據(jù)庫中操操作系統(tǒng)文文件的集合合。Oracle數(shù)據(jù)據(jù)庫包含以以下三類文文件:?數(shù)據(jù)文文件,包含含數(shù)據(jù)庫中中的實(shí)際數(shù)數(shù)據(jù)?重做日日志文件,,包含數(shù)據(jù)據(jù)庫的更改改記錄,可可以在出現(xiàn)現(xiàn)故障時(shí)恢恢復(fù)數(shù)據(jù)?控制文文件,包含含維護(hù)和驗(yàn)驗(yàn)證數(shù)據(jù)庫庫完整性所所需的信息息Oracle數(shù)據(jù)庫Oracle服務(wù)務(wù)器還使用用一些其它它文件,這這些文件并并不是數(shù)據(jù)據(jù)庫的一部部分:?參數(shù)文文件,用來來定義Oracle例程的的特性。例例如,它包包含調(diào)整SGA中中一些內(nèi)存存結(jié)構(gòu)大小小的參數(shù)。。?口令文文件驗(yàn)證哪哪些用戶有有權(quán)啟動和和關(guān)閉Oracle例程。。?歸檔的的重做日志志文件是重重做日志文文件的脫機(jī)機(jī)副本,當(dāng)當(dāng)必須從介介質(zhì)失敗中中進(jìn)行恢復(fù)復(fù)時(shí)可能會會需要這些些副本。物理結(jié)構(gòu)物理結(jié)構(gòu)包包含三種類類型的文件件:控制文件數(shù)據(jù)文件聯(lián)機(jī)重做日日志控制文件數(shù)據(jù)文件聯(lián)機(jī)重做日志內(nèi)存結(jié)構(gòu)Oracle的內(nèi)存存包括兩個(gè)個(gè)內(nèi)存區(qū)域域:系統(tǒng)全局區(qū)區(qū)(SGA):是是Oracle實(shí)實(shí)例的基基本組成部部分,隨實(shí)實(shí)例的啟動動而分配程序全局區(qū)區(qū)(PGA):服服務(wù)器進(jìn)進(jìn)程啟動時(shí)時(shí)分配系統(tǒng)全局區(qū)區(qū)SGA由由以下幾種種內(nèi)存結(jié)構(gòu)構(gòu)組成:共享池(SharedPool)數(shù)據(jù)庫緩沖沖區(qū)(DatabaseBufferCache))重做日志緩緩沖區(qū)(RedoLogBuffer)其它結(jié)構(gòu)SGA中的的兩種可選選的附加內(nèi)內(nèi)存結(jié)構(gòu):大池(LargePool)Java池池(JavaPool)系統(tǒng)全局區(qū)區(qū)(SGA)SGA也也稱作共享享全局區(qū),,用于存儲儲數(shù)據(jù)庫進(jìn)進(jìn)程共享的的數(shù)據(jù)庫信信息。它包包含有關(guān)Oracle服務(wù)務(wù)器的數(shù)據(jù)據(jù)和控制信信息,在Oracle服務(wù)務(wù)器所在計(jì)計(jì)算機(jī)的虛虛擬內(nèi)存中中分配。要查看SGA內(nèi)存存的分配情情況,可以以使用下面面的語句::SQL>showsgaTotalSystemGlobalArea131144544bytesFixedSize453472bytesVariableSize113246208bytesDatabaseBuffers16777216bytesRedoBuffers667648bytes系統(tǒng)全局區(qū)區(qū)SGA是ORACLE系統(tǒng)統(tǒng)為實(shí)例分分配的一組組共享緩沖沖存儲區(qū),,用于存放放數(shù)據(jù)庫數(shù)數(shù)據(jù)和控制制信息,以以實(shí)現(xiàn)對數(shù)數(shù)據(jù)庫數(shù)據(jù)據(jù)的管理和和操作系統(tǒng)全局區(qū)區(qū)動態(tài)分配的的參數(shù)SGA_MAX_SIZE決定其大小小SGA中中的存儲器器由被稱作作細(xì)粒的存存儲單元來來分配的由連續(xù)的細(xì)細(xì)粒來分配配細(xì)粒的大小小依賴于參參數(shù)SGA_MAX_SIZE動態(tài)SGA從Oracle9i開始,動態(tài)態(tài)SGA實(shí)實(shí)施了一一種體系結(jié)結(jié)構(gòu),可以以對SGA配置進(jìn)進(jìn)行更改,,而不必關(guān)關(guān)閉例程。。這樣,在在不關(guān)閉例例程的情況況下,就可可以更改數(shù)數(shù)據(jù)庫緩沖沖區(qū)高速緩緩存和共享享池的大小小。因此,,開始時(shí)可可將數(shù)據(jù)庫庫緩沖區(qū)高高速緩存和和共享池配配置為一個(gè)個(gè)較小的值值,然后根根據(jù)它們各各自的工作作量增減,,但最大值值不能超過過由SGA_MAX_SIZE指定定的值。調(diào)整SGA的大小SGA的的大小由幾幾個(gè)初始化化參數(shù)決定定。對SGA的大大小影響最最大的參數(shù)數(shù)有:DB_CACHE_SIZE:標(biāo)準(zhǔn)塊塊的高速緩緩存大小。。對于UNIX,缺缺省值是48MB,對于NT,缺省省值是52MBLOG_BUFFER:為重重做日志緩緩沖區(qū)分配配的字節(jié)數(shù)數(shù)SHARED_POOL_SIZE::專用于共共享SQL和PL/SQL的內(nèi)存存區(qū)的大小?。ㄒ宰止?jié)節(jié)為單位))。缺省值值是16MB。如如果是64位,則則缺省值是是64MBLARGE_POOL_SIZE:大大型共享池池的大小。。缺省值是是零(如果果未將init.ora參參數(shù)PARALLEL_AUTOMATIC_TUNING設(shè)設(shè)置為TRUE,則則自動計(jì)算算缺省值。。)JAVA_POOL_SIZE:Java池池的大小。。缺省值是是24MB因此,SGA的大大小不能超超過SGA_MAX_SIZE-DB_CACHE_SIZE-LOG_BUFFER––SHARED_POOL_SIZE-LARGE_POOL_SIZE-JAVA_POOL_SIZE。。系統(tǒng)全局區(qū)區(qū)(續(xù))分配單位::粒組是一個(gè)個(gè)連續(xù)虛擬擬內(nèi)存分配配單位。粒粒組的大小小取決于估估算的SGA的總總大小,這這個(gè)總大小小是根據(jù)參參數(shù)SGA_MAX_SIZE的值值計(jì)算的。。?如如果估估算的的SGA的的大大小小小于128MB,,那么么粒組組大小小是4MB?否否則為為16MB共享池池用來存存儲:最近執(zhí)執(zhí)行的的SQL語語句最近使使用的的數(shù)據(jù)據(jù)定義義由兩個(gè)個(gè)主要要的與與性能能相關(guān)關(guān)的內(nèi)內(nèi)存結(jié)結(jié)構(gòu)組組成:庫緩沖沖區(qū)((LibraryCache))數(shù)據(jù)字字典緩緩沖區(qū)區(qū)(DataDictionaryCache)決定其其大小小的參參數(shù)::SHARED_POOL_SIZE共享池池?cái)?shù)據(jù)字字典緩存存庫緩存存ALTERSYSTEMSETSHARED_POOL_SIZE=64M;共享池池共享池池環(huán)境境既包包含固固定結(jié)結(jié)構(gòu),,也包包含可可變結(jié)結(jié)構(gòu)。。固定定結(jié)構(gòu)構(gòu)的大大小相相對保保持不不變,,而可可變結(jié)結(jié)構(gòu)的的大小小會根根據(jù)用用戶和和程序序的需需求增增減。。固定定結(jié)構(gòu)構(gòu)和可可變結(jié)結(jié)構(gòu)的的實(shí)際際大小小由一一個(gè)初初始化化參數(shù)數(shù)和Oracle內(nèi)內(nèi)部部算法法來確確定。。共享池池—調(diào)調(diào)整大大小由于共共享池池用于于可以以全局局共享享的對對象,,如可可重復(fù)復(fù)使用用的SQL執(zhí)執(zhí)行計(jì)計(jì)劃、、PL/SQL程程序包包、過過程、、函數(shù)數(shù)和游游標(biāo)信信息,,所以以必須須對它它的大大小進(jìn)進(jìn)行調(diào)調(diào)整,,以滿滿足固固定區(qū)區(qū)和可可變區(qū)區(qū)的需需要。。分配給給共享享池的的內(nèi)存存由SHARED_POOL_SIZE初初始始化參參數(shù)確確定。。使用用ALTERSYSTEMSET,,便可可以動動態(tài)地地重新新調(diào)整整它的的大小小。經(jīng)經(jīng)過性性能分分析后后,就就可以以調(diào)整整它的的大小小,但但SGA的的總大大小不不能超超過SGA_MAX_SIZE庫緩沖沖區(qū)存儲最最近使使用的的SQL和和PL/SQL語語句句的信信息允許共共享普普通的的語句句使用最最近最最少使使用(LRU)算法法管理理由兩部部分組組成:共享SQL區(qū)區(qū)共享PL/SQL區(qū)區(qū)大小由由共享享池的的大小小決定定庫高速速緩存存庫高速速緩存存的大大小視視所定定義的的共享享池大大小而而定。。內(nèi)存存分配配是在在對語語句進(jìn)進(jìn)行語語法分分析或或調(diào)用用程序序單元元時(shí)進(jìn)進(jìn)行。。如果果共享享池的的大小小太小小,就就會將將語句句連續(xù)續(xù)重新新載入入庫高高速緩緩存,,從而而使性性能受受到影影響。。庫高高速緩緩存由由算法法LRU來來管管理。。高速速緩存存填滿滿時(shí),,將從從庫高高速緩緩存中中刪除除最近近很少少使用用的執(zhí)執(zhí)行路路徑和和語法法分析析樹,,以便便為新新條目目騰出出空間間。如如果某某些SQL或或PL/SQL語語句未未再次次使用用,它它們最最終會會被刪刪除。。庫高速速緩存存兩個(gè)結(jié)結(jié)構(gòu)::?共共享SQL:共共享SQL為為針對對數(shù)據(jù)據(jù)庫運(yùn)運(yùn)行的的SQL語語句句存儲儲并共共享執(zhí)執(zhí)行計(jì)計(jì)劃和和語法法分析析樹。。下次次運(yùn)行行同一一SQL語語句句時(shí),,這個(gè)個(gè)語句句就能能利用用共享享SQL提提供供的語語法分分析信信息來來加快快其執(zhí)執(zhí)行速速度。。要確確保SQL語語句隨隨時(shí)可可以使使用共共享SQL區(qū)區(qū),文文本、、方案案和綁綁定變變量必必須完完全相相同。。?共共享PL/SQL::共享享PL/SQL區(qū)區(qū)存儲儲并共共享最最近執(zhí)執(zhí)行的的PL/SQL語語句。。經(jīng)過過語法法分析析和編編譯的的程序序單元元和過過程((函數(shù)數(shù)、程程序包包和觸觸發(fā)器器)都都存儲儲在這這個(gè)區(qū)區(qū)中。。數(shù)據(jù)字字典緩緩沖區(qū)區(qū)是數(shù)據(jù)據(jù)庫中中最近近使用用的定定義的的集合合包括數(shù)數(shù)據(jù)庫庫文件件、表表、索索引、、列、、用戶戶、權(quán)權(quán)限以以及其其它數(shù)數(shù)據(jù)庫庫對象象的信信息在解析析階段段,服服務(wù)器器進(jìn)程程查看看數(shù)據(jù)據(jù)字典典決定定對象象的命命名和和有效效的訪訪問將數(shù)據(jù)據(jù)字典典中的的內(nèi)容容放入入內(nèi)存存中可可以改改善查查詢和和DML的的相相應(yīng)時(shí)時(shí)間大小由由共享享池大大小決決定附:DML,DDL,DCL釋義義數(shù)據(jù)定定義語語言(DDL):create、、alter、、drop(創(chuàng)創(chuàng)建、、修改改結(jié)構(gòu)構(gòu)、刪刪除))(其其他::rename)數(shù)據(jù)操操縱語語言(DML):insert、、delete、select、、update(增增、刪刪、查查、改改)((其他他:truncate))數(shù)據(jù)控控制語語言(DCL):grant、revoke((授權(quán)權(quán)、回回收))、setrole事務(wù)控控制::commit、rollback、、savepoint((其他他:locktable、、setconstraint、settransaction)審計(jì)控控制::audit、、noaudit系統(tǒng)控制制:altersystem會話控制制:altersession其他語句句:comment((添加注注釋)、、explainplan、analyze、、validate、、call數(shù)據(jù)庫緩緩沖區(qū)存儲著從從數(shù)據(jù)文文件中提提取的數(shù)數(shù)據(jù)塊的的拷貝當(dāng)獲取或或修改數(shù)數(shù)據(jù)時(shí)可可極大提提高系統(tǒng)統(tǒng)性能使用最近近最少使使用(LRU)算法管管理參數(shù)DB_BLOCK_SIZE決定數(shù)據(jù)據(jù)塊的大大小數(shù)據(jù)庫緩緩沖區(qū)數(shù)據(jù)庫緩緩沖區(qū)高高速緩存存由獨(dú)立的的子高速速緩存組組成:–DB_CACHE_SIZE–DB_KEEP_CACHE_SIZE–DB_RECYCLE_CACHE_SIZE?大小小可以進(jìn)進(jìn)行動態(tài)態(tài)調(diào)整?設(shè)置置DB_CACHE_ADVICE可收集用用于預(yù)測測不同高速緩存存大小行行為的統(tǒng)統(tǒng)計(jì)信息息?統(tǒng)計(jì)計(jì)信息由由V$DB_CACHE_ADVICE顯示數(shù)據(jù)庫緩緩沖區(qū)高高速緩存存調(diào)整數(shù)據(jù)據(jù)庫緩沖沖區(qū)高速速緩存的的大?。海簲?shù)據(jù)庫緩緩沖區(qū)高高速緩存存中每個(gè)個(gè)緩沖區(qū)區(qū)的大小小等于一一個(gè)Oracle塊塊的大小小,它由由DB_BLOCK_SIZE參參數(shù)來指指定。數(shù)數(shù)據(jù)庫緩緩沖區(qū)高高速緩存存由獨(dú)立立的子高高速緩存存組成,,子高速速緩存用于于緩沖區(qū)區(qū)池和多多個(gè)塊大大小。參參數(shù)DB_BLOCK_SIZE確確定主主塊的大大小,主主塊的大大小用于于SYSTEM表空空間。以下三個(gè)個(gè)參數(shù)定定義了數(shù)數(shù)據(jù)庫緩緩沖區(qū)高高速緩存存的大小小:?DB_CACHE_SIZE::只調(diào)整整缺省緩緩沖區(qū)高高速緩存存的大小小,這個(gè)個(gè)參數(shù)始始終存在在且不能能設(shè)置為為零?DB_KEEP_CACHE_SIZE:調(diào)調(diào)整保留留緩沖區(qū)區(qū)高速緩緩存的大大小,用用于保留留內(nèi)存中中很可能能會重新新使用的的塊?DB_RECYCLE_CACHE_SIZE:調(diào)調(diào)整循環(huán)環(huán)緩沖區(qū)區(qū)高速緩緩存的大大小,用用于刪除除內(nèi)存中中重新使使用的可可能性很很小的塊塊數(shù)據(jù)庫緩緩沖區(qū)高高速緩存存(續(xù)))緩沖區(qū)高高速緩存存咨詢功功能:緩沖區(qū)高高速緩存存咨詢功功能可以以啟用和和禁用統(tǒng)統(tǒng)計(jì)信息息的收集集,這些些統(tǒng)計(jì)信信息用于于預(yù)測不不同高速緩存大大小的行行為。這這些統(tǒng)計(jì)計(jì)信息所所提供的的信息可可以幫助助您針對對具體的的工作量量,調(diào)整整數(shù)據(jù)庫緩沖區(qū)區(qū)高速緩緩存的大大小,以以達(dá)到最最佳性能能。緩沖沖區(qū)高速速緩存咨咨詢信息息通過V$DB_CACHE_ADVICE視視圖收集集和顯示示??梢酝ㄟ^過初始化化參數(shù)DB_CACHE_ADVICE啟啟用緩緩沖區(qū)高高速緩存存咨詢功功能。這這個(gè)參數(shù)數(shù)是一個(gè)動態(tài)參參數(shù),可可以使用用ALTERSYSTEM來更更改??煽晒┦褂糜玫娜齻€(gè)個(gè)值是OFF、、ON和和READY。DB_CACHE_ADVICE參數(shù)值::OFF::咨詢功功能關(guān)閉閉,并且且沒有為為咨詢功功能分配配內(nèi)存ON:咨咨詢功能能打開,,并產(chǎn)生生CPU和內(nèi)內(nèi)存開銷銷如果參數(shù)數(shù)處于OFF狀狀態(tài),,在嘗試試將它設(shè)設(shè)置為ON狀狀態(tài)時(shí)會會產(chǎn)生ORA-4031錯(cuò)錯(cuò)誤:當(dāng)當(dāng)參數(shù)切切換到ON時(shí),,無法從從共享池池分配內(nèi)內(nèi)存。如如果參數(shù)數(shù)處于READY狀狀態(tài),則則能正確確地設(shè)置置為ON,因因?yàn)榇藭r(shí)時(shí)已為咨咨詢功能能分配內(nèi)內(nèi)存。READY:咨咨詢功能能關(guān)閉,,但已經(jīng)經(jīng)為咨詢詢功能分分配內(nèi)存存。在實(shí)實(shí)際打開開咨詢功功能前分分配內(nèi)存存可以避免產(chǎn)產(chǎn)生ORA-4031錯(cuò)誤誤。如果果將參數(shù)數(shù)從OFF狀狀態(tài)直接接切換到到ON,,可能會會產(chǎn)生ORA-4031錯(cuò)誤誤。重做日志志緩沖區(qū)區(qū)記錄所有有對數(shù)據(jù)據(jù)庫數(shù)據(jù)據(jù)的改變變主要目的的是恢復(fù)復(fù)修改記錄錄在這里里叫重做做條目重做條目目包含重重新構(gòu)造造或重做做改變的的信息參數(shù)LOG_BUFFER決定其其大小重做日志志緩沖區(qū)區(qū)重做日志志緩沖區(qū)區(qū)重做日志志緩沖區(qū)區(qū)是一個(gè)個(gè)循環(huán)緩緩沖區(qū),,它包含含對數(shù)據(jù)據(jù)文件塊塊所做的的各種更更改。此此信息存存儲在重重做條目目中。重重做條目目包含將將數(shù)據(jù)恢恢復(fù)到使使用INSERT、UPDATE、、DELETE、CREATE、ALTER、、或或DROP操操作作進(jìn)進(jìn)行行更更改改前前的的狀狀態(tài)態(tài)所所需需要要的的信信息息。。調(diào)整整重重做做日日志志緩緩沖沖區(qū)區(qū)的的大大小小::重做做日日志志緩緩沖沖區(qū)區(qū)的的大大小小由由初初始始化化參參數(shù)數(shù)LOG_BUFFER定定義義。。注::Oracle9i數(shù)據(jù)據(jù)庫庫性性能能優(yōu)優(yōu)化化課課程程將將詳詳細(xì)細(xì)介介紹紹調(diào)調(diào)整整重重做做日日志志緩緩沖沖區(qū)區(qū)的的大大小小。。有有關(guān)關(guān)重重做做日日志志文文件件的的詳詳細(xì)細(xì)信信息息,,請請參參見見““管管理理重重做做日日志志文文件件””這這一一課課。。大池池(大大型型共共享享池池)SGA中中一一塊塊可可選選的的內(nèi)內(nèi)存存區(qū)區(qū)域域減輕輕共共享享池池的的負(fù)負(fù)擔(dān)擔(dān)不使使用用最最近近最最少少使使用用(LRU)清清單單參數(shù)數(shù)LARGE_POOL_SIZE決決定定其其大大小小可以以動動態(tài)態(tài)改改變變大大小小用于于::–共共享享服服務(wù)務(wù)器器的的會會話話內(nèi)內(nèi)存存(UGA)–I/O服務(wù)務(wù)器器進(jìn)進(jìn)程程–備備份份和和恢恢復(fù)復(fù)操操作作或或RMAN–并并行行執(zhí)執(zhí)行行消消息息緩緩沖沖區(qū)區(qū)–將將PARALLEL_AUTOMATIC_TUNING設(shè)置置為為TRUE大型型共共享享池池通過過從從大大型型共共享享池池為為共共享享服服務(wù)務(wù)器器、、OracleXA或或并并行行查查詢詢緩緩沖沖區(qū)區(qū)分分配配會會話話內(nèi)內(nèi)存存,,Oracle可可將將共共享享池池主主要要用用于于高高速速緩緩存存共共享享的的SQL語語句句。。這這樣樣,,便便減減輕輕了了共共享享池池中中各各區(qū)區(qū)的的工工作作負(fù)負(fù)擔(dān)擔(dān)。。共共享享池池?zé)o無需需再再提提供供內(nèi)內(nèi)存存以以高高速速緩緩存存SQL語語法法分分析析樹樹,,來來支支持持共共享享服服務(wù)務(wù)器器會會話話信信息息、、I/O以以及及備備份份和和恢恢復(fù)復(fù)進(jìn)進(jìn)程程。。由由于于增增減減共共享享SQL高高速速緩緩存存的的開開銷銷降降低低,,性性能能得得以以提提高高。。備份份和和恢恢復(fù)復(fù)::如果果設(shè)設(shè)置置了了BACKUP_DISK_IO=n和和BACKUP_TAPE_IO_SLAVE=TRUE參參數(shù)數(shù),,則則恢恢復(fù)復(fù)管管理理器器(RMAN)將將使使用用大大型型共共享享池池。。如如果果大大型型共共享享池池已已經(jīng)經(jīng)配配置置,,但但不不夠夠大大,,則則在在大大型型共共享享池池中中分分配配內(nèi)內(nèi)存存就就會會失失敗敗。。RMAN將將錯(cuò)錯(cuò)誤誤消消息息寫寫入入警警報(bào)報(bào)日日志志文文件件,,而而且且不不使使用用I/O操操作作進(jìn)進(jìn)行行備備份份或或恢恢復(fù)復(fù)操操作作。。并行行執(zhí)執(zhí)行行::如果果將將PARALLEL_AUTOMATIC_TUNING設(shè)設(shè)置置為為TRUE,,將將使使用用大大型型共共享享池池。。否否則則,,將將把把這這些些緩緩沖沖區(qū)區(qū)分分配配至至共共享享池池。。大型型共共享享池池((續(xù)續(xù)))調(diào)整整大大型型共共享享池池的的大大小小::大型型共共享享池池的的大大小小由由LARGE_POOL_SIZE參參數(shù)數(shù)定定義義,,單單位位是是字字節(jié)節(jié)。。該該參參數(shù)數(shù)不不是是動動態(tài)態(tài)參參數(shù)數(shù)。。大型型共共享享池池和和LRU列表表::大型型共共享享池池并并不不包包含含LRU列列表表。。它它與與使使用用LRU列列表表的的共共享享池池中中的的保保留留空空間間不不同同。。Java池池為Java操操作作提提供供內(nèi)內(nèi)存存如果果安安裝裝并并使使用用Java,,則則是是必必需需的的參數(shù)數(shù)JAVA_POOL_SIZE決定定其其大大小小Java池池Java池池是是一一個(gè)個(gè)可可選選設(shè)設(shè)置置,,但但如如果果安安裝裝并并使使用用Java,,則則需需要要使使用用Java池池。。Java池池大大小小可可以以使使用用JAVA_POOL_SIZE參參數(shù)數(shù)設(shè)設(shè)置置,,單單位位為為字字節(jié)節(jié)。。在在Oracle9i,Java池池的的缺缺省省大大小小是是24MB。。程序序全全局局區(qū)區(qū)為每每個(gè)個(gè)連連接接到到Oracle數(shù)數(shù)據(jù)據(jù)庫庫用用戶戶的的進(jìn)進(jìn)程程提提供供內(nèi)內(nèi)存存進(jìn)程程開開始始時(shí)時(shí)分分配配進(jìn)程程結(jié)結(jié)束束時(shí)時(shí)釋釋放放每個(gè)個(gè)進(jìn)進(jìn)程程獨(dú)獨(dú)享享自自己己的的內(nèi)內(nèi)存存用戶戶進(jìn)進(jìn)程程PGA服務(wù)務(wù)器器進(jìn)進(jìn)程程程序序全全局局區(qū)區(qū)(PGA)程序序全全局局區(qū)區(qū)或或進(jìn)進(jìn)程程全全局局區(qū)區(qū)(PGA)是是內(nèi)內(nèi)存存區(qū)區(qū),,它它包包含含有有關(guān)關(guān)單單個(gè)個(gè)服服務(wù)務(wù)器器進(jìn)進(jìn)程程或或單單個(gè)個(gè)后后臺臺進(jìn)進(jìn)程程的的數(shù)據(jù)據(jù)和和控控制制信信息息。。PGA在在創(chuàng)創(chuàng)建建進(jìn)進(jìn)程程時(shí)時(shí)分分配配,,并并在在終終止止進(jìn)進(jìn)程程時(shí)時(shí)回回收收。。與與由由若若干干個(gè)個(gè)進(jìn)進(jìn)程程共共享享的的SGA相相比比,,PGA是是僅僅供供一一個(gè)個(gè)進(jìn)進(jìn)程程使使用用的的區(qū)區(qū)。。PGA的內(nèi)容:PGA內(nèi)存存的內(nèi)容會因因不同情況而而變化,這取取決于例程是是在專用服務(wù)務(wù)器配置還是是在共享服務(wù)務(wù)器配置下運(yùn)行行。一般來講講,PGA內(nèi)內(nèi)存包括下下列組件:?專用SQL區(qū):包包含綁定信息息和運(yùn)行時(shí)內(nèi)內(nèi)存結(jié)構(gòu)之類類的數(shù)據(jù)。發(fā)發(fā)出SQL語語句的每個(gè)個(gè)會話均擁有有一個(gè)專用SQL區(qū)。。提交同一SQL語句句的每個(gè)用戶戶都擁有自己己的使用單個(gè)個(gè)共享SQL區(qū)的專用用SQL區(qū)區(qū)。因此,許許多專用SQL區(qū)都與與同一個(gè)共享享SQL區(qū)區(qū)相關(guān)聯(lián)。一個(gè)游標(biāo)的專專用SQL區(qū)區(qū)可以分成成以下兩個(gè)區(qū)區(qū):–永久區(qū)::包含綁定信信息,并且只只在關(guān)閉游標(biāo)標(biāo)時(shí)釋放–運(yùn)行時(shí)區(qū)區(qū):在執(zhí)行請請求時(shí)的第一一步創(chuàng)建。對對于INSERT、UPDATE和和DELETE命令,,該區(qū)在執(zhí)行行語句后釋放放,對于查詢詢操作,該區(qū)區(qū)只在提取所所有行或取消消查詢后釋放放程序全局區(qū)((續(xù))?專用SQL區(qū)(續(xù)續(xù)):專用SQL區(qū)的的位置取決于于為會話建立立的連接類型型。在專用服服務(wù)器環(huán)境中中,專用SQL區(qū)位于于各自服務(wù)器器進(jìn)程的PGA中。在在共享服務(wù)器器環(huán)境中,專專用SQL區(qū)區(qū)位于SGA中。管管理專用SQL區(qū)是用用戶進(jìn)程的職職責(zé)。用戶進(jìn)進(jìn)程可以分配配的專用SQL區(qū)的數(shù)數(shù)目始終由初初始化參數(shù)OPEN_CURSORS來限制制。該參數(shù)的的缺省值是50。?會話內(nèi)存存:包含為保保留會話變量量以及與該會會話相關(guān)的其其它信息而分分配的內(nèi)存。。對于共享服服務(wù)器環(huán)境,,該會話是共共享的而不是是專用的。?SQL工工作區(qū):用用于大量占用用內(nèi)存的操作作,如排序、、散列聯(lián)接、、位圖合并和和位圖創(chuàng)建。。工作區(qū)的大小小可進(jìn)行控制制和調(diào)整。自O(shè)racle9i起,工作區(qū)的的大小可以進(jìn)進(jìn)行自動的全全局管理。要要實(shí)現(xiàn)這種功功能,可將WORKAREA_SIZE_POLICY參參數(shù)設(shè)置成成缺省情況下下的AUTO,同時(shí)設(shè)置置PGA_AGGREGATE_TARGET初始化參參數(shù)。DBA可以對PGA_AGGREGATE_TARGET參參數(shù)進(jìn)行設(shè)置置,以指定該該例程可以使使用的PGA內(nèi)存的目目標(biāo)聚集數(shù)目目。此參數(shù)只只是一個(gè)指標(biāo)標(biāo),可以由DBA在例例程一級動態(tài)態(tài)修改。設(shè)置置值的單位可可以是字節(jié)數(shù)數(shù)、千字節(jié)數(shù)數(shù)、兆字節(jié)數(shù)數(shù)或吉字節(jié)數(shù)數(shù)。設(shè)置完這這些參數(shù)后,,工作區(qū)的大大小即可自動動調(diào)整,這些些會話將忽略略所有的*_AREA_SIZE參參數(shù)。在Oracle9i之前的版本中中,由DBA控制著SQL工作作區(qū)的最大大大小,方法是是設(shè)置以下參參數(shù):SORT_AREA_SIZE、HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE和和CREATE_BITMAP_AREA_SIZE。。設(shè)置這些參參數(shù)是很困難難的,因?yàn)楣すぷ鲄^(qū)的最大大大小在理論論上是基于輸輸入的數(shù)據(jù)大大小以及系統(tǒng)統(tǒng)中活動工作作區(qū)的數(shù)目來來選擇的。但但是,以上兩兩種因素在不不同工作區(qū)和和不同時(shí)間差差別很大。因因此,很難在在最佳環(huán)境下下調(diào)整這些參參數(shù)程序全局區(qū)((續(xù))專用服務(wù)器和和共享服務(wù)器器之間的內(nèi)存存分配差異::PGA內(nèi)存存的內(nèi)容會因因不同情況而而變化,這取取決于例程是是在專用服務(wù)務(wù)器配置下還還是在共享服服務(wù)器配置下下運(yùn)行。一般般來講,PGA內(nèi)存包包括下列組件件:進(jìn)程結(jié)構(gòu)Oracle有三種不不同類型的進(jìn)進(jìn)程:用戶進(jìn)程:開開始于一個(gè)個(gè)數(shù)據(jù)庫用戶戶請求連接Oracle服務(wù)器服務(wù)器進(jìn)程:連接到Oracle實(shí)例、、開始于用戶戶建立起一個(gè)個(gè)會話后臺進(jìn)程:Oracle實(shí)例建建立就建立用戶進(jìn)程同Oracle服務(wù)器器進(jìn)行交互請請求的程序必需先建立一一個(gè)連接并不直接同Oracle服務(wù)器進(jìn)進(jìn)行交互數(shù)據(jù)庫用戶服務(wù)器進(jìn)程用戶進(jìn)程連接已建立用戶進(jìn)程需要從數(shù)據(jù)庫庫請求信息的的數(shù)據(jù)庫用戶戶必須先建立立與Oracle服務(wù)務(wù)器的連接。。連接由SQL*Plus這類的的數(shù)據(jù)庫接口口工具請求,,并開始用戶戶進(jìn)程。用戶戶進(jìn)程并不與與Oracle服務(wù)器器直接進(jìn)行交交互操作,而而是通過用戶戶程序接口(UPI)生生成各種調(diào)調(diào)用。用戶程程序接口則可可以創(chuàng)建會話話并啟動服務(wù)務(wù)器進(jìn)程。服務(wù)器進(jìn)程直接同Oracle服服務(wù)器進(jìn)行交交互的程序產(chǎn)生調(diào)用并返返回結(jié)果可以是專用的的也可以是共共享的連接已建立會話已產(chǎn)生數(shù)據(jù)庫用戶用戶進(jìn)程服務(wù)器進(jìn)程Oracle服務(wù)器服務(wù)器進(jìn)程用戶建立連接接后,服務(wù)器器進(jìn)程便會啟啟動,以處理理用戶進(jìn)程的的請求。服務(wù)務(wù)器進(jìn)程可以以是專用服務(wù)務(wù)器進(jìn)程或共共享服務(wù)器進(jìn)進(jìn)程。在專用用服務(wù)器環(huán)境境中,服務(wù)器器進(jìn)程只處理理一個(gè)用戶進(jìn)進(jìn)程的請求。。用戶進(jìn)程斷斷開連接后,,服務(wù)器進(jìn)程程就會終止。。在共享服務(wù)務(wù)器環(huán)境中,,服務(wù)器進(jìn)程程將處理多個(gè)個(gè)用戶進(jìn)程的的請求。服務(wù)務(wù)器進(jìn)程可以以通過Oracle程程序接口(OPI)與與Oracle服務(wù)器器進(jìn)行通信。。注:Oracle9i數(shù)據(jù)庫性能優(yōu)優(yōu)化課程將詳詳細(xì)介紹服務(wù)務(wù)器進(jìn)程在專專用服務(wù)器環(huán)環(huán)境與共享服服務(wù)器環(huán)境中中的分配情況況。后臺進(jìn)程維護(hù)并加強(qiáng)物物理結(jié)構(gòu)和內(nèi)內(nèi)存結(jié)構(gòu)之間間的聯(lián)系:必需的后臺進(jìn)進(jìn)程:DBWnPMONCKPTLGWRSMON可選的后臺進(jìn)進(jìn)程:ARCnLMDnQMNnCJQ0LMONRECODnnnLMSSnnnLCKnPnnn后臺進(jìn)程Oracle體系結(jié)構(gòu)構(gòu)有五個(gè)必備備的后臺進(jìn)程程,本課將詳詳細(xì)介紹這些些進(jìn)程。除了了必備的后臺臺進(jìn)程列表以以外,Oracle體體系結(jié)構(gòu)中還還有很多可選選的后臺進(jìn)程程。如果選擇擇使用這些可可選的后臺進(jìn)進(jìn)程,它們便便會啟動。除除了ARCn后臺進(jìn)程程之外,這些些可選的進(jìn)程程不在本課所所涉及的范圍圍之內(nèi)。下面面列出了一些些可選的后臺臺進(jìn)程:?RECO:恢復(fù)程序序?QMNn:高級排隊(duì)隊(duì)?ARCn:歸檔程序序?LCKn:RAC鎖管理器器–例程鎖鎖?LMON:RACDLM監(jiān)監(jiān)控程序–全全局鎖?LMDn:RACDLM監(jiān)監(jiān)控程序–遠(yuǎn)遠(yuǎn)程鎖?CJQ0:協(xié)調(diào)程序序作業(yè)隊(duì)列后后臺進(jìn)程?Dnnn:調(diào)度程序序?Snnn:共享服務(wù)務(wù)器?Pnnn:并行查詢詢從屬數(shù)據(jù)庫寫入器器(DBWn)DBWn在以以下情況下將將數(shù)據(jù)寫入磁磁盤:發(fā)生檢查點(diǎn)臟的緩沖區(qū)達(dá)達(dá)到闕值沒有空閑空間間超時(shí)把表空間改為為只讀把表空間改為為脫機(jī)刪除或截?cái)嘁灰粋€(gè)表把表空間改為為開始備份實(shí)例SGA控制文文件數(shù)據(jù)文文件重做日日志文文件數(shù)據(jù)庫庫DBWn數(shù)據(jù)庫庫緩沖沖區(qū)數(shù)據(jù)庫庫寫入入器(DBWn)文件,直到到發(fā)生生下列列事件件之一一:?增增量或或正常常檢查查點(diǎn)?灰灰數(shù)據(jù)據(jù)緩沖沖區(qū)的的數(shù)量量達(dá)到到閾值值?進(jìn)進(jìn)程掃掃描指指定數(shù)數(shù)量的的塊而而無法法找到到任何何空閑閑緩沖沖區(qū)時(shí)時(shí)?出出現(xiàn)超超時(shí)?實(shí)實(shí)時(shí)應(yīng)應(yīng)用集集群(RealApplicationClusters,RAC)環(huán)環(huán)境境中出出現(xiàn)ping請請求求?使使一般般表空空間或或臨時(shí)時(shí)表空空間處處于脫脫機(jī)狀狀態(tài)?使使表空空間處處于只只讀模模式?刪刪除或或截?cái)鄶啾?執(zhí)執(zhí)行ALTERTABLESPACE表表空空間名名BEGINBACKUP操操作日志寫寫入器器(LGWR)LGWR在以下下情況況下將將緩存存寫入入磁盤盤:用戶發(fā)發(fā)出提提交重做日日志緩緩從區(qū)區(qū)的三三分之之一被被占用用重做記記錄達(dá)達(dá)到1MB每過三三秒在DBWn將將暫存存寫入入磁盤盤前實(shí)例SGA控制文文件數(shù)據(jù)文文件重做日日志文文件數(shù)據(jù)庫庫重做日日志緩沖區(qū)區(qū)DBWnLGWR日志寫寫入器器(LGWR)日志寫寫入器器(LGWR)LGWR在在下下列情情況下下執(zhí)行行從重重做日日志緩緩沖區(qū)區(qū)到重重做日日志文文件的的連續(xù)續(xù)寫入入:?當(dāng)當(dāng)提交交事務(wù)務(wù)時(shí)?當(dāng)當(dāng)重做做日志志緩沖沖區(qū)的的三分分之一一填滿滿時(shí)?當(dāng)當(dāng)重做做日志志緩沖沖區(qū)中中記錄錄了超超過1MB的的更更改時(shí)時(shí)?在在DBWn將將數(shù)據(jù)據(jù)庫緩緩沖區(qū)區(qū)高速速緩存存中修修改的的塊寫寫入數(shù)數(shù)據(jù)文文件以以前?每每隔三三秒因?yàn)榛只謴?fù)操操作需需要重重做,,所以以LGWR只只在重重做寫寫入磁磁盤后后確認(rèn)認(rèn)提交交操作作。LGWR還還可可以調(diào)調(diào)用DBWn來來寫寫入數(shù)數(shù)據(jù)文文件。。系統(tǒng)監(jiān)監(jiān)視器器(SMON)功能:實(shí)例恢恢復(fù)接合空空閑空空間處理臨臨時(shí)段段控制文文件數(shù)據(jù)文文件重做日日志文文件數(shù)據(jù)庫庫實(shí)例SGASMON系統(tǒng)監(jiān)監(jiān)控程程序(SMON)如果Oracle例例程程失敗敗,那那么SGA中中尚未未寫入入磁盤盤的所所有信信息都都會丟丟失。。例如如,操操作系系統(tǒng)的的失敗敗導(dǎo)致致例程程失敗敗。例例程丟丟失后后,后后臺進(jìn)進(jìn)程SMON在在數(shù)數(shù)據(jù)庫庫重新新打開開時(shí)自自動執(zhí)執(zhí)行例例程恢恢復(fù)。?;謴?fù)復(fù)例程程需要要執(zhí)行行以下下步驟驟:1.前前滾滾以恢恢復(fù)尚尚未記記入數(shù)數(shù)據(jù)文文件但但已經(jīng)經(jīng)記入入聯(lián)機(jī)機(jī)重做做日志志中的的數(shù)據(jù)據(jù)。由由于例例程失失敗時(shí)時(shí)SGA的的丟丟失,,所以以尚未未將這這些數(shù)數(shù)據(jù)寫寫入磁磁盤。。在該該進(jìn)程程中,,SMON讀讀取重重做日日志文文件并并將重重做日日志中中記錄錄的更更改應(yīng)應(yīng)用到到數(shù)據(jù)據(jù)塊中中。由由于提提交的的所有有事務(wù)務(wù)處理理都已已寫入入重做做日志志,因因此該該進(jìn)程程完全全恢復(fù)復(fù)了這這些事事務(wù)處處理。。2.打開開數(shù)據(jù)庫以以便用戶可可以登錄。。未被未恢恢復(fù)事務(wù)處處理鎖定的的任何數(shù)據(jù)據(jù)都立即可可用。3.回退退未提交的的事務(wù)處理理。它們由由SMON回退,,或在訪問問鎖定的數(shù)數(shù)據(jù)時(shí)由單單個(gè)服務(wù)器器進(jìn)程回退退。SMON也也執(zhí)行一一些空間維維護(hù)功能::?它聯(lián)合合或合并數(shù)數(shù)據(jù)文件中中空閑空間間的鄰近區(qū)區(qū)域。?它回收收臨時(shí)段,,將它們作作為數(shù)據(jù)文文件中的空空閑空間返返回。進(jìn)程監(jiān)視器器(PMON)通過以下操操作清除失失敗進(jìn)程:回滾事務(wù)釋放鎖釋放其他資資源重新啟動死死的調(diào)度程程序PGA區(qū)區(qū)實(shí)例SGAPMON進(jìn)程監(jiān)視器器(PMON)進(jìn)程失敗后后,后臺進(jìn)進(jìn)程PMON通過過下面的方方法進(jìn)行清清理:?回退用用戶的當(dāng)前前事務(wù)處理理?釋放當(dāng)當(dāng)前保留的的所有表鎖鎖或行鎖?釋放用用戶當(dāng)前保保留的其它它資源?重新啟啟動已失效效的調(diào)度程程序Oracle9i數(shù)據(jù)庫管理理基礎(chǔ)II課程中詳細(xì)細(xì)介紹了調(diào)調(diào)度程序檢查點(diǎn)(CKPT)負(fù)責(zé):在檢查點(diǎn)時(shí)時(shí)通知DBWn用檢查點(diǎn)信信息更新數(shù)數(shù)據(jù)文件的的頭部用檢查點(diǎn)信信息更新控控制文件的的頭部控制文件數(shù)據(jù)文件重做日志文件數(shù)據(jù)庫實(shí)例SGADBWnLGWRCKPT檢查點(diǎn)(CKPT)每隔三秒,,CKPT進(jìn)程就就會向控制制文件存儲儲數(shù)據(jù),以以標(biāo)識重做做日志文件件中恢復(fù)操操作的起始始位置,該該操作稱作作檢查點(diǎn)。。檢查點(diǎn)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論