oracle基本概念和術語

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

    §2.1  術語

      資料庫塊(BLOCK)

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

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

       瓶頸(Bottleneck)

    指限制系統效能的部件。

        物件導向的關聯式資料庫

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

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

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

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

        瘦客戶機(Thin  Client)

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

       資料線上分析處理(OLAP)

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

       多執行緒(MTS)

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

      資料倉儲(Data Warehouse)

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

        例項(Instance)

    是訪問Oracle資料庫所需的一部分計算機記憶體和輔助處理後臺程式。

       物件(Objects)

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

        資料庫檔案(Datafile)

    Oracle系統中用於存放資料(應用系統資料)的檔案。(14中的例子不準確,容易誤導讀者)。

        控制檔案(Control File)

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

       日誌檔案(Logs File)

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

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

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

       灰資料塊(Dirty data block)

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

       熱資料塊(Hot data block)

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

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

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

        表(Table)

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

         表空間(Tablespace)

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

       回滾(Rollback)

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

        恢復資訊(Undo Information)

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

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

       Oracle 資料字典l        表空間與資料檔案l        Oracle例項(Instance)

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

         資料庫中所有模式物件的資訊,如表、檢視、簇、及索引等。

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

          列的預設值。

          約束資訊的完整性。

         Oracle使用者的名字。

         使用者及角色被授予的許可權。

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

         其它產生的資料庫資訊。

    資料庫資料字典是一組表和檢視結構。它們存放在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 伺服器程式是處理使用者與例項連線的事務。任務是:

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

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

         返回必要資訊給應用。

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

       資料庫寫 (DBW0 或DBWn)

        日誌寫 (LGWR)

        檢測點 (CKPT)

        系統監視 (SMON)

       程式監視 (PMON)

       歸檔 (ARCn)

        恢復 (RECO)

         鎖(LCK0)

        工作佇列 (SNPn)

       佇列監視 (QMNn)

        釋出(Dispatcher) (Dnnn)

         伺服器 (Snnn)

    Oracle 的記憶體結構(SGA)

    SGA 結構為:

       資料高速緩衝區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        使用者資料

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

       系統資料

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

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

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

            Oracle資料庫至少有一個控制檔案;l        一般資料庫系統安裝完成後,自動建立兩個以上控制檔案;

      為了安全一般建議建立多個控制檔案;l        控制檔案可用下面命令查到:

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

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

          重做日誌是Oracle的日記帳,負責記錄所有使用者物件或系統變更的資訊;

        安裝完成後有多個重做日誌檔案,它們是幾個分為一組,組內的重做日誌檔案大小要一樣;

       為了使系統效能更好可以在建立多重做日誌檔案組;

       重做日誌檔案可以名下面命令查到:

    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)

            Oracle的資料塊也叫Oracle塊;l        Oracle系統在建立表空間時將資料檔案格式化成若干個Oracle塊;

       每個Oracle塊是Oracle系統處理的最小單位;

     塊的大小在安裝系統時確定,可以選擇“自定義安裝”來設定大小;

       塊的大小一旦確定下來就不能改動;

       塊的大小可以從2k至64k不等;l        塊的大小可以用下面命令查到:

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

    §2.5.2  區間(extent)

           分配給物件(如表)的任何連續塊叫區間;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        段使用同表空間中的若干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的資料庫例項是一組後臺程式和記憶體結構組成。而記憶體結構是包括:

           系統全域性區(System Global Area)

           程式全域性區(Program Global Area)

    §2.7.1  系統全域性區Oracle 系統用於存放系統資訊的一塊儲存區域,使用者程式和Oracle後臺程式都可以使用SGA.在SGA中含有許多元件(不同的部分)。

          資料高速緩衝區(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緩衝池包含有被分配的塊。

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

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

           共享池(Shared Pool)

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

           庫快取記憶體(Library Cache)

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

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

           字典高速緩衝區(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.

          大的池(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';

         SQL語句通過SGA得到伺服器程式;

        伺服器程式檢查共享池中有無該條語句,無該條語句則將放置共享池中並準備執行;

        執行SQL語句,把存放有餘款的資料塊從資料檔案中讀到SGA的資料高速緩衝區;

        顯示結果,比如餘款為$325.

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

           客戶程式通過SGA把SQL語句傳給伺服器程式;l        伺服器程式查詢有無該條語句,有執行(;l        分析SQL語句並存入共享池;l        執行SQL語句;

           要處理的資料在資料高速緩衝區嗎?是轉7;

        從資料檔案中讀資料塊到資料高速緩衝區;

        在回滾段中記錄原來的數值($325);

        在重做日誌中生成該事務的一個拷貝;

        將資料高速緩衝區中的餘額改為$300;

        銀行櫃員機通過SGA發出工作完成訊號(提交):

        在重做日誌中記錄已完成事務;

        清除回滾段中的恢復資訊(Undo Information);

        顧客取錢完成。

    §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 資料字典中,所以可以把它們看作一種資料庫物件型別。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/219982/viewspace-524685/,如需轉載,請註明出處,否則將追究法律責任。

相關文章