您好,登錄后才能下訂單哦!
本篇內容主要講解“Oracle的體系結構和物理、邏輯存儲結構介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Oracle的體系結構和物理、邏輯存儲結構介紹”吧!
說到Oracle,Oracle是什么呢?接觸過Mysql,SQL Server的人可能下意識就認為不就一個關系型數據庫么?其實不然,太籠統的概念不能讓我們清醒的看懂Oracle的結構,從嚴格意義上來講Oracle由兩部分組成:
實例是數據庫啟動時初始化的一組進程和內存結構,數據庫則是指用戶存儲數據的一些文件。實例是伴隨著數據庫的啟動而存在的,它的存在是為了高效訪問和處理數據庫中的文件,以及保證故障時數據零丟失。正是如此,才會有啟動和關閉實例、加載卸載數據庫這些術語。
如果上面那些讓你對Oracle有了一點淺顯的認知,那么請看下圖:
如你所見,以中間空白的為線,上面粉嫩嫩的部分便是Oracle實例部分,下面的便是數據庫部分,那接下來我們便逐個進行剖析。
顧名思義,物理存儲結構就是一些能看得見,實際存在的東西,大白話就是一群文件組成了Oracle的物理存儲結構。如圖
黃黃的部分代表著Oracle的核心組成,分別是數據文件、控制文件以及重做日志文件。除此之外,物理存儲結構還包括著一些其他文件,例如參數文件、密碼文件以及歸檔日志文件等等。下面將主要介紹這些文件。
數據文件(Data files)
數據文件是指存儲數據庫中數據的文件,這些“xxxx.dbf”存儲著系統數據、數據字典數據、索引數據以及用戶存儲的數據,所以這部分也是數據庫最核心的部分。數據文件大小是靈活的,可以通過設置讓它自動擴展,避免了數據量過大但是數據文件空間有限這種狀況;數據文件是專屬于一個數據庫的,也專屬于一個表空間的,但是一個表空間卻可以擁有多個數據文件。如果用戶讀取的數據不在緩沖區內,便會從數據文件中將相對應的數據放到緩沖區中,再進行讀取。這部分內容會在之后詳細分析。
控制文件(Control files)
控制文件是一個很小的二進制文件,這些“xxx.CTL”中存放的數據庫的”物理結構信息”,這些物理結構信息包括:數據庫的名字、數據文件和聯機日志文件的名字及位置.、創建數據庫時的時間戳。數據庫在啟動的時候需要訪問控制文件,從中讀取數據文件、日志文件的信息;隨著Oracle的運行,數據庫將不斷更新控制文件;相對應的一旦控制文件損壞,數據庫便會發生運行故障。所以為了更好的保護數據庫,我們可以鏡像控制文件,特別是在數據庫結構發生變化時,要對其進行備份,保持控制文件的一致性。
重做日志文件(Redo Log files)
重做日志文件用于記錄數據庫所有修改信息 的文件,小名叫做日志文件,這些“.log”文件既可以保證數據庫的安全,又可以實現數據庫的備份和恢復。為了防止數據出現意外丟失,oracle也允許鏡像日志文件,一個日志與其鏡像出來的文件構成一個日志文件組,但是鏡像文件數量不能超過5個。正所謂所有的雞蛋不要放在一個籃子里,同一組的文件最好保存在不同的磁盤中,防止物理損壞造成不必要的麻煩。
參數文件(Parameter file)
參數文件記錄了Oracle數據庫的基本參數信息,主要包括數據庫名、控制文件所在路徑等。參數文件包括文本參數文件(PFILE)和服務器參數文件(SPFILE),前者為init.ora,后者為spfile.ora或spfile.ora的二進制文件。在數據庫啟動的時候就會讀取參數文件,然后根據參數文件中的參數來分配SGA并啟動一系列的后臺進程。
歸檔日志文件(Archived Log files)
歸檔日志文件用來對寫滿的日志文件進行保存復制。其目的是為了長期保存日志以便于恢復。
在oracle數據庫中,對數據庫操作會涉及邏輯存儲結構,它是從邏輯角度分析數據庫的構成,描述的是數據庫內部數據的組織與管理方式,與操作系統沒有關系。
如圖,可以明顯的看出數據庫邏輯結構主要包括表空間、段、區和數據塊,所有的結構都是一對多的關系,一個數據庫可以擁有多個表空間,一個表空間擁有多個段等等。
表空間
表空間是Oracle最大的邏輯存儲結構,與物理上的數據文件相對應,但是一個表空間可以擁有多個數據文件,這里就不一一贅述了。
段
段是一組盤區,它是一個獨立的邏輯存儲結構,用于存儲具有獨立存儲結構對象的全部數據。段一般是數據庫終端用戶處理最小的存儲單位,當段的數據區已滿,Oracle為其分配另一個數據區,段的數據區在磁盤上可能是不連續的。根據段所存儲的特征,可將其分為5種類型:
數據段:用來存儲表中所有數據;在Oracle中,每當用戶創建一個表時,系統將自動在默認表空間里分配一個與表名稱相同的數據段,方便存儲該表的所有數據。
索引段:用來存儲表中索引的所有數據;在Oracle中,每當用戶創建索引時,系統將自動在默認表空間創建一個與索引名稱相同的索引段,方便存儲該索引的所有數據。
臨時段: 用于存儲表排序或匯總時產生的臨時數據;每當用戶:
臨時表空間進行Order by 進行排列或匯總時,系統在該用戶的臨時表空間自動創建一個臨時段,在操作結束時自動消除。
LOB段:LOB用來存儲表中大型數據對象,例如CLOB與BLOB
回退段:用于存儲用戶數據被修改之前的位置和值;當與要對用戶的數據進行回退操作時,就要使用回退段。
區
區是Oracle存儲分配的最小單位,它是由一個或多個數據塊組成的。一個或多個區組成一個段,也就是說段的大小都是由區的個數來決定。當一個段的空間使用完之后,Oracle會自動為該字段分配成一個新的區。
塊
塊是用來管理存儲空間的最基本的單位,也是最小的邏輯存儲單位。塊的大小由初始化參數db_block_size來決定,不同的Oracle版本的大小是不同的,但是數據庫一旦創建,其大小便不可更改。雖然每個數據塊可以存儲不同類型的數據,但是每個數據塊都具有一個相同的結構,如圖:
1.塊頭
包含了該數據塊一般的屬性信息,如數據塊的物理地址、所屬段類型等
2.表目錄
如果數據塊中存儲的數據時某個表的數據,則這里存放該表的信息
3.行目錄
用來存儲數據塊中有效的行信息
4.空余空間
指數據塊還沒有使用的存儲空間
5.行空間
表或者索引的數據存儲在行空間中,所以行空間是數據塊中已經使用的存儲空間。
所以從描述就可以看出來,一個數據塊的容量其實就是行空間與空余空間的容量總和。
如圖所示,Oracle實例結構分為左右兩部分,一個叫做SGA,稱作系統全局區;一個叫做PGA,稱作程序全局區。SGA是系統分配的一組共享的內存結構,用來實現對數據庫數據的管理和操作;PGA是用戶會話專有的內存區域,每個服務進程、后臺進程都有一個PGA。其實從上圖可以看出,實例和數據庫本來是八竿子打不到一起的兩個東西,但是正好中間出來一個媒婆:實例的后臺進程,也就是圖中示例部分橢圓形一塊一塊的那個將兩者溝通到了一起。下面先對SGA進行分析描述,其中也會涉及到相對應的進程也將進行分析:
如圖:
數據庫緩沖區緩存(database buffer cache)
-database buffer cache又叫buffer cache,它用來存儲從數據文件中讀取到的數據塊的鏡像。在這塊區域Oracle將進行執行sql的工作,所以當更新數據時,用戶會話先會掃描緩沖區,不會去直接在磁盤上操作,這樣就會減少磁盤的IO,從而大幅度提升系統的性能。
舉個例子
select user_id,date from customer where user——id>10;
當oracle在執行這個SQL語句的時候,首先由對應的用戶進程發送給服務器,監聽收到請求后,便創建一個相對應的服務器進程,然后該進程便會先掃描緩沖區是否存在user_id>10 的數據塊,如果存在,相關信息便會傳到PGA中處理,最后顯示給用戶;如果沒有命中,該進程便會將磁盤上對應的數據塊復制到緩沖區中,再執行剩余的操作。
但是有些人會想,如果一直查緩存中不存在的數據塊,那磁盤上的數據塊不全都要復制到緩沖區了么,那不是更快?其實當你把數據塊復制到緩沖區中,無形中增加了緩沖區的負荷,而緩沖區的存在意義便是提高系統的性能,所以便會用LRU這個算法管理著緩沖區內存空間,使其在維持在合理的區間內擁有最高的性能。
在執行一些DML語句的情況下,例如update一個XXX,緩沖區也是如上操作,先掃描緩沖區,緩存命中,便直接更新;緩存沒命中,便把磁盤相對應的數據塊復制到緩沖區進行更新。這時候問題就來了,更新完緩沖區數據,磁盤數據不是沒變么?
這個時候就輪到關鍵人物出場了:DBWn。
DBWn
DBWn又稱數據庫寫進程,他負責的就是將更新完的緩沖區數據寫入磁盤中。也就是數據庫中的數據文件中。但是這個進程是公認的懶進程,它不是每當緩沖區寫入數據的時候便會自動的將其寫入磁盤中當下面這些情況發生時,這個懶進程將會執行寫的任務:
沒有可以寫入的緩存空間
臟緩存達到限制(會導致搜索時間過長)1/4滿
最晚三秒鐘:最晚三秒會執行一次寫入
遇到檢查點:遇到這個checkpoint便會執行寫程序。
表空間熱備份的時候
表空間離線、只讀狀態
執行Drop操作的時候
從以上這些時機更能明確的看出,DBWn不是隨時隨地的執行,并且跟commit操作沒任何關系。其實這種懶進程更是能體現緩沖區存在的意義,減少磁盤IO對系統的壓力,所以“懶”還是有“懶”的好處的。
如果在DBWn在未執行的時候,大量的臟數據還在緩沖區并沒有寫入磁盤的時候,突然天降橫禍,打雷斷電了,數據就丟了?這時候就要引出重做日志和其相對應的后臺進程來解決這個問題。
日志緩沖區(Redo log buffer)
當我們在執行一些DML操作時,產生的變更向量會寫到重做日志文件中去,一旦上面提到的情況發生,例如打雷啊、斷電啊使系統突然宕掉,database buffer cache中的臟數據還沒等到DBWn將它寫入磁盤的時候;當系統重新啟動,這時候就會有一個實例恢復的過程,而重做日志中的那些變更向量便會發揮作用,使數據庫保持與宕機前的一瞬間的數據一致;常用的一些備份恢復操作原理和這個一樣:提取備份集—>應用重做日志文件中的變更記錄。
日志文件用于記錄對數據庫的更改,所以為了減少磁盤IO,減少用戶等待時間,數據庫的修改操作信息要先寫到日志緩沖區中,當日志緩沖區達到一定的限度時,會被日志寫入進程LGWR寫入磁盤中。相對database buffer cache來說,這個日志緩沖區對數據庫的性能影響較小。
LGWR
LGWR又稱作日志寫入器。 顧名思義,日志寫入器就是將日志緩沖區的臟數據寫進磁盤中,相對于DBWn這種“懶”進程,LGWR可是相對“勤快”的多
commit寫入
日志緩沖區占用率1/3
DBWn要寫入臟緩沖區前
數據庫緩沖區緩存和日志緩沖區都是為了提高性能,避免頻繁IO而存在的。日志緩沖區相比數據庫緩沖區緩存要小的多,并且不能進行自動管理,對于日志緩沖區的修改需要重啟實例,數據庫緩沖區緩存可進行自動管理。作用在數據庫緩沖區緩存上的DBWn進程,為了避免頻繁的磁盤IO導致系統性能下降,會盡可能少地執行寫入,且DBWn的寫入和commit操作沒有任何關系;
而作用在日志緩沖區上的LGWR進程,則會非常積極地進行寫入,一般情況下,它幾乎是實時地將重做日志記錄轉儲到磁盤中去。LGWR是Oracle體系結構中最大的瓶頸之一。DML的速度不可能超過LGWR將變更向量寫入磁盤的速度。
共享池
共享池是最復雜的SGA結構,它有許多子結構,我們來看看常見的幾個共享池組件:
庫緩存(library cache):Oracle引入庫緩存的目的是共享SQL和PL/SQL代碼。服務器進程執行SQL和PL/SQL時,首先會進入庫緩存查找是否有相同的SQL,如果有,就不再進行后續的編譯處理,直接使用已經編譯的SQL和執行計劃。Oracle通過比較兩條SQL語句的正文來確定兩條SQL是否相同,所以如果想共享SQL語句,必須使用綁定變量的方式。如: select * from emp where sal > 100
和select * from emp where sal > 101
是不同的,而使用綁定變量時,即使v_sal的值不同,Oracle認為select * from emp where sal > &v_sal
也是相同的。Oracle使用LRU隊列和算法來管理庫緩存,最近使用過的SQL會放在隊首,長時間沒有使用的SQL放在隊尾,當庫緩存需要內存空間而又沒有空閑的內存空間時,隊尾內存中的SQL會被清除,放入最新的SQL,并且隊首會指向次段內存。Oracle沒有提供直接修改庫緩存大小的方法,只能通過修改共享池的大小來間接修改庫高速緩存的大小。
數據字典緩存(dictionary cache):當Oracle執行SQL時,會將相關的數據文件、表、索引、列、用戶、其他的數據對象的定義和權限信息存放到數據字典緩存中。在此之后,如果需要相同的相關數據,Oracle會從數據字典緩存中提取。Oracle沒有提供直接修改 數據字典緩存大小的方法,只能通過修改共享池的大小來間接修改 數據字典緩存的大小。
那修改共享池的方法是什么?alter system set shared_pool_size= xxx m
;共享池的大小受限制于SGA_MAX_SIZE參數的大小。
大池
大池是個可選的內存區域,可提供一個大的緩沖區供數據庫的備份與恢復操作過程使用。需要大池的實際需要一般有以下三種:
數據庫的備份恢復
具有大量排序操作的SQL語句
并行化的數據庫操作
JAVA池
JAVA池在數據庫中支持JAVA 的運行,存放JAVA代碼和JAVA語句的語法分析表;JAVA池的大小一般不小于20M,便于安裝JAVA虛擬機。
流池
從重做日志中提取變更記錄的進程 和 應用變更記錄的進程會用到流池(如實例不正常關閉,譬如斷電導致實例關閉,在重啟時,Oracle會自動執行實例恢復過程,在此過程需要提取重做日志記錄和應用重做日志兩個動作)
以上列舉了Oracle常見的內存結構,要注意的是,上面列舉的內存區域,除了日志緩沖區是固定的,不能動態調整也不能進行自動管理外,其他內存區域都可以進行動態調整,也可以進行自動管理。
PGA包含單個用戶或者服務器數據和控制信息,是oracle分配給一個進程的私有內存區域,每當有用戶進程連接到數據庫并創建一個會話時,便會由Oracle自動分配相對應的空間。
在上面我們介紹了DBWn、LGWR這兩個進程,下面將介紹其他的進程信息:
SMON
SMON(System Monitor)又稱作系統監控進程,當數據庫實例出現故障或者系統崩潰的時候,執行恢復操作。它還定期合并字典管理的表空間中的空閑空間;并且,在系統重啟期間,他還可以清理表空間所有臨時段。安裝和打開數據庫,也是由此進程完成的。SOMN會被有規律的喚醒執行,并在其他進程需要時也可以進行調用。
PMON
PMON(process monitor)又稱進程監視器。用戶進程出現故障時執行的恢復操作,負責清理內存存儲區和釋放該進程所使用的資源;除此之外,PMON還會周期的檢查調度進程和服務器進程的狀態,對已死的進程進行重啟。POMN會被有規律的喚醒執行,并在其他進程需要時也可以進行調用。
CKPT
CKPT(checkpoint process)檢查點進程。該進程負責發起檢查點信號,讓DBWn開始工作;并更新控制文件以及數據文件頭。
ARCn
ARCn(Archive)歸檔進程,主要負責將日志文件復制到歸檔日志文件中,來避免日志文件組的循環使用覆蓋到已有的日志文件中。只有當數據庫在ARCHIVELOG模式下,且自動歸檔開啟的時候,系統便會啟動ARCn進程;ARCn包括歸檔方式和非歸檔方式。只有在歸檔方式下,才會存在ARCn進程,當它進行歸檔操作時,任何進程都不能訪問被操作的日志文件。
以上進程除了ARCn之外,全部都是系統必要的進程。對維持物理和內存之間的聯系起了重大作用。
數據字典是Oracle數據庫重要的組成部分,由Oracle自動創建并更新,用來存儲數據庫實例信息的一組表,以表和視圖的方式組織其擁有的信息。數據字典中的表是不能直接被訪問的,但是可以訪問數據字典中的視圖。數據字典的擁有者是SYS用戶,并存儲在默認表空間SYSTEM表空間中。數據字典主要存儲以下信息:
數據庫中所有模式對象的信息,如表、視圖、簇、及索引等。
存儲空間的分配信息,分配多少空間,當前使用了多少空間等。
安全信息
實例運行時的性能和統計信息
其他數據庫本身的基本信息
Oracle中的數據字典有靜態和動態之分;靜態數據字典,在用戶訪問數據字典時不會發生改變,zhelei動態數據字典是依賴數據庫運行的性能的,反映數據庫運行的一些內在信息,所以在訪問這類數據字典時往往不是一成不變的。
靜態數據字典中的視圖分為三類,它們分別由三個前綴夠成:user_*、 all_*、 dba_*。
user視圖
user視圖的名稱以user_為前綴,用來記錄用戶對象的信息。user視圖可以看作是all視圖的自己,每個用戶都可以查詢user視圖。使用DESC 可以了解視圖結構。
all視圖
all視圖的名稱以all_為前綴,用來記錄用戶對象的信息以及可以訪問的所有對象信息,包括該用戶自己的方案對象,也包括被授權可以訪問其他用戶的方案對象。all視圖是user視圖的擴展。
dba視圖
dba視圖以dba_為前綴,用來記錄數據庫實例所有對象的信息。一般只有dba角色可以訪問dba視圖,如果普通用戶被授予 Select any dictionary 系統權限的用也可以對此進行訪問。
動態性能視圖都是以V$開頭的視圖,V$視圖以V$為前綴,用來記錄與數據庫活動相關的性能統計動態信息。例如V$session視圖,可以查看當前會話的詳細信息。
Oracle啟動分3個過程nomount、mount和open,這三個過程具體執行的工作如下:
- nomount狀態:啟動實例。
首先從環境變量下dbs目錄按如下順序讀取參數文件,但是會考慮參數文件重要性,便會通過以下過程進行讀取:
首先,讀取spfile+實例名.ora這個文件;若未發現這個文件則讀取spfile.ora;若未發現這個文件則讀取init+實例名.ora這個文件;如果以上文件都沒找到,也可以指定pfile參數文件啟動以替代默認啟動方式。
讀取完參數文件之后,便開始分配SGA,啟動后臺進程,啟動預警日志文件(記錄實例生命周期內事件,如系統內部錯誤、數據塊損壞、系統參數修改等)和追蹤文件(記錄SQL操作及時間消耗等。要注意的是,數據庫必須用初始參數文件或啟動命令中的DB_NAME參數命名。
- mount狀態:關聯實例與數據庫,讀取控制文件并獲取數據文件和重做日志文件名稱狀態。
啟動完實例之后,便要將實例與數據庫相關聯,在讀取參數文件時,找到控制文件位置并將其打開,從中讀取到數據文件以及重做日志文件名稱與狀態,但是這里不檢查數據文件與重做日志文件的存在性。在mount狀態下,系統完成了了數據庫的裝載。
open狀態:打開數據庫
打開數據庫過程承接了mount狀態,從控制文件讀取到了數據文件、重做日志文件的位置,這里將其打開;如果其中任何一個文件丟失的話,則Oracle會返回一個error,在最后階段,Oracle數據庫驗證數據文件和重做日志文件可否打開并檢驗數據庫的一致性,若不一致,SMON后臺進程將啟動實例恢復。
shutdown有四個參數:normal、transactional、immediate、abort,不帶參數默認為normal。
shutdown normal:不斷開現在連接用戶,阻止任何用戶建立新的連接,包括管理員在內。已經連接的用戶能夠繼續他們當前的工作,如遞交新的更新事務,直到此用戶自行斷開連接。這樣需要等待的時間長,可以查出現連用戶,再通知其自行斷開。所有的用戶都斷開連接,數據庫才進行關閉操作,即關閉數據庫、卸載數據庫、終止例程。在這種情況下關閉的數據庫在重新啟動后,不會出現問題。啟動時不需要實例恢復。
shutdown transactional:阻止任何用戶建立新連接,等待所有當前連接用戶的未遞交的活動事務提交完畢,然后立即斷開用戶的連接。所有的用戶都斷開連接則立即關閉數據庫,進行關閉數據庫、卸載數據庫、終止進程等操作。這種方式,用戶有可能正在算賬,做復雜報表!一次數據庫操作做不完的,在剛做了一次數據庫操作后,將被斷開,這樣對用戶有一定影響,啟動時不需要實例恢復。
shutdown immediate:阻止任何用戶新的連接,同時限制當前連接用戶開始新的事務。如果已連接用戶有未完成的事務,則數據庫系統不會等待他們完成,而是直接把當前未遞交的事務回退。數據庫系統不再等待用戶主動斷開連接,當未遞交的事務回退成功后,系統會直接關閉、卸載數據庫,并終止數據庫進程,啟動時不需要實例恢復。
shutdown abort:當數據庫出現故障時,可能以上三種方式都無法正常關閉數據庫,則使用這種方法。強制結束當前正在執行的SQL語句,任何未遞交的事務都不被回退!這種方法基本上不會對控制文件或者參數文件造成破壞,這比強制關機要好一點(在無法正常關閉數據庫的時候),啟動時自動進行實例恢復。
startup有7個參數:nomount、mount、open、pfile、force、restrict和 recover
startup nomount:通過參數文件,分配sga,啟動數據庫后臺進程,不打開控制文件和數據文件,不能訪問數據庫。通常啟動到這里可以做create database , create or recreate control file 或者是mount standby database等動作,修改parameter也是可以的。
startup mount:僅給dba進行管理操作,不允許數據庫用戶訪問。僅當前實例的控制文件被打開,數據文件未打開,在這個模式下可以進行如下操作:重命名數據文件、添加取消或重命名重做日志文件、設置歸檔模式、設置閃回、執行完整的數據庫恢復操作等。
startup open:startup的默認參數就是open,打開數據庫,允許數據庫的訪問,當前實例控制文件中所描述的所有文件都已經打開。
startup pfile=FILENAME:以FILENAME為初始化文件啟動數據庫,不是采用默認初始化文件。
startup force:中止當前數據庫的運行,并開始重新正常的啟動數據庫。
startup restrict:只允許具有restricted session權限的用戶訪問數據庫,該模式下登陸者可做如下操作:執行數據庫數據的導出或導入、執行數據裝載操作用SQL*Loader、暫時阻止一般的用戶使用數據、在某個移植過程和升級操作過程中restricted session登陸后可使用ALTER SYSTEM 語句來禁止RESTRICTED SESSION特性ALTER SYSTEM DISABLE RESTRICTED SESSION
;如果是在非受限模式下打開的數據庫,后來發現需要限制訪問,此時可以使用帶ENABLE RESTRICTED SESSION 子句的ALTER SYSTEM 語句來完成。
startup recover:數據庫啟動,并開始介質恢復。
附錄:常用的數據字典
靜態視圖
數據字典名稱 | 說明 |
---|---|
dba_tablespaces | 關于表空間的信息 |
dba_ts_quotas | 所有用戶表空間限額 |
dba_free_space | 所有表空間中的自由分區 |
dba_segments | 描述數據庫中所有段的存儲空間 |
dba_extents | 數據庫中所有分區的信息 |
dba_tables | 數據庫中所有數據表的描述 |
dba_tab_columns | 所有表、視圖以及簇的列 |
dba_views | 數據庫中所有視圖的信息 |
dba_synonyms | 關于同義詞的信息 |
dba_sequences | 所有用戶序列信息 |
dba_constraints | 所有用戶表的約束信息 |
dba_indexs | 數據表中所有索引的描述 |
dba_ind_columns | 所有表及簇上壓縮索引的列 |
dba_triggers | 所有用戶的觸發器信息 |
dba_source | 所有用戶存儲過程信息 |
dba_data_files | 查詢關于數據庫文件的信息 |
dba_tab_grants/privs | 查詢關于對象授權的信息 |
dba_objects | 數據庫所有對象 |
dba_users | 關于數據庫中所有用戶的信息 |
動態視圖
數據字典名稱 | 說明 |
---|---|
v$database | 描述關于數據庫的相關信息 |
v$datafile | 數據庫使用的數據文件信息 |
v$log | 從控制文件中提取有關重做日志組的信息 |
v$logfile | 有關實例重置日志組文件名及其位置的信息 |
v$archived_log | 記錄歸檔日志文件的基本信息 |
v$archived_dest | 記錄歸檔日志文件的路徑信息 |
v$controlfile | 描述控制文件的相關信息 |
v$instance | 記錄實例的基本信息 |
v$system_parameter | 顯示實例當前有效的參數信息 |
v$sga | 顯示實例的SGA區大小 |
v$sgastat | 統計SGA使用情況的信息 |
v$parameter | 記錄初始化參數文件中所有項的值 |
v$lock | 通過訪問數據庫會話,設置對象鎖的所有信息 |
v$session | 有個會話的信息 |
v$sql | 記錄SQL語句的詳細信息 |
v$sqltext | 記錄SQL語句的語句信息 |
v$bgprocess | 顯示后臺進程信息 |
v$process | 當前進程的信息 |
到此,相信大家對“Oracle的體系結構和物理、邏輯存儲結構介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。