亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

Oracle基本術(shù)語(yǔ)

時(shí)間:2023-03-04 16:56:28 Oracle認(rèn)證 我要投稿
  • 相關(guān)推薦

Oracle基本術(shù)語(yǔ)大全

  Oracle數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)復(fù)雜的軟件系統(tǒng)。如果不了解其內(nèi)部的結(jié)構(gòu)原理及關(guān)系,就不可能設(shè)計(jì)和編寫(xiě)出高質(zhì)量的應(yīng)用軟件系統(tǒng),也不可能管理好一個(gè)復(fù)雜的應(yīng)用系統(tǒng)。為了幫助大家了解更多Oracle數(shù)據(jù)庫(kù)知識(shí),下文簡(jiǎn)要給出 ORACLE 8 /ORACLE8i數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)的描述。

  §2.1 術(shù)語(yǔ)

  數(shù)據(jù)庫(kù)塊(BLOCK)

  ORACLE 數(shù)據(jù)庫(kù)中的最小存儲(chǔ)和處理單位,包含塊本身的頭信息數(shù)據(jù)或PL/SQL代碼。

  ORACLE 塊的大小是可以在安裝時(shí)選擇“自定義安裝”來(lái)指定,也可以在CREATE DATABASE創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例時(shí)指定。其最小為2K,最大可達(dá)為64K.

  瓶頸(Bottleneck)

  指限制系統(tǒng)性能的部件。

  面向?qū)ο蟮年P(guān)系數(shù)據(jù)庫(kù)

  具有關(guān)系數(shù)據(jù)庫(kù)的全部功能,同時(shí)又支持面向?qū)ο蟮臄?shù)據(jù)庫(kù),稱作面向?qū)ο箨P(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。Oracle7是一種功能完備的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);oracle8是一種面向?qū)ο蟮年P(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。

  客戶/服務(wù)器結(jié)構(gòu)(Client/Server)

  有客戶機(jī)、服務(wù)器、網(wǎng)絡(luò)三要素的結(jié)構(gòu),客戶機(jī)(PC機(jī))通過(guò)網(wǎng)絡(luò)與服務(wù)器相連和工作。

  胖客戶機(jī)(Fat Client)

  一般的Client/Server結(jié)構(gòu)中的客戶機(jī)均為胖客戶機(jī)。因?yàn)檫@些客戶機(jī)需要配置較高的設(shè)備,如內(nèi)存、硬盤(pán)、主頻、CD_ROM等。

  瘦客戶機(jī)(Thin Client)

  也稱作NC(網(wǎng)絡(luò)計(jì)算機(jī)),是一種內(nèi)存配置小(過(guò)去指一般只有4M,現(xiàn)無(wú)法定義),無(wú)硬盤(pán),只有處理心片的處理機(jī)。

  數(shù)據(jù)在線分析處理(OLAP)

  是一種能以快速、交互、方便的方式洞察數(shù)據(jù)情況的技術(shù)。如Oracle Express,Cognos(加拿大)的Power Play, Business Objects公司的Business Object 等。

  多線程(MTS)

  一個(gè)用戶可以同時(shí)運(yùn)行多個(gè)程序?qū)?shù)據(jù)庫(kù)進(jìn)行訪問(wèn),比如Visual C/C++可以提供同時(shí)啟動(dòng)多個(gè)進(jìn)程,而Visual Basic則不能。

  數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)

  支持大量數(shù)據(jù)信息存儲(chǔ)的叫做支持?jǐn)?shù)據(jù)倉(cāng)儲(chǔ)或數(shù)據(jù)倉(cāng)庫(kù)。當(dāng)把幾個(gè)小型數(shù)據(jù)庫(kù)集成為一個(gè)大型數(shù)據(jù)庫(kù),并為一個(gè)較廣泛的組織服務(wù)時(shí),如果該數(shù)據(jù)庫(kù)存儲(chǔ)歷史數(shù)據(jù),提供決策支持,提供數(shù)據(jù)匯總,提供只讀數(shù)據(jù),并且實(shí)質(zhì)上充當(dāng)所有向它提供數(shù)據(jù)的相關(guān)成品數(shù)據(jù)庫(kù)的數(shù)據(jù)接收器,那么它通常被叫做數(shù)據(jù)倉(cāng)庫(kù)。

  實(shí)例(Instance)

  是訪問(wèn)Oracle數(shù)據(jù)庫(kù)所需的一部分計(jì)算機(jī)內(nèi)存和輔助處理后臺(tái)進(jìn)程。

  對(duì)象(Objects)

  是實(shí)現(xiàn)世界實(shí)體的軟件表示,如表、索引、視圖、同義詞、過(guò)程等。

  數(shù)據(jù)庫(kù)文件(Datafile)

  Oracle系統(tǒng)中用于存放數(shù)據(jù)(應(yīng)用系統(tǒng)數(shù)據(jù))的文件。(<;>14中的例子不準(zhǔn)確,容易誤導(dǎo)讀者)。

  控制文件(Control File)

  Oracle中存放系統(tǒng)用的一些數(shù)據(jù)的文件。如數(shù)據(jù)文件的路徑及文件名,初始化文件路徑及 文件名等都存放在控制文件中。

  日志文件(Logs File)

  也叫事務(wù)記錄文件,該文件記錄有事物對(duì)數(shù)據(jù)庫(kù)進(jìn)行的一切修改操作或事務(wù)。

  DBA(Database administrator-數(shù)據(jù)庫(kù)管理員)

  是管理數(shù)據(jù)庫(kù)系統(tǒng)的技術(shù)工具或人員,在完備的數(shù)據(jù)庫(kù)系統(tǒng)中都提供DBA功能。

  灰數(shù)據(jù)塊(Dirty data block)

  存放在內(nèi)存中的原始數(shù)據(jù)已被修改,而修改后的數(shù)據(jù)還未寫(xiě)入數(shù)據(jù)庫(kù)中。

  熱數(shù)據(jù)塊(Hot data block)

  存放著那些經(jīng)常被修改數(shù)據(jù)叫熱數(shù)據(jù)塊。

  LRU(Least Recently Used-最近最少用)

  Oracle系統(tǒng)使用的一種算法,對(duì)于在內(nèi)存中但最近又不用的數(shù)據(jù)塊(內(nèi)存塊)叫做LRU,Oracle會(huì)根據(jù)那些數(shù)據(jù)屬于LRU而將其移出內(nèi)存而騰出空間來(lái)加載另外的數(shù)據(jù)。

  表(Table)

  存放專門(mén)數(shù)據(jù)而建立和分配的空間。

  表空間(Tablespace)

  是一個(gè)或多個(gè)數(shù)據(jù)文件的集合,所有的數(shù)據(jù)對(duì)象都存放在指定的表空間中,但主要存放的是表, 所以稱作表空間。

  回滾(Rollback)

  將用戶(或者說(shuō)事務(wù))改變的數(shù)據(jù)恢復(fù)到上一次所處的狀態(tài)。

  恢復(fù)信息(Undo Information)

  記錄用于恢復(fù)的信息稱作恢復(fù)信息;貪L就是根據(jù)恢復(fù)信息內(nèi)容進(jìn)行恢復(fù)的。

  §2.2

  Oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)Oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)是Oracle數(shù)據(jù)庫(kù)系統(tǒng)的主要部分,它是一些可以看得見(jiàn)的軟件,包括:

  Oracle 數(shù)據(jù)字典l 表空間與數(shù)據(jù)文件l Oracle實(shí)例(Instance)

  §2.2.1

  Oracle 數(shù)據(jù)字典Oracle數(shù)據(jù)庫(kù)的重要部分是數(shù)據(jù)字典。它存放有Oracle數(shù)據(jù)庫(kù)所用的有關(guān)信息,對(duì)用戶來(lái)說(shuō)是一組只讀的表。數(shù)據(jù)字典內(nèi)容包括:

  數(shù)據(jù)庫(kù)中所有模式對(duì)象的信息,如表、視圖、簇、及索引等。

  分配多少空間,當(dāng)前使用了多少空間等。

  列的缺省值。

  約束信息的完整性。

  Oracle用戶的名字。

  用戶及角色被授予的權(quán)限。

  用戶訪問(wèn)或使用的審計(jì)信息。

  其它產(chǎn)生的數(shù)據(jù)庫(kù)信息。

  數(shù)據(jù)庫(kù)數(shù)據(jù)字典是一組表和視圖結(jié)構(gòu)。它們存放在SYSTEM表空間中。數(shù)據(jù)庫(kù)數(shù)據(jù)字典不僅是每個(gè)數(shù)據(jù)庫(kù)的中心。而且對(duì)每個(gè)用戶也是非常重要的信息。用戶可以用SQL語(yǔ)句訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)字典。

  §2.2.2

  表空間與數(shù)據(jù)文件簡(jiǎn)單說(shuō),表空間就是一個(gè)或多個(gè)數(shù)據(jù)文件(物理文件)的集合(邏輯文件)。一般有下面的表空間:

  1)系統(tǒng)表空間(System tablespace)

  是各種不同版本的Oracle必備的部分,存放Oracle系統(tǒng)的一些信息,一般只有一個(gè)SYSTEM表空間。

  2)臨時(shí)表空間(Temporary tablespace )

  由于Oracle工作時(shí)經(jīng)常需要一些臨時(shí)的磁盤(pán)空間,這些空間主要用作查詢時(shí)帶有排序(Group by,Order by等)等算法所用,當(dāng)用完后就立即釋放,對(duì)記錄在磁盤(pán)區(qū)的信息不再使用,因此叫臨時(shí)表空間。一般安裝之后只有一個(gè)TEMP臨時(shí)表空間。

  3)工具表空間(Tools tablespace)

  用于保存Oracle數(shù)據(jù)庫(kù)工具所需的數(shù)據(jù)庫(kù)對(duì)象,這些工具表空間存放在工作時(shí)所用的專用表。舊的Oracle版本無(wú)此表空間。安裝之后的工具表空間是Tools.

  4)用戶表空間(Users tablespace)

  用于存放一些實(shí)驗(yàn)例子用的空間,當(dāng)然也可以用于存放應(yīng)用系統(tǒng)的數(shù)據(jù)。舊版本無(wú)Users表空間,F(xiàn)在的用戶表空間為 USERS .

  5)數(shù)據(jù)及索引表空間存放數(shù)據(jù)及索引的表空間,Oracle7以后都提倡在應(yīng)用系統(tǒng)中,特別是具有大量數(shù)據(jù)的系統(tǒng),要把數(shù)據(jù)和索引分開(kāi)存放在不同的分區(qū)中,以便提高查詢速度。在安裝后索引表空間可能是INDX.數(shù)據(jù)表空間就是USERS.

  6)回滾段表空間(Rollback Segment)

  Oracle數(shù)據(jù)庫(kù)系統(tǒng)在運(yùn)行Insert、Update、Delete時(shí)都需要一個(gè)磁盤(pán)空間來(lái)存放恢復(fù)信息(Undo Information),以便在進(jìn)行恢復(fù)時(shí)能將原來(lái)信息讀出來(lái)。安裝后的回滾段表空間是RBS表空間。數(shù)據(jù)庫(kù)管理員也可根據(jù)應(yīng)用的需要建立另外的回滾段表空間。Oracle 以表空間來(lái)存儲(chǔ)邏輯數(shù)據(jù)并 以物理數(shù)據(jù)相連。

  數(shù)據(jù)庫(kù)被分成一個(gè)或多個(gè)邏輯部件稱作表空間。而表空間又被分成稱作段(segment)的邏輯部件。這些段再細(xì)分就叫擴(kuò)展(extents)。

  §2.2.3

  Oracle實(shí)例Oracle實(shí)例(Instance)是由一組后臺(tái)進(jìn)程和內(nèi)存結(jié)構(gòu)組成。每個(gè)運(yùn)行的數(shù)據(jù)庫(kù)系統(tǒng)都與實(shí)例有關(guān)。所以,有時(shí)稱Oracle實(shí)例為數(shù)據(jù)庫(kù)操作系統(tǒng)。下面是Oracle實(shí)例的解釋。

  Oracle 進(jìn)程O(píng)racle有兩種類型的進(jìn)程: 服務(wù)器進(jìn)程和后臺(tái)進(jìn)程(server processes and background processes)。

  服務(wù)器進(jìn)程O(píng)racle 服務(wù)器進(jìn)程是處理用戶與實(shí)例連接的事務(wù)。任務(wù)是:

  分析和執(zhí)行應(yīng)用所發(fā)出的SQL語(yǔ)句。

  從數(shù)據(jù)文件讀必要的數(shù)據(jù)到SGA區(qū)的共享數(shù)據(jù)區(qū)。

  返回必要信息給應(yīng)用。

  后臺(tái)進(jìn)程O(píng)racle系統(tǒng)使用一些附加的進(jìn)程來(lái)處理系統(tǒng)的必須的工作。這些進(jìn)程叫后臺(tái)進(jìn)程:

  數(shù)據(jù)庫(kù)寫(xiě) (DBW0 或DBWn)

  日志寫(xiě) (LGWR)

  檢測(cè)點(diǎn) (CKPT)

  系統(tǒng)監(jiān)視 (SMON)

  進(jìn)程監(jiān)視 (PMON)

  歸檔 (ARCn)

  恢復(fù) (RECO)

  鎖(LCK0)

  工作隊(duì)列 (SNPn)

  隊(duì)列監(jiān)視 (QMNn)

  發(fā)布(Dispatcher) (Dnnn)

  服務(wù)器 (Snnn)

  Oracle 的內(nèi)存結(jié)構(gòu)(SGA)

  SGA 結(jié)構(gòu)為:

  數(shù)據(jù)高速緩沖區(qū)  重做日志緩沖區(qū)  共享池  大的共享池(可選)

  數(shù)據(jù)字典緩沖區(qū)  其它數(shù)據(jù)緩沖區(qū)

  §2.3

  Oracle數(shù)據(jù)庫(kù)文件ORACLE 數(shù)據(jù)庫(kù)是一個(gè)復(fù)雜的數(shù)據(jù)庫(kù)操作系統(tǒng),由一系列部件組成,主要有:1)初始化參數(shù)文件、2)數(shù)據(jù)文件、3)控制文件、4)日志文件等。

  §2.3.1

  初始化參數(shù)文件初始化參數(shù)文件(initialization parameter file) INITsid.ORA,是 ORALE RDBMS 主要的配置點(diǎn),它是配置參數(shù)和數(shù)值的集合。每一個(gè)參數(shù)值都控制或修改數(shù)據(jù)庫(kù)和實(shí)例的某個(gè)方面。 早期的版本把參數(shù)都寫(xiě)在 initsid.ora 文件中,但在ORACLE8 之后,多數(shù)參數(shù)已不在該文件中出現(xiàn),需修改這些參數(shù)時(shí)只能在SQL>;下用 SET SESSION 或 SET SYSTEM 來(lái)進(jìn)行。 查看系統(tǒng)參數(shù)可用。例如:

  SQL>;select * from v$parameter;

  來(lái)列出。

  Oracle初始化參數(shù)文件是一個(gè)可以編輯的文本文件。它是在數(shù)據(jù)庫(kù)實(shí)例啟動(dòng)時(shí)被訪問(wèn),從而得到數(shù)據(jù)文件、日志文件、控制文件等的路徑,此外,初始化參數(shù)文件還提供實(shí)例所用的參數(shù)等。

  §2.3.2

  數(shù)據(jù)文件用于存放所有數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,Oracle安裝過(guò)程中自動(dòng)建立多個(gè)必要的數(shù)據(jù)文件。這些數(shù)據(jù)文件用于存放Oracle系統(tǒng)的基本數(shù)據(jù)。在應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程中,我們可根據(jù)需要另建立一些數(shù)據(jù)文件。

  如果數(shù)據(jù)文件按它們存放的數(shù)據(jù)類型來(lái)分的話,可以分為:用戶數(shù)據(jù)(存放應(yīng)用系統(tǒng)的數(shù)據(jù)為用戶數(shù)據(jù));系統(tǒng)數(shù)據(jù)。

  管理用戶數(shù)據(jù)和數(shù)據(jù)庫(kù)系統(tǒng)本身的數(shù)據(jù),如數(shù)據(jù)字典,用戶建立的表的名字,類型等都記錄在系統(tǒng)數(shù)據(jù)中。

  §2.3.3

  控制文件控制文件是由Oracle數(shù)據(jù)庫(kù)實(shí)例在啟動(dòng)時(shí)被訪問(wèn)的內(nèi)部二進(jìn)制文件,它們所存放的路徑由參數(shù)文件的control_files=參數(shù)來(lái)確定。

  Oracle一般有兩個(gè)或更多的控制文件,每個(gè)控制文件記錄有相同的信息,在數(shù)據(jù)庫(kù)運(yùn)行中如果某個(gè)控制文件出錯(cuò)時(shí),Oracle會(huì)自動(dòng)使用另外一個(gè)控制文件。當(dāng)所有的控制文件都損壞時(shí)系統(tǒng)將不能工作。

  Oracle數(shù)據(jù)庫(kù)至少有一個(gè)控制文件;一般數(shù)據(jù)庫(kù)系統(tǒng)安裝完成后,自動(dòng)創(chuàng)建兩個(gè)以上控制文件;為了安全一般建議創(chuàng)建多個(gè)控制文件;控制文件可用下面命令查到:

  select name,value from v$parameter where name like ’control_files’;

  §2.3.4

  重做日志文件重做日志文件是Oracle系統(tǒng)中一個(gè)很重要的文件。特點(diǎn)是:

  重做日志是Oracle的日記帳,負(fù)責(zé)記錄所有用戶對(duì)象或系統(tǒng)變更的信息;安裝完成后有多個(gè)重做日志文件,它們是幾個(gè)分為一組,組內(nèi)的重做日志文件大小要一樣;為了使系統(tǒng)性能更好可以在創(chuàng)建多重做日志文件組;重做日志文件可以名下面命令查到:

  select * from v$logfile;

  §2.3.5

  其它支持文件除了上面的三類文件外,還有:Sqlnet.ora文件;Tnsnames.ora文件;Listener.ora文件等。

  §2.4

  重做日志和重做日志工作模式重做日志、日志文件及重做日工作模式是Oracle系統(tǒng)中很重要的概念,管理員要完全理解它們的原理和使用方法。下面只給簡(jiǎn)單的概念,有關(guān)的管理在另外章節(jié)給出。

  §2.4.1

  重做日志Oracle所作的一切操作都記錄在日志文件中,Oracle系統(tǒng)在工作當(dāng)中并不是每作一條記錄的修改就立即存盤(pán)(寫(xiě)入數(shù)據(jù)文件),而是只作修改記錄,聯(lián)機(jī)重做日志就保存所有這些改變的信息。當(dāng)所有的修改最后寫(xiě)入數(shù)據(jù)文件時(shí),所有的修改仍記錄在聯(lián)機(jī)重做日志中,這將有利于對(duì)這些事務(wù)記錄進(jìn)行恢復(fù)操作。但如果不是聯(lián)機(jī)重做日志,則只能恢復(fù)部分近期的操作。

  §2.4.2

  重做日志工作模式Oracle可以在兩種模式之一來(lái)工作:

  1)ARCHIVELOG模式(可恢復(fù))

  Oracle 一般至少有兩個(gè)日志文件。它們輪流交替地被寫(xiě)入所作的一切修改信息。當(dāng)系統(tǒng)設(shè)置為可恢復(fù)模式,Oracle自動(dòng)將每次即將被覆蓋(沖掉)的日志信息先作備份,然后再其上記錄所修改的信息。這樣的方式,就可以利用備份與恢復(fù)工作進(jìn)行某時(shí)期的數(shù)據(jù)恢復(fù)。

  2)NOARCHIVELOG模式(有限的恢復(fù))

  缺省情況下為NOARCHIVELOG,Oracle不保留舊的重做日志信息(可以在原來(lái)基礎(chǔ)覆蓋寫(xiě)入)。因此一般情況下不可恢復(fù)的。

  §2.5 數(shù)據(jù)塊、區(qū)間和段

  §2.5.1 數(shù)據(jù)塊(data block)

  Oracle的數(shù)據(jù)塊也叫Oracle塊;Oracle系統(tǒng)在創(chuàng)建表空間時(shí)將數(shù)據(jù)文件格式化成若干個(gè)Oracle塊;每個(gè)Oracle塊是Oracle系統(tǒng)處理的最小單位;塊的大小在安裝系統(tǒng)時(shí)確定,可以選擇“自定義安裝”來(lái)設(shè)置大小;塊的大小一旦確定下來(lái)就不能改動(dòng);塊的大小可以從2k至64k不等;塊的大小可以用下面命令查到:

  select name,value from v$parameter where name like ’db_block_size’;

  §2.5.2 區(qū)間(extent)

  分配給對(duì)象(如表)的任何連續(xù)塊叫區(qū)間;區(qū)間也叫擴(kuò)展,因?yàn)楫?dāng)它用完已經(jīng)分配的區(qū)間后,再有新的記錄插入就必須在分配新的區(qū)間(即擴(kuò)展一些塊);區(qū)間的大小由 next 決定;一旦區(qū)間分配給某個(gè)對(duì)象(表、索引及簇),則該區(qū)間就不能再分配給其它的對(duì)象;一個(gè)對(duì)象所用去多少區(qū)間可用下命令查到:

  select segment_name,tablespace_name,count(*) from dba_extents having count(*)>;1 group by segment_name,tablespace_name;

  §2.5.3 段(segment)

  段是指占用數(shù)據(jù)文件空間的通稱,或數(shù)據(jù)庫(kù)對(duì)象使用的空間的集合;段可以有表段、索引段、回滾段、臨時(shí)段和高速緩存段等;段使用同表空間中的若干Oracle塊(可以位于不同數(shù)據(jù)文件中)。

  例:CREATE TABLE abc ( empno number(4),ename varchar2(20),sal number(9,2))

  TABLESPACE user_data storage(initial 500k next 256k pctincrease 0);

  1) 段被分配=初始區(qū)間=500k;

  2) 當(dāng)開(kāi)始的500k用完后就再分配256k; 此時(shí)段=500k+256k;

  3) 如果所分配的區(qū)間又用完后,就再分配256k, …

  §2.6

  Oracle數(shù)據(jù)庫(kù)進(jìn)程一般情況,當(dāng)數(shù)據(jù)庫(kù)啟動(dòng)完成后(Instance 啟動(dòng)成功)就至少有六個(gè)后臺(tái)進(jìn)程在活動(dòng),這些進(jìn)程根據(jù)數(shù)據(jù)庫(kù)的需要而分工不同。他們分別是:

  1)數(shù)據(jù)庫(kù)寫(xiě)入器(DBWR)

  數(shù)據(jù)庫(kù)寫(xiě)入器(Database Writer)的任務(wù)是將修改后的(在內(nèi)存)數(shù)據(jù)塊寫(xiě)回?cái)?shù)據(jù)庫(kù)文件中。在某些操作系統(tǒng)中,Oracle可以有兩個(gè)BDWR進(jìn)程。

  2)校驗(yàn)點(diǎn)(CKPT)

  是一個(gè)可選進(jìn)程。在系統(tǒng)運(yùn)行中當(dāng)出現(xiàn)查找數(shù)據(jù)請(qǐng)求時(shí),系統(tǒng)從數(shù)據(jù)庫(kù)中找出這些數(shù)據(jù)并存入內(nèi)存區(qū),這樣用戶就可以對(duì)這些內(nèi)存區(qū)數(shù)據(jù)進(jìn)行修改等。當(dāng)需要對(duì)被修改的數(shù)據(jù)寫(xiě)回?cái)?shù)據(jù)文件時(shí)就產(chǎn)生重做日志的交替寫(xiě)(Switch),這時(shí)就出現(xiàn)校驗(yàn)點(diǎn)。系統(tǒng)要把內(nèi)存中灰數(shù)據(jù)(修改過(guò))塊中的信息寫(xiě)回磁盤(pán)的數(shù)據(jù)文件中,此外系統(tǒng)還將重做日志通知控制文件。DBA可以改變參數(shù)文件中CHECKPOINT_PROCESS TRUE來(lái)使能( 使有效或無(wú)效)該進(jìn)程。

  3)日志寫(xiě)入器(LGWR)

  用于將SGA區(qū)中的日志信息寫(xiě)入日志文件的進(jìn)程。一般是用戶所作的修改值先記入日志文件。等到一定時(shí)才真正將修改結(jié)果寫(xiě)回?cái)?shù)據(jù)文件。

  4)系統(tǒng)監(jiān)控器(SMON)

  系統(tǒng)監(jiān)控器(System monitor)是在數(shù)據(jù)庫(kù)系統(tǒng)啟動(dòng)時(shí)執(zhí)行恢復(fù)工作的強(qiáng)制性進(jìn)程。比如在并行服務(wù)器模式下(兩臺(tái)服務(wù)器共用一磁盤(pán)組),SMON可以恢復(fù)另一臺(tái)處于失敗的數(shù)據(jù)庫(kù)。使系統(tǒng)切換到另一臺(tái)正常的服務(wù)器上。

  5)進(jìn)程監(jiān)控器(PMON)

  進(jìn)程監(jiān)控器(Process Monitor)用于終止那些失敗的用戶,釋放該用戶所占用的資源等。

  6)歸檔器(ARCH)

  可選進(jìn)程,當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)處于歸檔(ARCHIVELOG)模式時(shí)使用。

  7)鎖(LCKn)

  可選進(jìn)程,當(dāng)在并行服務(wù)器模式可出現(xiàn)多個(gè)鎖定進(jìn)程以利于數(shù)據(jù)庫(kù)通信。

  8) 恢復(fù)器(RDCO)

  分布式數(shù)據(jù)庫(kù)(不同地點(diǎn)有不同機(jī)器和不同的Oracle系統(tǒng))模式下使用的可選進(jìn)程,用于數(shù)據(jù)不一致時(shí)作的恢復(fù)工作。在RECO解決恢復(fù)前,所作的修改數(shù)據(jù)的標(biāo)志均標(biāo)為“可疑”。

  9)調(diào)度(Dnnn)

  可選進(jìn)程,在多線程下使用,即對(duì)每個(gè)在用(D000,……,Dnnn)的通信協(xié)議至少創(chuàng)建一個(gè)調(diào)度進(jìn)程,每個(gè)調(diào)度進(jìn)程負(fù)責(zé)從所聯(lián)接的用戶進(jìn)程到可用服務(wù)器進(jìn)程的路由請(qǐng)求。把響應(yīng)返回給合適的用戶進(jìn)程。

  10)快照進(jìn)程(SNPn)

  快照進(jìn)程處理數(shù)據(jù)庫(kù)快照的自動(dòng)刷新,并通過(guò) DBMS_JOB 包運(yùn)行預(yù)定的數(shù)據(jù)庫(kù)過(guò)程。 INITsid.ORA 參數(shù) JOB_QUEUE_PROCESS 設(shè)置快照進(jìn)程數(shù), 參數(shù) JOB_QUEUE_INTERVAL 決定快照進(jìn)程在被喚醒以處理掛起的作業(yè)或事務(wù)之前休眠的秒數(shù)。

  11)并行查詢進(jìn)程(Pnnn)

  可根據(jù)數(shù)據(jù)庫(kù)的活動(dòng)并行查詢選項(xiàng)的設(shè)置,ORACLE服務(wù)器起動(dòng)或停止查詢進(jìn)程。這些進(jìn)程涉及并行索引的創(chuàng)建,表的創(chuàng)建及查詢。 啟動(dòng)的數(shù)量與參數(shù) PARALLEL_MIN_SERVERS指定的數(shù)量相同,不能超出該參數(shù)指定的值。

  §2.7

  Oracle內(nèi)存結(jié)構(gòu)前面提到過(guò)Oracle的數(shù)據(jù)庫(kù)實(shí)例是一組后臺(tái)進(jìn)程和內(nèi)存結(jié)構(gòu)組成。而內(nèi)存結(jié)構(gòu)是包括:

  系統(tǒng)全局區(qū)(System Global Area)

  程序全局區(qū)(Program Global Area)

  §2.7.1

  系統(tǒng)全局區(qū)Oracle 系統(tǒng)用于存放系統(tǒng)信息的一塊存儲(chǔ)區(qū)域,用戶進(jìn)程和Oracle后臺(tái)進(jìn)程都可以使用SGA.在SGA中含有許多組件(不同的部分)。

  數(shù)據(jù)高速緩沖區(qū)(Data Buffer Cache)

  在數(shù)據(jù)高速緩沖區(qū)中存放著Oracle系統(tǒng)最近使用過(guò)的數(shù)據(jù)塊(即用戶的高速緩沖區(qū)),當(dāng)把數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)時(shí),它以數(shù)據(jù)塊為單位進(jìn)行讀寫(xiě),當(dāng)數(shù)據(jù)高速緩沖區(qū)填滿時(shí),則系統(tǒng)自動(dòng)去掉一些不常被用訪問(wèn)的數(shù)據(jù)。如果用戶要查的數(shù)據(jù)不在數(shù)據(jù)高速緩沖區(qū)時(shí),Oracle自動(dòng)從磁盤(pán)中去讀取。數(shù)據(jù)高速緩沖區(qū)包括三個(gè)類型的區(qū):

  1) 臟的區(qū)(Dirty Buffers):包含有已經(jīng)改變過(guò)并需要寫(xiě)回?cái)?shù)據(jù)文件的數(shù)據(jù)塊。

  2) 自由區(qū)(Free Buffers):沒(méi)有包含任何數(shù)據(jù)并可以再寫(xiě)入的區(qū),Oracle可以從數(shù)據(jù)文件讀數(shù)據(jù)塊該區(qū)。

  3) 保留區(qū)(Pinned Buffers):此區(qū)包含有正在處理的或者明確保留用作將來(lái)用的區(qū)。

  Oracle8i以后將緩沖池分為三個(gè)區(qū)(使用多個(gè)緩沖池特性時(shí)):1) KEEP 緩沖池(KEEP buffer pool):在內(nèi)存中保留數(shù)據(jù)塊,它們不會(huì)被從內(nèi)存中擠掉;2) RECYCLE緩沖池從不需要的內(nèi)存將數(shù)據(jù)移掉;3) DEFAULT緩沖池包含有被分配的塊。

  重做日志緩沖區(qū)(Rado Log Buffer)

  任何事務(wù)(Transaction)在記錄到重做日志(恢復(fù)工作需要使用聯(lián)機(jī)重做日志)之前都必須首先放到重做日志緩沖區(qū)(Redo Log Buffer)中。然后由日志寫(xiě)入進(jìn)程(LGWR)定期將此緩沖區(qū)的內(nèi)容寫(xiě)入重做日志中。

  共享池(Shared Pool)

  共享池是SGA保留的區(qū),用于存儲(chǔ)如SQL、PL/SQL存儲(chǔ)過(guò)程及包、數(shù)據(jù)字典、鎖、字符集信息、安全屬性等。共享池包含有:1) 庫(kù)高速緩存(Library Cache);2) 字典高速緩沖區(qū)(Dictionary Cache )。

  庫(kù)高速緩存(Library Cache)

  該區(qū)包含有:1) 共享SQL區(qū)(Shared Pool Area);2) 私有SQL區(qū)(Private SQL Area);3) PL/SQL存儲(chǔ)過(guò)程及包(PL/SQL Procedure and Package);4) 控制結(jié)構(gòu)(Control Structure)。也就是說(shuō)該區(qū)存放有經(jīng)過(guò)語(yǔ)法分析并且正確的SQL語(yǔ)句,并隨時(shí)都準(zhǔn)備被執(zhí)行。

  字典高速緩沖區(qū)(Data Dictionary Cache)

  用于存放Oracle系統(tǒng)管理自身需要的所有信息,這些信息是登錄到Oracle的用戶名,這些用戶有那些數(shù)據(jù)庫(kù)對(duì)象以及這些數(shù)據(jù)庫(kù)對(duì)象的位置等。

  SVRMGR>; Show SGA Total System Global Area 35544188 bytes Fixed Size 22208 bytes Variable Size 3376332 bytes Database Buffer 122880 bytes Redo Buffer 32768 bytes

  后四項(xiàng)相加等于前一項(xiàng)。也可以使用 select * from v$SGA; 查詢當(dāng)前實(shí)例的SGA.

  大的池(Large Pool)

  在SGA中大池是可選的緩沖區(qū)。它可以根據(jù)需要有管理權(quán)進(jìn)行配置。它可以提供一個(gè)大的區(qū)以供象數(shù)據(jù)庫(kù)的備份與恢復(fù)等操作。

  程序全局區(qū)(PGA)

  PGA是Oracle使用的內(nèi)存區(qū)域,該區(qū)同一時(shí)間只能被一單個(gè)進(jìn)程存放數(shù)據(jù)和控制,用于存放會(huì)話變量及內(nèi)部數(shù)組等。

  §2.7.2

  程序全局區(qū)PGA是Oracle使用的內(nèi)存區(qū)域,該區(qū)同一時(shí)間只能被一單個(gè)進(jìn)程存放數(shù)據(jù)和控制,用于存放會(huì)話變量及內(nèi)部數(shù)組等。

  §2.8

  Oracle實(shí)例一個(gè)Oracle 實(shí)例(Instance) 是由SGA,后臺(tái)進(jìn)程以及數(shù)據(jù)文件組成,每個(gè)數(shù)據(jù)庫(kù)有自己的SGA和獨(dú)立的Oracle進(jìn)程集。

  在分布情況下,為使不同的數(shù)據(jù)庫(kù)系統(tǒng)的名字不致混淆,Oracle使用了一個(gè)SID(System Identifer)來(lái)標(biāo)識(shí)每個(gè)Oracle Server的名字,在UNIX環(huán)境中以變量Oracle_Sid來(lái)區(qū)分。

  §2.9 多線程服務(wù)器 (MTS)

  Oracle多線程服務(wù)器(Multithreader Server )允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行多個(gè)連接以充分共享內(nèi)存和資源,這使得可以用較少的內(nèi)存來(lái)支持較多的用戶。連接到Oracle數(shù)據(jù)庫(kù)的進(jìn)程都需要占用一定的內(nèi)存空間,這樣如果有過(guò)多的進(jìn)程連接到Oracle,則出現(xiàn)了一個(gè)性能瓶頸。

  Oracle8可以允許一萬(wàn)個(gè)以上用戶同時(shí)連接到Oracle,但并不是所有的用戶都使用MTS.目前的一些4GL工具并不支持MTS,象VB,PB等不支持MTS,象VC/C++可以支持MTS. Oracle多線程服務(wù)器有自己的連接池(即共享服務(wù)器進(jìn)程)。由于用戶共享開(kāi)放連接,這比原來(lái)的專用方法快的多(消除瓶頸)。

  多線程對(duì)于一些專用的應(yīng)用系統(tǒng)來(lái)說(shuō)是非常合適的,比如訂單登記系統(tǒng),顧客提交訂單,錄入員該訂單的數(shù)據(jù);另外的錄入員在與顧客交涉,并不都在錄入數(shù)據(jù)(專用服務(wù)器進(jìn)程閑著)。單這些終端被迫與系統(tǒng)連著,占據(jù)了其他用戶的資源。

  多線程服務(wù)器則消除這些缺點(diǎn)。多線程服務(wù)器只維護(hù)一個(gè)連接池,當(dāng)某個(gè)終端需和系統(tǒng)對(duì)話則給其分配一個(gè)連接即可。不需要?jiǎng)t可以去掉。這樣系統(tǒng)的資源被多個(gè)用戶平攤。

  改變參數(shù)文件中的相關(guān)參數(shù)來(lái)達(dá)到使系統(tǒng)成為多線程服務(wù)器配置(重新啟動(dòng)即可有效)。另外,數(shù)據(jù)庫(kù)實(shí)例必須提供用戶數(shù)目與所放置的一樣才行。

  §2.10 Oracle事務(wù)處理流程銀行取款業(yè)務(wù)處理流程:

  1. 發(fā)出查詢余款的SQL語(yǔ)句,如:Select account_balance From banktable Where account_number=’111222333’ And account_type=’SAVINGS’;

  SQL語(yǔ)句通過(guò)SGA得到服務(wù)器進(jìn)程;服務(wù)器進(jìn)程檢查共享池中有無(wú)該條語(yǔ)句,無(wú)該條語(yǔ)句則將放置共享池中并準(zhǔn)備運(yùn)行;執(zhí)行SQL語(yǔ)句,把存放有余款的數(shù)據(jù)塊從數(shù)據(jù)文件中讀到SGA的數(shù)據(jù)高速緩沖區(qū);顯示結(jié)果,比如余款為$325.

  2. 取款$25:SQL語(yǔ)句為:Update Bank_table set account_balanct=300 Where account_number=’111222333’ And account_type=’SAVINGS’;

  客戶進(jìn)程通過(guò)SGA把SQL語(yǔ)句傳給服務(wù)器進(jìn)程;服務(wù)器進(jìn)程查找有無(wú)該條語(yǔ)句,有執(zhí)行;分析SQL語(yǔ)句并存入共享池;執(zhí)行SQL語(yǔ)句;

  要處理的數(shù)據(jù)在數(shù)據(jù)高速緩沖區(qū)嗎?是轉(zhuǎn)7;l 從數(shù)據(jù)文件中讀數(shù)據(jù)塊到數(shù)據(jù)高速緩沖區(qū);在回滾段中記錄原來(lái)的數(shù)值($325);在重做日志中生成該事務(wù)的一個(gè)拷貝;將數(shù)據(jù)高速緩沖區(qū)中的余額改為$300;銀行柜員機(jī)通過(guò)SGA發(fā)出工作完成信號(hào)(提交):在重做日志中記錄已完成事務(wù);清除回滾段中的恢復(fù)信息(Undo Information);顧客取錢(qián)完成。

  §2.11

  ORACLE系統(tǒng)的SYS和SYSTEM模式SYS和SYSTEM 是每個(gè)ORACLE 數(shù)據(jù)庫(kù)系統(tǒng)缺省安裝的兩個(gè)帳戶。SYS 是所有內(nèi)部數(shù)據(jù)庫(kù)表、結(jié)構(gòu)、過(guò)程包、等擁有者,此外它還擁有 V$ 和數(shù)據(jù)字典視圖,并創(chuàng)建所有封裝的數(shù)據(jù)庫(kù)角色(DBA,CONNECT,RESOURCE)。 Sys是一個(gè)唯一能訪問(wèn)特定內(nèi)部數(shù)據(jù)字典的用戶。 System 也是在安裝ORACLE 時(shí)創(chuàng)建的用戶,用于 DBA 任務(wù)的管理。

  SYS 安裝后的缺省口令為 change_on_install; SYSTEM 缺省口令為 manager. 為了安全,可在安裝完成后。 用 ALTER USER sys IDENTIFIED BY password; 命令修改這兩個(gè)特權(quán)帳戶的口令。

  §2.12

  ORACLE系統(tǒng)跟蹤文件所有ORACLE 數(shù)據(jù)庫(kù)都至少有一個(gè)文件用于記錄系統(tǒng)信息,錯(cuò)誤及主要事件。這個(gè)文件叫做ALERTsid.log(這里的sid 為 oracle 的系統(tǒng)標(biāo)識(shí)),存儲(chǔ)位置由INITsid.ORA 文件的 BACKGROUND_DUMP_DEST 參數(shù)給出。

  后臺(tái)進(jìn)程和用戶進(jìn)程都可以建立各自的跟蹤文件,后臺(tái)進(jìn)程跟蹤文件位置由BACKGROUND_DUMP_DEST 參數(shù)給出, 而用戶跟蹤文件位置由 USER_DUMP_DEST 參數(shù)給出。 如參數(shù)文件 initora8.ora 中給出:

  # define directories to store trace and alert files background_dump_dest=d:\oracle\admin\ora8\bdump user_dump_dest=d:\oracle\admin\ora8\udump后臺(tái)跟蹤文件被命名為 sidPROC.TRC

  §2.13

  ORACLE系統(tǒng)數(shù)據(jù)字典數(shù)據(jù)字典(data dictionary)是存儲(chǔ)在數(shù)據(jù)庫(kù)中的所有對(duì)象信息的知識(shí)庫(kù),ORACLE數(shù)據(jù)庫(kù)系統(tǒng)使用數(shù)據(jù)字典獲取對(duì)象信息和安全信息,而用戶和DBA用它來(lái)查閱數(shù)據(jù)庫(kù)信息。數(shù)據(jù)字典保存數(shù)據(jù)對(duì)象和段的信息。如表、視圖、索引、包、過(guò)程以及用戶、權(quán)限、角色、審計(jì)等的信息。數(shù)據(jù)字典是只讀對(duì)象,不允許任何人對(duì)其進(jìn)行修改。

  §2.14

  其它數(shù)據(jù)對(duì)象ORACLE 除前面給出的數(shù)據(jù)對(duì)象外,還有包括視圖,序列,同義詞,觸發(fā)器,數(shù)據(jù)庫(kù)鏈及程序包,過(guò)程和函數(shù)。下面是必要介紹。

  §2.14.1

  視圖視圖是存儲(chǔ)在數(shù)據(jù)庫(kù)中的查詢的SQL 語(yǔ)句,它主要出于兩種主要原因:安全原因, 視圖可以隱藏一些數(shù)據(jù),如:社會(huì)保險(xiǎn)基金表,可以用視圖只顯示姓名,地址,而不顯示社會(huì)保險(xiǎn)號(hào)和工資數(shù)等,另一原因是可使復(fù)雜的查詢易于理解和使用。

  §2.14.2

  序列序列是用于產(chǎn)生唯一數(shù)碼的數(shù)據(jù)庫(kù)對(duì)象,序列創(chuàng)建時(shí)帶有 初始值,增量值,最大值等,最大可達(dá)38 位整數(shù)。

  §2.14.3

  觸發(fā)器觸發(fā)器(trigger)是個(gè)特殊的存儲(chǔ)過(guò)程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由個(gè)事件來(lái)觸發(fā),比如當(dāng)對(duì)一個(gè)表進(jìn)行操作( insert,delete, update)時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強(qiáng)數(shù)據(jù)的完整性約束和業(yè)務(wù)規(guī)則等。 觸發(fā)器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數(shù)據(jù)字典中查到。

  §2.14.4

  同義詞同義詞(synonym)是指向其它數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)指針。同義詞有兩種類型:私有(private)和公共(public)。私有的同義詞是在指定的模式中創(chuàng)建并且只創(chuàng)建者使用的模式訪問(wèn)。公共同義詞是由public 指定的模式訪問(wèn),所有數(shù)據(jù)庫(kù)模式(用戶)都可以訪問(wèn)它。

  §2.14.5

  數(shù)據(jù)庫(kù)鏈數(shù)據(jù)庫(kù)鏈( database link )是與遠(yuǎn)程數(shù)據(jù)庫(kù)連接的存儲(chǔ)定義, 它們用于查詢分布數(shù)據(jù)庫(kù)環(huán)境的遠(yuǎn)程者。 由于存儲(chǔ)在 DBA_DB_LINKS 數(shù)據(jù)字典中,所以可以把它們看作一種數(shù)據(jù)庫(kù)對(duì)象類型。

【Oracle基本術(shù)語(yǔ)】相關(guān)文章:

oracle數(shù)據(jù)庫(kù)基本語(yǔ)句02-08

乒乓球基本術(shù)語(yǔ)解釋10-08

羽毛球的一些基本術(shù)語(yǔ)10-25

Oracle認(rèn)證:ORACLE綁定變量BINDPEEKING08-26

中國(guó)象棋常用術(shù)語(yǔ)及行棋基本規(guī)則08-29

羽毛球基本術(shù)語(yǔ)中英文對(duì)比07-31

Oracle認(rèn)證:Oracle避免全表掃描方式08-26

Oracle認(rèn)證:Oracle內(nèi)存結(jié)構(gòu)研究-PGA篇08-26

oracle的sql語(yǔ)句06-18