天天看點

[Oracle]oracle概念和術語

oracle資料庫系統是一個複雜的軟體系統。如果不了解其内部的結構原理及關系,就不可能設計和編寫出高品質的應用軟體系統,也不可能管理好一個複雜的

應用系統。為了給以後章節的打好基礎,本章簡要給出 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初學者指南>>p14中的例子不準确,容易誤導讀者)。

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)

可選程序,當在并行伺服器模式可出現多個鎖定程序以利于資料庫通信。

8)恢複器(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 系統用于存放系統資訊的一塊存儲區域,使用者程序和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 資料字典中,是以可以

把它們看作一種資料庫對象類型。