oracle基本概念和術語

來源:互聯網
上載者:User

oracle基本概念和術語
 
   ChinaITLab收集整理  2006-3-15  儲存本文  推薦給好友  QQ上看本站  收藏本站 

--------------------------------------------------------------------------------
 
 
    racle資料庫系統是一個複雜的軟體系統。如果不瞭解其內部的結構原理及關係,就不可能設計和編寫出高品質的應用軟體系統,也不可能管理好一個複雜的應用系統。為了給以後章節的打好基礎,本章簡要給出 ORACLE 8 /ORACLE8i資料庫系統結構的描述。

    §2.1  術語

    l        資料庫塊(BLOCK)

    ORACLE 資料庫中的最小儲存和處理單位,包含塊本身的頭資訊資料或PL/SQL代碼。

    ORACLE 塊的大小是可以在安裝時選擇“自訂安裝”來指定,也可以在CREATE DATABASE建立資料庫執行個體時指定。其最小為2K,最大可達為64K.

    l        瓶頸(Bottleneck)

    指限制系統效能的組件。

    l        物件導向的關聯式資料庫

    具有關聯式資料庫的全部功能,同時又支援物件導向的資料庫,稱作物件導向關聯式資料庫系統。Oracle7是一種功能完備的關聯式資料庫系統;oracle8是一種物件導向的關聯式資料庫系統。

    l        客戶/伺服器結構(Client/Server)

    有客戶機、伺服器、網路三要素的結構,客戶機(PC機)通過網路與伺服器相連和工作。

    l        胖客戶機(Fat  Client)

    一般的Client/Server結構中的客戶機均為胖客戶機。因為這些客戶機需要配置較高的裝置,如記憶體、硬碟、主頻、CD_ROM等。

    l        瘦客戶機(Thin  Client)

    也稱作NC(網路電腦),是一種記憶體配置小(過去指一般只有4M,現無法定義),無硬碟,只有處理心片的處理機。

    l        資料線上分析處理(OLAP)

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

    l        多線程(MTS)

    一個使用者可以同時運行多個程式對資料庫進行訪問,比如Visual C/C++可以提供同時啟動多個進程,而Visual Basic則不能。

    l        資料倉儲(Data Warehouse)

    支援大量資料資訊儲存的叫做支援資料倉儲或資料倉儲。當把幾個小型資料庫整合為一個大型資料庫,並為一個較廣泛的組織服務時,如果該資料庫儲存曆史資料,提供決策支援,提供資料匯總,提供唯讀資料,並且實質上充當所有向它提供資料的相關成品資料庫的資料接收器,那麼它通常被叫做資料倉儲。

    l        執行個體(Instance)

    是訪問Oracle資料庫所需的一部分電腦記憶體和輔助處理後台進程。

    l        對象(Objects)

    是實現世界實體的軟體表示,如表、索引、視圖、同義字、過程等。

    l        資料庫檔案(Datafile)

    Oracle系統中用於存放資料(應用系統資料)的檔案。(<<Oracle8初學者指南>;>14中的例子不準確,容易誤導讀者)。

    l        控制檔案(Control File)

    Oracle中存放系統用的一些資料的檔案。如資料檔案的路徑及檔案名稱,初始設定檔案路徑及 檔案名稱等都存放在控制檔案中。

    l        記錄檔(Logs File)

    也叫事務記錄檔案,該檔案記錄有事物對資料庫進行的一切修改操作或事務。

    l        DBA(Database  administrator-資料庫管理員)

    是管理資料庫系統的技術工具或人員,在完備的資料庫系統中都提供DBA功能。

    l        灰資料區塊(Dirty data block)

    存放在記憶體中的未經處理資料已被修改,而修改後的資料還未寫入資料庫中。

    l        熱資料區塊(Hot data block)

    存放著那些經常被修改資料叫熱資料區塊。

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

    Oracle系統使用的一種演算法,對於在記憶體中但最近又不用的資料區塊(記憶體塊)叫做LRU,Oracle會根據那些資料屬於LRU而將其移出記憶體而騰出空間來載入另外的資料。

    l        表(Table)

    存放專門資料而建立和分配的空間。

    l        資料表空間(Tablespace)

    是一個或多個資料檔案的集合,所有的資料對象都存放在指定的資料表空間中,但主要存放的是表, 所以稱作資料表空間。

    l        復原(Rollback)

    將使用者(或者說事務)改變的資料恢複到上一次所處的狀態。

    l        恢複資訊(Undo Information)

    記錄用於恢複的資訊稱作恢複資訊。復原就是根據恢複資訊內容進行恢複的。

    §2.2  Oracle資料庫結構Oracle資料庫結構是Oracle資料庫系統的主要部分,它是一些可以看得見的軟體,包括:

    l        Oracle 資料字典l        資料表空間與資料檔案l        Oracle執行個體(Instance)

    §2.2.1  Oracle 資料字典Oracle資料庫的重要部分是資料字典。它存放有Oracle資料庫所用的有關資訊,對使用者來說是一組唯讀表。資料字典內容包括:

    l         資料庫中所有模式對象的資訊,如表、視圖、簇、及索引等。

    l         分配多少空間,當前使用了多少空間等。

    l          列的預設值。

    l          約束資訊的完整性。

    l          Oracle使用者的名字。

    l          使用者及角色被授與權限。

    l          使用者訪問或使用的審計資訊。

    l          其它產生的資料庫資訊。

    資料庫資料字典是一組表和視圖結構。它們存放在SYSTEM資料表空間中。

    資料庫資料字典不僅是每個資料庫的中心。而且對每個使用者也是非常重要的資訊。使用者可以用SQL語句訪問資料庫資料字典。

    §2.2.2  資料表空間與資料檔案簡單說,資料表空間就是一個或多個資料檔案(物理檔案)的集合(邏輯檔案)。一般有下面的資料表空間:

    1)系統資料表空間(System tablespace)

    是各種不同版本的Oracle必備的部分,存放Oracle系統的一些資訊,一般只有一個SYSTEM資料表空間。

    2)暫存資料表空間(Temporary  tablespace )

    由於Oracle工作時經常需要一些臨時的磁碟空間,這些空間主要用作查詢時帶有排序(Group by,Order by等)等演算法所用,當用完後就立即釋放,對記錄在磁碟區的資訊不再使用,因此叫暫存資料表空間。一般安裝之後只有一個TEMP暫存資料表空間。

    3)工具資料表空間(Tools tablespace)

    用於儲存Oracle資料庫工具所需的資料庫物件,這些工具資料表空間存放在工作時所用的專用表。舊的Oracle版本無此資料表空間。安裝之後的工具資料表空間是Tools.

    4)使用者資料表空間(Users tablespace)

    用於存放一些實驗例子用的空間,當然也可以用於存放應用系統的資料。舊版本無Users資料表空間。現在的使用者資料表空間為 USERS .

    5)資料及索引資料表空間存放資料及索引的資料表空間,Oracle7以後都提倡在應用系統中,特別是具有大量資料的系統,要把資料和索引分開存放在不同的分區中,以便提高查詢速度。在安裝後索引資料表空間可能是INDX.資料資料表空間就是USERS.

    6)復原段資料表空間(Rollback Segment)

    Oracle資料庫系統在運行Insert、Update、Delete時都需要一個磁碟空間來存放恢複資訊(Undo Information),以便在進行恢複時能將原來資訊讀出來。安裝後的復原段資料表空間是RBS資料表空間。資料庫管理員也可根據應用的需要建立另外的復原段資料表空間。

    Oracle 以資料表空間來儲存邏輯資料並 以物理資料相連。

    Tablespace  1                                                           Tablespace 2

    資料庫被分成一個或多個邏輯組件稱作資料表空間。而資料表空間又被分成稱作段(segment)的邏輯組件。這些段再細分就叫擴充(extents)。

    §2.2.3  Oracle執行個體Oracle執行個體(Instance)是由一組後台進程和記憶體結構組成。每個啟動並執行資料庫系統都與執行個體有關。所以,有時稱Oracle執行個體為資料庫作業系統。下面是Oracle執行個體的解釋。

    Oracle 進程Oracle有兩種類型的進程: 伺服器處理序和後台進程(server processes and background processes)。

    伺服器處理序Oracle 伺服器處理序是處理使用者與執行個體串連的事務。任務是:

    l        分析和執行應用所發出的SQL語句。

    l        從資料檔案讀必要的資料到SGA區的共用資料區。

    l        返回必要資訊給應用。

    後台進程Oracle系統使用一些附加的進程來處理系統的必須的工作。這些進程叫後台進程:

    l        資料庫寫 (DBW0 或DBWn)

    l        日誌寫 (LGWR)

    l        檢測點 (CKPT)

    l        系統監視 (SMON)

    l        進程監視 (PMON)

    l        歸檔 (ARCn)

    l        恢複 (RECO)

    l        鎖(LCK0)

    l        工作隊列 (SNPn)

    l        隊列監視 (QMNn)

    l        發布(Dispatcher) (Dnnn)

    l        伺服器 (Snnn)

    Oracle 的記憶體結構(SGA)

    SGA 結構為:

    l        資料高速緩衝區l        重做日誌緩衝區l        共用池l        大的共用池(可選)

    l        資料字典緩衝區l        其它資料緩衝區

    §2.3  Oracle資料庫檔案ORACLE 資料庫是一個複雜的資料庫作業系統,由一系列組件組成,主要有:1)初始化參數檔案、2)資料檔案、3)控制檔案、4)記錄檔等。

    §2.3.1  初始化參數檔案初始化參數檔案(initialization parameter file) INITsid.ORA,是 ORALE RDBMS 主要的配置點,它是配置參數和數值的集合。每一個參數值都控制或修改資料庫和執行個體的某個方面。 早期的版本把參數都寫在 initsid.ora 檔案中,但在ORACLE8 之後,多數參數已不在該檔案中出現,需修改這些參數時只能在SQL>;下用 SET SESSION 或 SET SYSTEM 來進行。 查看系統參數可用。例如:

    SQL>;select * from v$parameter;

    來列出。

    Oracle初始化參數檔案是一個可以編輯的文字檔。它是在資料庫執行個體啟動時被訪問,從而得到資料檔案、記錄檔、控制檔案等的路徑,此外,初始化參數檔案還提供執行個體所用的參數等。

    初始化參數檔案 INITsid.ORA 參見 附錄 .

    §2.3.2  資料檔案用於存放所有資料庫的資料檔案,Oracle安裝過程中自動建立多個必要的資料檔案。這些資料檔案用於存放Oracle系統的基本資料。在應用系統開發過程中,我們可根據需要另建立一些資料檔案。

    如果資料檔案按它們存放的資料類型來分的話,可以分為:l        使用者資料

    存放應用系統的資料為使用者資料。

    l        系統資料

    系統管理使用者資料和資料庫系統本身的資料,如資料字典,使用者建立的表的名字,類型等都記錄在系統資料中。

    §2.3.3  控制檔案控制檔案是由Oracle資料庫執行個體在啟動時被訪問的內部二進位檔案,它們所存放的路徑由參數檔案的control_files=參數來確定。

    Oracle一般有兩個或更多的控制檔案,每個控制檔案記錄有相同的資訊,在資料庫運行中如果某個控制檔案出錯時,Oracle會自動使用另外一個控制檔案。當所有的控制檔案都損壞時系統將不能工作。

    l        Oracle資料庫至少有一個控制檔案;l        一般資料庫系統安裝完成後,自動建立兩個以上控制檔案;l        為了安全一般建議建立多個控制檔案;l        控制檔案可用下面命令查到:

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

    §2.3.4  重做記錄檔重做記錄檔是Oracle系統中一個很重要的檔案。特點是:

    l        重做日誌是Oracle的日記帳,負責記錄所有使用者物件或系統變更的資訊;l        安裝完成後有多個重做記錄檔,它們是幾個分為一組,組內的重做記錄檔大小要一樣;l        為了使系統效能更好可以在建立多重做記錄檔組;l        重做記錄檔可以名下面命令查到:

    select * from v$logfile;

    §2.3.5  其它支援檔案除了上面的三類檔案外,還有:l        Sqlnet.ora檔案;l        Tnsnames.ora檔案;l        Listener.ora檔案等。

    §2.4  重做日誌和重做日誌工作模式重做日誌、記錄檔及重做日工作模式是Oracle系統中很重要的概念,管理員要完全理解它們的原理和使用方法。下面只給簡單的概念,有關的管理在另外章節給出。

    §2.4.1  重做日誌Oracle所作的一切操作都記錄在記錄檔中,Oracle系統在工作當中並不是每作一條記錄的修改就立即存檔(寫入資料檔案),而是只作修改記錄,聯機重做日誌就儲存所有這些改變的資訊。當所有的修改最後寫入資料檔案時,所有的修改仍記錄在聯機重做日誌中,這將有利於對這些事務記錄進行恢複操作。但如果不是聯機重做日誌,則只能恢複部分近期的操作。

    §2.4.2  重做日誌工作模式Oracle可以在兩種模式之一來工作:1)ARCHIVELOG模式(可恢複)

    Oracle 一般至少有兩個記錄檔。它們輪流交替地被寫入所作的一切修改資訊。當系統設定為可復原模式,Oracle自動將每次即將被覆蓋(衝掉)的日誌資訊先作備份,然後再其上記錄所修改的資訊。這樣的方式,就可以利用備份與恢複工作進行某時期的資料恢複。

    2)NOARCHIVELOG模式(有限的恢複)

    預設情況下為NOARCHIVELOG,Oracle不保留舊的重做日誌資訊(可以在原來基礎覆蓋寫入)。因此一般情況下不可恢複的。

    §2.5  資料區塊、區間和段§2.5.1  資料區塊(data block)

    l        Oracle的資料區塊也叫Oracle塊;l        Oracle系統在建立資料表空間時將資料檔案格式化成若干個Oracle塊;l        每個Oracle塊是Oracle系統處理的最小單位;l        塊的大小在安裝系統時確定,可以選擇“自訂安裝”來設定大小;l        塊的大小一旦確定下來就不能改動;l        塊的大小可以從2k至64k不等;l        塊的大小可以用下面命令查到:

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

    §2.5.2  區間(extent)

    l        分配給對象(如表)的任何連續塊叫區間;l        區間也叫擴充,因為當它用完已經分配的區間後,再有新的記錄插入就必須在分配新的區間(即擴充一些塊);l        區間的大小由 next 決定;l        一旦區間分配給某個對象(表、索引及簇),則該區間就不能再分配給其它的對象;l        一個對象所用去多少區間可用下命令查到:

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

    §2.5.3  段(segment)

    l        段是指佔用資料檔案空間的通稱,或資料庫物件使用的空間的集合;l        段可以有表段、索引段、復原段、臨時段和快取段等;l        段使用同資料表空間中的若干Oracle塊(可以位於不同資料檔案中)。

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

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

    1)        段被分配=初始區間=500k;2)        當開始的500k用完後就再分配256k; 此時段=500k+256k;3)        如果所分配的區間又用完後,就再分配256k, …

    段(segment)、區間(extent)及塊的關係(seg_ext_block)

    §2.6  Oracle資料庫進程一般情況,當資料庫啟動完成後(Instance 啟動成功)就至少有六個後台進程在活動,這些進程根據資料庫的需要而分工不同。他們分別是:

    1)資料庫寫入器(DBWR)

    資料庫寫入器(Database Writer)的任務是將修改後的(在記憶體)資料區塊寫回資料庫檔案中。在某些作業系統中,Oracle可以有兩個BDWR進程。

    2)校正點(CKPT)

    是一個可選進程。在系統運行中當出現尋找資料請求時,系統從資料庫中找出這些資料並存入記憶體區,這樣使用者就可以對這些記憶體區資料進行修改等。當需要對被修改的資料寫回資料檔案時就產生重做日誌的交替寫(Switch),這時就出現校正點。系統要把記憶體中灰資料(修改過)塊中的資訊寫回磁碟的資料檔案中,此外系統還將重做日誌通知控制檔案。DBA可以改變參數檔案中CHECKPOINT_PROCESS TRUE來使能( 使有效或無效)該進程。

    3)日誌寫入器(LGWR)

    用於將SGA區中的日誌資訊寫入記錄檔的進程。一般是使用者所作的修改值先記入記錄檔。等到一定時才真正將修改結果寫回資料檔案。

    4)系統監控器(SMON)

    系統監控器(System monitor)是在資料庫系統啟動時執行恢複工作的強制性進程。比如在並行伺服器模式下(兩台伺服器共用一磁碟組),SMON可以恢複另一台處於失敗的資料庫。使系統切換到另一台正常的伺服器上。

    5)進程監控器(PMON)

    進程監控器(Process Monitor)用於終止那些失敗的使用者,釋放該使用者所佔用的資源等。

    6)歸檔器(ARCH)

    可選進程,當資料庫系統處于歸檔(ARCHIVELOG)模式時使用。

    7)鎖(LCKn)

    可選進程,當在並行伺服器模式可出現多個鎖定進程以利於資料庫通訊。

    恢複器(RDCO)

    分散式資料庫(不同地點有不同機器和不同的Oracle系統)模式下使用的可選進程,用於資料不一致時作的恢複工作。在RECO解決恢複前,所作的修改資料的標誌均標為“可疑”。

    9)調度(Dnnn)

    可選進程,在多線程下使用,即對每個在用(D000,……,Dnnn)的通訊協定至少建立一個調度進程,每個調度進程負責從所聯結的使用者進程到可用伺服器處理序的路由請求。把響應返回給合適的使用者進程。

    10)快照進程(SNPn)

    快照進程處理資料庫快照集的自動重新整理,並通過 DBMS_JOB 包運行預定的資料庫過程。 INITsid.ORA 參數 JOB_QUEUE_PROCESS 設定快照進程數, 參數 JOB_QUEUE_INTERVAL 決定快照進程在被喚醒以處理掛起的作業或事務之前休眠的秒數。

    11)並行查詢進程(Pnnn)

    可根據資料庫的活動並行查詢選項的設定,ORACLE伺服器起動或停止查詢進程。這些進程涉及並行索引的建立,表的建立及查詢。 啟動的數量與參數 PARALLEL_MIN_SERVERS指定的數量相同,不能超出該參數指定的值。

    §2.7  Oracle記憶體結構前面提到過Oracle的資料庫執行個體是一組後台進程和記憶體結構組成。而記憶體結構是包括:

    l        系統全域區(System Global Area)

    l        程式全域區(Program Global Area)

    §2.7.1  系統全域區Oracle 系統用於存放系統資訊的一Block Storage地區,使用者進程和Oracle後台進程都可以使用SGA.在SGA中含有許多組件(不同的部分)。

    l        資料高速緩衝區(Data Buffer Cache)

    在資料高速緩衝區中存放著Oracle系統最近使用過的資料區塊(即使用者的高速緩衝區),當把資料寫入資料庫時,它以資料區塊為單位進行讀寫,當資料高速緩衝區填滿時,則系統自動去掉一些不常被用訪問的資料。如果使用者要查的資料不在資料高速緩衝區時,Oracle自動從磁碟中去讀取。資料高速緩衝區包括三個類型的區:

    1) 髒的區(Dirty Buffers):包含有已經改變過並需要寫回資料檔案的資料區塊。

    2) 自由區(Free Buffers):沒有包含任何資料並可以再寫入的區,Oracle可以從資料檔案讀資料區塊該區。

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

    Oracle8i以後將緩衝池分為三個區(使用多個緩衝池特性時):1) KEEP 緩衝池(KEEP buffer pool):在記憶體中保留資料區塊,它們不會被從記憶體中擠掉;2) RECYCLE緩衝池從不需要的記憶體將資料移掉;3) DEFAULT緩衝池包含有被分配的塊。

    l        重做日誌緩衝區(Rado Log Buffer)

    任何事務(Transaction)在記錄到重做日誌(恢複工作需要使用聯機重做日誌)之前都必須首先放到重做日誌緩衝區(Redo Log Buffer)中。然後由日誌寫入進程(LGWR)定期將此緩衝區的內容寫入重做日誌中。

    l        共用池(Shared Pool)

    共用池是SGA保留的區,用於儲存如SQL、PL/SQL預存程序及包、資料字典、鎖、字元集資訊、安全屬性等。共用池包含有:1) 庫快取(Library Cache);2) 字典高速緩衝區(Dictionary Cache )。

    l        庫快取(Library Cache)

    該區包含有:1) 共用SQL區(Shared Pool Area);2) 私人SQL區(Private SQL Area);3) PL/SQL預存程序及包(PL/SQL Procedure and Package);4) 控制結構(Control Structure)。

    也就是說該區存放有經過文法分析並且正確的SQL語句,並隨時都準備被執行。

    l        字典高速緩衝區(Data Dictionary Cache)

    用於存放Oracle系統管理自身需要的所有資訊,這些資訊是登入到Oracle的使用者名稱,這些使用者有那些資料庫物件以及這些資料庫物件的位置等。

    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

    後四項相加等於前一項。

    也可以使用 select * from v$SGA; 查詢當前執行個體的SGA.

    l        大的池(Large Pool)

    在SGA中大池是可選的緩衝區。它可以根據需要有管理權進行配置。它可以提供一個大的區以供象資料庫的備份與恢複等操作。

    2)程式全域區(PGA)

    PGA是Oracle使用的記憶體地區,該區同一時間只能被一單個進程存放資料和控制,用於存放會話變數及內部數組等。

    SGA Oracle記憶體結構(SGA圖)

    §2.7.2  程式全域區PGA是Oracle使用的記憶體地區,該區同一時間只能被一單個進程存放資料和控制,用於存放會話變數及內部數組等。

    §2.8  Oracle執行個體一個Oracle 執行個體(Instance) 是由SGA,後台進程以及資料檔案組成,每個資料庫有自己的SGA和獨立的Oracle進程集。:

    Oracle 執行個體和後台進程(instance圖)

    在分布情況下,為使不同的資料庫系統的名字不致混淆,Oracle使用了一個SID(System Identifer)來標識每個Oracle Server的名字,在UNIX環境中以變數Oracle_Sid來區分。

    §2.9  多線程伺服器 (MTS)

    Oracle多線程伺服器(Multithreader  Server )允許對資料庫進行多個串連以充分共用記憶體和資源,這使得可以用較少的記憶體來支援較多的使用者。

    串連到Oracle資料庫的進程都需要佔用一定的記憶體空間,這樣如果有過多的進程串連到Oracle,則出現了一個效能瓶頸。

    Oracle8可以允許一萬個以上使用者同時串連到Oracle,但並不是所有的使用者都使用MTS.目前的一些4GL工具並不支援MTS,象VB,PB等不支援MTS,象VC/C++可以支援MTS. Oracle多線程伺服器有自己的串連池(即共用伺服器處理序)。由於使用者共用開放串連,這比原來的專用方法快的多(消除瓶頸)。

    多線程對於一些專用的應用系統來說是非常合適的,比如訂單登記系統,顧客提交訂單,錄入員該訂單的資料;另外的錄入員在與顧客交涉,並不都在錄入資料(專用伺服器處理序閑著)。單這些終端被迫與系統連著,佔據了其他使用者的資源。

    多線程伺服器則消除這些缺點。多線程伺服器只維護一個串連池,當某個終端需和系統對話則給其分配一個串連即可。不需要則可以去掉。這樣系統的資源被多個使用者平攤。

    改變參數檔案中的相關參數來達到使系統成為多線程伺服器配置(重新啟動即可有效)。另外,資料庫執行個體必須提供使用者數目與所放置的一樣才行。

    §2.10  Oracle交易處理流程銀行取款業務處理流程:

    1. 發出查詢餘款的SQL語句,如:Select   account_balance   From   banktable Where   account_number='111222333' And   account_type='SAVINGS';

    l        SQL語句通過SGA得到伺服器處理序;l        伺服器處理序檢查共用池中有無該條語句,無該條語句則將放置共用池中並準備運行;l        執行SQL語句,把存放有餘款的資料區塊從資料檔案中讀到SGA的資料高速緩衝區;l        顯示結果,比如餘款為$325.

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

    l        客戶進程通過SGA把SQL語句傳給伺服器處理序;l        伺服器處理序尋找有無該條語句,有執行(;l        分析SQL語句並存入共用池;l        執行SQL語句;

    l        要處理的資料在資料高速緩衝區嗎?是轉7;l        從資料檔案中讀資料區塊到資料高速緩衝區;l        在復原段中記錄原來的數值($325);l        在重做日誌中產生該事務的一個拷貝;l        將資料高速緩衝區中的餘額改為$300;l        銀行櫃員機通過SGA發出工作完成訊號(提交):l        在重做日誌中記錄已完成事務;l        清除復原段中的恢複資訊(Undo Information);l        顧客取錢完成。

    §2.11  ORACLE系統的SYS和SYSTEM模式SYS和SYSTEM 是每個ORACLE 資料庫系統預設安裝的兩個帳戶。SYS 是所有內部資料庫表、結構、過程包、等擁有者,此外它還擁有 V$ 和資料字典視圖,並建立所有封裝的資料庫角色(DBA,CONNECT,RESOURCE)。 Sys是一個唯一能訪問特定內部資料字典的使用者。 System 也是在安裝ORACLE 時建立的使用者,用於 DBA 任務的管理。

    SYS 安裝後的預設口令為 change_on_install; SYSTEM 預設口令為 manager. 為了安全,可在安裝完成後。 用 ALTER USER sys IDENTIFIED BY  password; 命令修改這兩個特權帳戶的口令。

    §2.12  ORACLE系統追蹤檔案所有ORACLE 資料庫都至少有一個檔案用於記錄系統資訊,錯誤及主要事件。這個檔案叫做ALERTsid.log(這裡的sid 為 oracle 的系統標識),儲存位置由INITsid.ORA 檔案的 BACKGROUND_DUMP_DEST 參數給出。

    後台進程和使用者進程都可以建立各自的追蹤檔案,後台進程追蹤檔案位置由BACKGROUND_DUMP_DEST 參數給出, 而使用者追蹤檔案位置由 USER_DUMP_DEST 參數給出。 如參數檔案 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後台追蹤檔案被命名為 sidPROC.TRC

    §2.13  ORACLE系統資料字典資料字典(data dictionary)是儲存在資料庫中的所有對象資訊的知識庫,ORACLE資料庫系統使用資料字典擷取對象資訊和安全資訊,而使用者和DBA用它來查閱資料庫資訊。資料字典儲存資料對象和段的資訊。如表、視圖、索引、包、過程以及使用者、許可權、角色、審計等的資訊。資料字典是唯讀對象,不允許任何人對其進行修改。

    §2.14  其它資料對象ORACLE 除前面給出的資料對象外,還有包括視圖,序列,同義字,觸發器,資料庫鏈及程式包,過程和函數。下面是必要介紹。

    §2.14.1  視圖視圖是儲存在資料庫中的查詢的SQL 陳述式,它主要出於兩種主要原因:安全原因, 視圖可以隱藏一些資料,如:社會保險基金錶,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數等,另一原因是可使複雜的查詢易於理解和使用。

    §2.14.2  序列序列是用於產生唯一數位的資料庫物件,序列建立時帶有 初始值,增量值,最大值等,最大可達38 位整數。

    §2.14.3  觸發器觸發器(trigger)是個特殊的預存程序,它的執行不是由程式調用,也不是手工啟動,而是由個事件來觸發,比如當對一個表進行操作( insert,delete, update)時就會啟用它執行。觸發器經常用於加強資料的完整性條件約束和商務規則等。 觸發器可以從 DBA_TRIGGERS ,USER_TRIGGERS 資料字典中查到。

    §2.14.4  同義字同義字(synonym)是指向其它資料庫表的資料庫指標。同義字有兩種類型:私人(private)和公用(public)。私人的同義字是在指定的模式中建立並且只建立者使用的模式訪問。公用同義字是由public 指定的模式訪問,所有資料庫模式(使用者)都可以訪問它。

    §2.14.5  資料庫鏈資料庫鏈( database link )是與遠端資料庫串連的儲存定義, 它們用於查詢分布資料庫環境的遠程者。 由於儲存在 DBA_DB_LINKS 資料字典中,所以可以把它們看作一種資料庫物件類型。
 
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.