![Oracle數據庫基礎知識華為內部培訓_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/013559df-a282-446e-beff-77076f735d62/013559df-a282-446e-beff-77076f735d621.gif)
![Oracle數據庫基礎知識華為內部培訓_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/013559df-a282-446e-beff-77076f735d62/013559df-a282-446e-beff-77076f735d622.gif)
![Oracle數據庫基礎知識華為內部培訓_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/013559df-a282-446e-beff-77076f735d62/013559df-a282-446e-beff-77076f735d623.gif)
![Oracle數據庫基礎知識華為內部培訓_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/013559df-a282-446e-beff-77076f735d62/013559df-a282-446e-beff-77076f735d624.gif)
![Oracle數據庫基礎知識華為內部培訓_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/013559df-a282-446e-beff-77076f735d62/013559df-a282-446e-beff-77076f735d625.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程IL001100ORACLE據庫基礎知識ISSUE1.0開心Java整理華為技術目錄課程說明1課程介紹1課程目標1相關資料1第1章ORACLE數據庫概述21.1 產品概述21.1.1 產品簡介21.1.2 基本概念31.2 ORACLE系統(tǒng)結構41.2.1 ORACLE物理結構41.2.2 系統(tǒng)全局區(qū)61.2.3 進程81.3 存儲管理101.3.1 邏輯結構101.3.2 表(Table)151.3.3 視圖(View)181.3.4 索引(Index)191.3.5 同義詞(Synonym)191.3.6 序列(Sequence)191.3.7 數據庫鏈(DatabaseLink)20
2、第2章管理ORACLE數據庫222.1 基本概念222.1.1 數據字典222.1.2 事務管理242.1.3 數據庫管理員(DBA)252.1.4 ORACLE的四種狀態(tài)262.2 SQL*Plus方式的ORACLE數據庫啟動和關閉272.2.1 啟動數據庫272.2.2 關閉數據庫272.3 svrmgrl方式的ORACLE數據庫啟動和關閉292.3.1 啟動數據庫292.3.2 關閉數據庫312.4 應用開發(fā)工具(SQL*Plus)322.4.1 SQL332.4.2 PL/SQL342.4.3 數據庫管理工具372.5 ORACLE用戶及權限管理382.5.1 ORACLE的用戶管理3
3、82.5.2 ORACLE的權限管理392.6 ORACLE數據庫的備份與恢復412.6.1 Export轉入程序412.6.2 Import轉入程序442.6.3 增量卸出/裝入46第3章ORACLE數據庫的網絡應用483.1 SQL*Net產品介紹483.2 配置客戶機/服務器結構493.2.1 配置listener.ora493.2.2 配置tnsnames.ora文件50第4章常用任務示例544.1 如何恢復被誤刪的數據文件544.2 如何殺掉吊死session544.3 如何修改字符集544.4 如何追加表空間544.5 如何加大表的maxextents值554.6 如何查詢無效對象
4、554.7 怎樣分析SQL語句是否用到索引554.8 怎樣判斷是否存在回滾段競爭564.9 怎樣手工跟蹤函數/存儲過程執(zhí)行情況574.10 多種業(yè)務使用同一數據庫如何分配回滾段574.11 怎樣倒出、倒入文本數據584.11.1 倒出584.11.2 倒入584.12 如何更新當前數據庫日志備份方式為archive594.13 Unix環(huán)境下如何實現自動備份594.13.1 設置運行環(huán)境594.13.2 倒出數據604.13.3 異地備份604.13.4 啟動備份進程61小結64附錄AORACLE數據字典與視圖65附錄B動態(tài)性能表71附錄CSQL語言運算符與函數73課程說明課程介紹本課程對應的
5、產品版本為:Oracle8.1.7。課程目標完成本課程的學習后,您應該能夠:掌握ORACLE數據庫系統(tǒng)結構中物理結構、系統(tǒng)全局區(qū)和進程的概念掌握ORACLE數據庫的存儲管理知識掌握管理ORACLE數據庫的方法了解ORACLE數據庫的網絡應用相關資料ORACL公司發(fā)布的相關資料。第1章ORACLE數據庫概述1.1 產品概述1.1.1 產品簡介數據庫技術產生于60年代末70年代初,到現在比較知名的大型數據庫系統(tǒng)有ORACLESybase、Informix、DB2(IBM公司的)、Ingress、RDBSQLServer等。ORACL蟲司于1979年,首先推出基于SQL標準的關系數據庫產品,可以在1
6、00多種硬件平臺上運行(包括微機、工作站、小型機、中型機和大型機),支持多種操作系統(tǒng)。1986年,ORACL睢出具有分布式結構的版本5,可將數據和應用駐留在多臺計算機上,而相互間的通信是透明的。1988年,推出版本6(V6.0)可帶事務處理選項,提高了事務處理的速度。1992年推出了版本7,可帶過程數據庫選項、分布式數據庫選項和并行服務器選項,稱為ORACLE激據庫管理系統(tǒng),它釋放出了開放的關系型系統(tǒng)的真正潛力。目前,新版本為ORACLE9i通用版本為ORACLE8i版本Oracle8i是在企業(yè)內和因特網上開發(fā)、布署和管理應用高移動性和可伸縮性的數據庫。Oracle8i最主要的新特性是在數據庫
7、中包括Java和因特網能力。Oracle8i還包括能夠管理和訪問多媒體(視頻、音頻、圖像、文本、空間)的OracleinterMedia。Oracle8i還包括OracleWebDB,這個Web開發(fā)環(huán)境使開發(fā)者能建立使用標準的Web瀏覽器和Oracle8i數據庫的動態(tài)的、數據驅動的Web網站。ORACLE8i是一種通用叫法,它包括許多更細版本,如ORACLE8.1.5、ORACLE8.1.6、ORACLE8.1.7,華為公司TELLINU-NICA產品使用版本ORACLE8.1.7序列。說明:“i”表示ORACLE數據庫與internet的結合。ORACLE用多達5個號碼來完全識別一個版本,如
8、“8.1.7.2.3:命名方法如下:序號值含義第一位8版本號(Version),是主要的標識符,表示軟件的主要版本,包含顯著的新功能,例如:版本8(也標識為版本8.0)。第二位1新特征版本號(NewFeaturesReleaseNumber),該位表示新特征版本級,例如:版本8.1。第三位7維護版本號(MaintenanceReleaseNumber),該位表示一個維護版本級。也可能包含一些新特征,例如:版本8.0.4、8.1.7。第四位2通用補丁級號(GenericPatchSetNumber),該位表示一個通用補丁級。補丁級可以跨越所有操作系統(tǒng)和硬件平臺使用,例如:補丁級版本8.1.7.2
9、第五位3專用平臺補丁級(PlatformSpecificPatchSetNumber),該位表示一個只能應用到特定的操作系統(tǒng)和硬件平臺的補丁級,例如:補丁級8.1.7.2.3??梢杂萌缦碌腟QL語句得到ORACLE版本信息:SQL>select*fromproduct_component_version;1.1.2 基本概念要了解ORACL嗷據庫,需要先了解以下基本概念:數據庫:是一個數據集合,我們大多數情況下講的數據庫概念不僅是指物理數據,還指內存、進程對象的組合。ORACLE數據庫都將數據存儲在文件中,在其內部,數據庫結構提供了數據對文件的邏輯映射,允許不同類型的數據分開存放。這些邏
10、輯劃分稱為表空間。關于表空間的概念將在下文中介紹。表空間(Tablespace):是數據庫的邏輯劃分,每個數據庫至少有一個表空間(system表空間)。數據文件(DataFile):每個表空間由同一磁盤上的一個或多個文件組成,這些文件叫數據文件。建立新表空間需要建立新的數據文件。實例(Instance):也稱為服務器(server),是存取和控制數據庫的軟件機制,它由系統(tǒng)全局區(qū)SGA和后臺進程組成。ORACLE數據庫啟動時,實際是啟動ORACLE實例,(安裝并打開數據庫)一個數據庫可以被多個實例訪問(這是ORACLE的并行服務器選項)。決定實例的大小及組成的參數存儲在init.ora文件中,實
11、例啟動時需要讀這個文件,并且在運行時可以由數據庫管理員修改,但要在下次啟動實例時才會起作用。說明:實例名字可以由環(huán)境變量ORACLE_SID來定義。實例的init.ora文件名通常包含該實例的名字,格式為initSID.ora:如一個實例的名字(SID)為ora817,則init.ora文件名通常為initora817.ora。1.2 ORACLE系統(tǒng)結構任何硬件平臺或操作系統(tǒng)下的ORACL林系結構是相同的,包括如下三個方面:(1) 物理結構:數據文件,日志文件,控制文件,參數文件。(2) 系統(tǒng)全局區(qū)(SGA):共享池,數據緩沖區(qū),日志緩沖區(qū),字典緩沖區(qū)。(3) 進程:用戶進程,服務器進程,后
12、臺進程。具體結構如圖1-1所示。工具接口程序工具圖1-1 ORACLE數據庫體系結構1.2.2ORACLE物理結構一個ORACL曖據庫是數據的集合,被處理成一個單位。一個ORACL瞰據庫有一個物理結構和一個邏輯結構。數據庫物理結構是由構成數據庫的操作系統(tǒng)文件所決定。每一個ORACL嗷據庫是由四種類型的文件組成:數據文件、日志文件、控制文件和參數文件。數據庫的文件為數據庫信息提供真正的物理存儲。ORACL嗽據庫的物理結構由四類文件組成1 .數據文件數據文件是物理存儲ORACL曖據庫數據的文件,每一個ORACL曖據庫有一個或多個物理的數據文件(datafile)。一個數據庫的所有數據文件包含了全部
13、數據庫數據。邏輯數據庫結構(如表、索引)的數據物理地存儲在數據庫的數據文件中。數據文件有下列特征:每一個數據文件只與一個數據庫聯(lián)系一個表空間可包含一個或多個數據文件圖1-2給出數據庫、表空間及數據文件之間關系。3寸名尸F圖1-2數據庫、表空間及數據文件之間關系2 .日志文件每一個數據庫有兩個或多個日志文件(redologfile)的組,每一個日志文件組用于收集數據庫日志。日志的主要功能是記錄對數據所做的修改,所以對數據庫做的全部修改是記錄在日志中。日志文件的主要作用是保護數據庫以防止故障。為了防止日志文件本身的故障,ORACLE允許鏡象日志(mirroredredolog),可以在不同磁盤上維
14、護兩個或多個日志副本。日志文件中的信息僅在系統(tǒng)故障或介質故障時用來恢復數據庫。3 .控制文件每一個ORACL嗷據庫有一個控制文件(controlfile),它記錄數據庫的物理結構,包含下列信息類型:數據庫名。數據庫數據文件和日志文件的名字和位置。數據庫建立日期。為了安全起見,允許控制文件被鏡象。每一個ORACL激據庫的實例啟動時,它的控制文件用于標識數據庫和日志文件,當著手數據庫操作時它們被打開。當數據庫的物理組成更改時,ORACLE自動更改該數據庫的控制文件。數據恢復時,也要使用控制文件。4 .參數文件是一個文本文件,可直接使用文本編輯器對其內容進行修改,該文件只在建立數據庫和啟動實例時被訪
15、問,修改該文件后必須重啟實例才生效。系統(tǒng)初始參數文件:init.ora生成的參數文件為:initSID.ora參數文件作用如下:設置SGA的大小。設置數據庫的全部缺省值。設置數據庫的范圍。在數據庫建立時定義數據庫的物理屬性。指定控制文件名和路徑。通過調整內存結構,優(yōu)化數據庫性能。說明:ORACLE8.1.7版本數據庫實例參數文件“initSID.ora”是在安裝ORACLE數據庫過程中產生的,一般情況下不需要手工修改。1.2.3系統(tǒng)全局區(qū)SGA(SystemGlobalArea)是ORACLE系統(tǒng)為實例分配的一組共享緩沖存儲區(qū),用于存放數據庫數據和控制信息,以實現對數據庫數據的管理和操作,圖1
16、-3給出實例與SGA數據庫關系。數據庫圖1-3實例與SGA及數據庫關系SGA分為以下幾個部分:共享池。(2) 數據塊緩沖區(qū)。(3) 日志緩沖區(qū)。(4) 字典緩沖區(qū)。下面分別介紹:SGA的尺寸應小于物理內存的一半。在ORACLE系統(tǒng)中,所有用戶與ORACLE數據庫系統(tǒng)的數據交換都要經過SGA區(qū)。1 .共享池(SharedPool)由共享SQL區(qū)和數據字典區(qū)組成,參數shared_pool_size確定共享池大小,共享SQL區(qū)包括:(1) SQL或PL/SQL語句的文本。(2) SQL或PL/SQL語句的語法分析形式。(3) SQL或PL/SQL語句的執(zhí)行方案。說明:shared_pool_siz
17、e=物理內存x(1520)%對于OPS取下限。2 .數據塊緩沖區(qū)用于存儲從數據文件中讀出的數據,其大小由以下兩個參數決定:DB_BLOCK_SIZE確定數據塊的大小,一般為2K或4K。DB_BLOCK_BUFFERS確定數據塊的數目。DB_BUFFERS=DB_BLOCK_BUFFEDB_BLOCK_SIZE=理內存X(1525)%對于OPSa上限。該值應盡量大。3 .日志緩沖區(qū)以記錄項的形式備份數據庫緩沖區(qū)中被修改的緩沖塊,這些記錄項將被寫到日志文件中。日志緩沖區(qū)大小由參數LOG_BUFFER定4 .字典緩沖區(qū)用于存放數據字典信息行。5 .SGA設置大小總原則在設置各參數調整SGA大小時,應
18、保證其小于物理內存的一半。SGA的計算方法如下:SGA=DB_BLOCK_BUFFERSDB_BLOCK_SIZE+SHARE_POOL_SIZE+SORT_AREA_SIZE+1M+3BLOCK_SIZE(CPUs+2XPARALELL_MAX_SREVERSOPS才有最后一項。SORT_AREA_SIZE:排序區(qū),并發(fā)用戶數較多,需要排序時該值宜大。PARALELL_MAX_SREVERS:2XCPU個數X4X并發(fā)用戶數。對單CPU不能修改此值。1.2.4進程進程是操作系統(tǒng)中的一種機制,它可執(zhí)行一系列的操作步驟(在有些操作系統(tǒng)中使用作業(yè)(JOB)或任務(TASK)的術語來表示進程)。一個進
19、程通常有它自己的專用存儲區(qū)。ORACLED例有兩種類型:單進程實例和多進程實例。通常用的是多進程實例。單進程ORACLE(又稱單用戶ORACLE是一種數據庫系統(tǒng),一個進程執(zhí)行全部ORACL日弋碼。由于ORACLE分和客戶應用程序不能分別以進程執(zhí)行,所以ORACLE的代碼和用戶的數據庫應用是單個進程執(zhí)行。在單進程環(huán)境下的ORACLE實例,僅允許一個用戶可存取。例如在MS-DOSk運行ORACLE。多進程ORACL或例(又稱多用戶ORACLE使用多個進程來執(zhí)行ORACLE勺不同部分,對于每一個連接的用戶都有一個進程。在多進程系統(tǒng)中,進程分為兩類:用戶進程和ORACLE®程。當一用戶運行一
20、應用程序,如PRO*C程序(Pro*C是一種開發(fā)工具,它把過程化語言C和非過程化語言SQL最完善地結合起來,具有完備的過程處理能力,又能完成任何數據庫的處理品任務,使用戶可以通過編程完成各種類型的報表。)或一個ORACLET具(如SQL*PLUS,為用戶運行的應用建立一個用戶進程。ORACLE統(tǒng)進程又分為服務器進程和后臺進程。1.服務器進程用于處理用戶請求的進程。處理過程如下:(1) 分析SQL命令并生成執(zhí)行方案。(2) 從數據緩沖區(qū)或磁盤中讀取數據。(3) 將執(zhí)行結果返回給用戶。ora817表示實例2.后臺進程為所有數據庫用戶異步完成各種任務,主要包括如下進程(名):ora_reco_ora
21、817恢復進程:該進程是在具有分布式選項時所使用的一個進程,自動地解決在分布式事務中的故障。一個結點RECO后臺進程自動地連接到包含有懸而未決的分布式事務的其它數據庫中,RECO自動地解決所有的懸而不決的事務。任何相應于已處理的懸而不決的事務的行將從每一個數據庫的懸掛事務表中刪去。當一數據庫服務器的RECO后臺進程試圖建立同一遠程服務器的通信,如果遠程服務器是不可用或者網絡連接不能建立時,RECO自動地在一個時間間隔之后再次連接。RECO后臺進程僅當在允許分布式事務的系統(tǒng)中出現,而且DISTRIBUTEDTRANSACTIONS參數是大于0。ora_dbw0_ora817數據庫寫進程:該進程執(zhí)
22、行將緩沖區(qū)寫入數據文件,是負責緩沖存儲區(qū)管理的一個ORACLE后臺進程。當緩沖區(qū)中的一緩沖區(qū)被修改,它被標志為“弄臟”,此進程的主要任務是將“弄臟”的緩沖區(qū)寫入磁盤,使緩沖區(qū)保持“干凈”。ora_pmon_ora817進程監(jiān)控進程:該進程在用戶進程出現故障時執(zhí)行進程恢復,負責清理內存儲區(qū)和釋放該進程所使用的資源。例:它要重置活動事務表的狀態(tài),釋放封鎖,將該故障的進程的ID從活動進程表中移去。PMON還周期地檢查調度進程(DISPATCHER)和服務器進程的狀態(tài),如果已死,則重新啟動(不包括有意刪除的進程)。PMON有規(guī)律地被呼醒,檢查是否需要,或者其它進程發(fā)現需要時可以被調用。ora_lgwr
23、_ora817日志寫進程:該進程將日志緩沖區(qū)寫入磁盤上的一個日志文件,它是負責管理日志緩沖區(qū)的一個ORACLE后臺進程。ora_ckpt_ora817檢查點寫進程:該進程在檢查點出現時,對全部數據文件的標題進行修改,指示該檢查點。ora_smon_ora817系統(tǒng)監(jiān)控進程:該進程實例啟動時執(zhí)行實例恢復,還負責清理不再使用的臨時段。在具有并行服務器選項的環(huán)境下,SMON對有故障CPU或實例進行實例恢復。SMON進程有規(guī)律地被呼醒,檢查是否需要,或者其它進程發(fā)現需要時可以被調用。1.3存儲管理前面已經提到過,ORACL嗷據庫都將數據存儲在數據文件中,在其內部,數據庫結構提供了數據對數據文件的邏輯映
24、射,允許不同類型的數據分開存放。這些邏輯劃分稱為表空間,圖1-4給出了詳細的ORACL嗽據庫存儲結構圖。DatabaseStorageHierarchyTAblespCESegment"AJDatafile<JLogicalPhysicalExtentOraclebkx:kOSblockLJCamitflhl0wCofiHMBlovittl*Ni4g1rtinmfwijORACUe圖1-4ORACLE存儲結構圖對于用戶,通常關心的是ORACLE勺邏輯結構,是在邏輯上是如何組成的,是如何存儲數據的,下面詳細介紹。1.3.2邏輯結構ORACL印邏輯結構是由一個或多個表空間組成,一個
25、數據庫劃分為一個或多個邏輯單位,該邏輯單位稱為表空間(tablespace)。一個表空間可將相關的邏輯結構組合在一起。一個表空間由一組分類段組成。一個段由一組范圍組成。一個范圍由一批數據庫塊組成。一個數據庫塊對應一個或多個物理塊。每一個ORACL嗷據庫包含有一個名為SYSTEM勺表空間,在數據庫建立時自動建立。在該表空間中包含有整個數據庫的系統(tǒng)信息數據,最小的數據庫可只需要SYSTEM1空間。表空間利用增加數據文件可擴大表空間,表空間的大小為組成該表空間的數據文件的大小的和。ORACL嗷據庫中一表空間是由一個或多個物理數據文件組成,一個數據文件只可與一個表空間相聯(lián)系。當為一表空間建立一數據文件
26、時,ORACLE!立該文件,分配指定的磁盤空間容量。在數據文件初始建立后,所分配的磁盤不包含有任何數據。一個模式(schema)為模式對象(schemaobject)的一個集合,每一個數據庫用戶對應一個模式。模式對象為直接引用數據庫數據的邏輯結構,模式對象包含如表、視圖、索引、同義詞等結構。模式對象是邏輯數據存儲結構,每一種模式對象在磁盤上沒有一個相應文件存儲其信息。一個模式對象邏輯地存儲在數據庫的一個表空間中,每一個對象的數據物理地包含在表空間的一個或多個數據文件中。例如:表、索引等模式對象,在指定表空間的數據文件上為該對象分配多少空間。圖1-5說明模式對象、表空間和數據文件之間的關系。Da
27、tafcase1SYSTEM*Tatfe陶欣5DATATJbk.,.1J.1IndiexiMMTJbk.TabltIn加乂iTabIs.TmltiMia-Drive1+J圖1-5模式對象、表空間和數據文件之間的關系模式與表空間之間的關系為:一個表空間可包含不同模式的對象,而一個模式中的對象可包含在不同的表空間中。1.數據庫塊數據庫塊(databaseblock)是ORACL匿輯分配空間的最底層,又稱邏輯塊、頁或ORACLES數據庫塊是數據庫使用和分配空間的最小單元,也可以說是使用的最小I/O單元,一個數據塊與磁盤上指定的物理空間大小相一致,一個數據庫塊對應一個或多個物理塊,塊的大小由參數db_
28、block_size確定。PCTFRE醫(yī)口PCTUSE建開發(fā)人員用來控制數據塊中可用插入和更新數據的空閑空間大小的參數。PCTFREE:設置數據塊中保持空閑的百分比。PCTUSED:當數據塊空閑空間達到PCTFREE時,此塊不允許插入數據,只能修改或刪除塊中的行,更新時可能使數據塊空閑空間變大,已用數據空間變小,當已用空間低于PCTUSED時,則可以重新插入數據。PCTFREEPCTUSED)選擇:經常做查詢(select)的表,應使PCTFREE小些,盡量減少存儲空間浪費。經常做插入(insert)的表,應使PCTUSED大一些。經常做更新(update)的表,應使PCTFREE大一些,給更
29、新留出更大的空間,減少行移動。說明:這兩個參數只能在創(chuàng)建、修改表和聚簇(數據段)時指定。另外,在創(chuàng)建、修改索引(索引段)時只能指定PCTFREE參數。經常做插入的表設置舉例:createtableCOMMINFOR(SERIALNUMBERVARCHAR2(20)notnullENTERHISTIMEDATEnotnull,ACCEPTBEGINTIMEDATEnull,ACCEPTDURATIONNUMBER(10)null,ACCEPTERNOVARCHAR2(4)null,CALLINGPHONENOVARCHAR2(20)nullACCEPTIDNUMBER(10)null,OPERA
30、TIONTYPEVARCHAR2(10)null,APPELLANTNAMEVARCHAR2(16)nullCONTACTIDNUMBER(10)null,)pctfree10pctused90initrans2maxtrans255TABLESPACESERVICE_RPT_DAT;經常做查詢的表設置舉例:createtableAUTH(AUTHIDNUMBER(10)notnull,DESCRIPTIONVARCHAR2(50)nullconstraintPK_AUTHprimarykey(AUTHID)pctfree10pctused40TABLESPACESERVICE_RPT_DAT
31、;2. 范圍(Extent)數據庫存儲空間分配的邏輯單位,一個范圍由一組數據塊組成,范圍是由段分配的,分配的第一個范圍稱初始范圍,以后分配的范圍稱增量范圍。Extent是段中分配空間的邏輯單元。它有如下特性:一個或多個范圍構成一個段。當段增長時,范圍自動添加到段中。DBA可以手工把范圍加到一個段中。一個范圍不能跨數據文件,即一個擴展只屬于一個數據文件。一個范圍由一片連續(xù)的ORACLEblock構成。每個段在定義時有許多存儲參數來控制范圍的分配,主要是主要包括如下幾項:STORGA疹數,INITIAL:分配給段的第一個范圍的字節(jié)數,缺省為5個數據塊。NEXT:分配給段的下一個增量范圍的字節(jié)數,缺
32、省為5個數據塊。MAXEXTENTS:最大擴展次數。PCTINCREASE:每一個增量范圍都在最新分配的增量范圍上增長,這個百分數缺省為50,建表時通常設置為0,建表空間時為1%。范圍在分配時,遵循如下分配方式:初始創(chuàng)建時,分配INITIAL指定大小的區(qū)??臻g不夠時,按NEXT大小分配第二個區(qū)。再不夠時,按NEXT+NEXT*PCTINCREASE分配??梢詫Ρ?、聚集、索引、回滾段、表空間等實體設置存儲參數。3. 段是表空間中一個指定類型的邏輯存儲結構,它由一個或多個Extent組成,段將占用并增長存儲空間,但是一個段不能跨越表空間,ORACL即有數據段、索引段、臨時段、回滾段和自舉段(包含打
33、開數據庫時要裝入的數據字典表)。當執(zhí)行建表命令時,系統(tǒng)將自動創(chuàng)建一個段,若沒有指定存儲參數子句storage,則系統(tǒng)會用相應表空間的storage,當初始區(qū)用完后,系統(tǒng)會按next和pctincrease的值分配新的區(qū)。在這里要講一個比較重要的概念:回滾段?;貪L段是當某事務修改一個數據塊時,用以存放數據以前映像信息的數據段?;貪L段中的信息用以保存讀連續(xù)性,并進行事務回滾和事務恢復。例如,如果事務通過把一列的關鍵值從10改為20來修改數據塊,則原值10要存放于回滾段中,而數據塊將具有新值20。如果事務被回滾,則值10從回滾段拷回數據塊。事務產生的重做記錄保證在事務提交或回滾之前保持在回滾段中,而
34、一個事務只能用一個回滾段存放其所有的重做記錄,因此,如果回滾段大小配置不恰當,當ORACL耿行一個大的事務時,就會出現回滾段溢出的錯誤。所以設置回滾段大小是一個比較重要的問題,這取決于數據庫應用的主要事務模式(穩(wěn)定的平均事務速度、頻繁大型事務、不頻繁大型事務),并可通過一些測試來確定。這里還有另外一個概念:臨時段。用于以下SQLB作:CREATEINDEX帶DISTINCT,ORDERBY,GROUPBY,UNION,INTERSECT和MINUS子句的SELECT語句無索引的JION語句某些相互關聯(lián)的子查詢了解了邏輯結構后,下面介紹數據庫中存儲對象。1.3.3(Table)1 .表的組成表是
35、數據庫的最基本的邏輯結構,一切數據都存放在表中,一個ORACL嗷據庫就是由若干個數據表組成。其它數據庫對象都是為了用戶很好地操作表中的數據。表是關系模型中反映實體與屬性關系的二維表格,它由列和行組成,通過行與列的關系,表達出了實體與屬性的關系,如圖1-6所示。場號一電通北家市虹信曷心749第辨期霜平造15號Q軻中國工商銀行&806047公主及1號*-HUN$網吁85X友誼路27號*,主關笑軍+圖1-6表(Table)的組成表的組成部分有:列/域/字段:表的內容,也就是實體的各個屬性,組成了表的各個列。列名:列的名稱。長度:該列所能容納的最大數據位數。類型:該列存儲的數據類型,常用數據類
36、型如表34951149-0所示。關鍵字:該列能唯一表示一行內容,則稱該列為關鍵字。非空列:該列值是不能為空的。常用數據類型數據類型說明串長度Char(長度)定長字符串255Varchar(長度)變長字符串2000Number(精度,比例)數字Date日期時間Long(長度)大型可變長字符串21億行/記錄:表中所有列組合在一起形成的一條信息,稱之為一行或一條記錄。所屬表:記錄一定是歸屬于某一張表的。行號:每條記錄在數據庫中的一個定位位置。在ORACLE數據庫中,每張表有一系統(tǒng)提供的偽列來定位每條記錄。記錄長度:該記錄所有非空列的長度求和得出的字節(jié)數。2 .建表命令建表命令如下:CREATETAB
37、LEtablename(column1datatypeDEFAULTexpressionconstraint,column1datatypeDEFAULTexpressionconstraint,)STORAGE?句其他子句;建表舉例:createtableAUTOCALLLOG(IDVARCHAR2(20)notnull,CityIdNUMBER(4)NULL)TABLESPACESERVICE_HIST_DATPCTFREE10PCTUSED90STORAGE(INITIAL10MNEXT10M500MINEXTENTS2MAXEXTENTSpctincrease);3 .刪除表中數據刪除
38、表中數據有以下兩種方式:Delete:刪除數據時,數據庫需要寫日志,ORACLE數據庫還需要占用回滾段,每次事務越大,對數據庫的沖擊越大,所以在刪除或者更新數據時,一定要注意控制事務的大小。ORACLE數據庫在刪除或更新數據時,where條件中加rownum控制每次刪除或更新的數量,如:deletefromt_my_tablewhere.andrownum<2000;Truncate:刪除表中所有數據,并回收空間。說明:用Delete刪除數據時,只刪除數據,但不釋放空間,并且產生碎片??梢圆捎脤С龊髏runcate表,然后再導入的方法解決碎片的問題。4 .刪除表刪除表命令為DROP利用D
39、RO腌令刪除表注意:刪除表中全部行。刪除表中全部索引。如果它不是聚集的成分,系統(tǒng)將收回該表的所有存儲空間。如果該表為視圖的基表,或在存儲過程、函數或包中被引用,ORACLE將使這些對象無效但沒有被刪除,在表恢復后,這些對象仍可使用。5 .建表約束建表約束包括:(1) 非空完整性約束。(2) 唯一完整性約束。(3) 主碼完整性約束。(4) check完整性約束。(5)引用完整性約束。例如:在下面語句中包括了除“唯一完整性約束”外的所有約束。SQL>createtableemp(enochar(4)constrainte1primarykey,enamechar(8)notnull,saln
40、umber(8,2)constraintck1check(salbetween5000and10000),mgrchar(4),dnochar(2)constraintd2referencesdep(dno)ondeletecascade);引用完整性約束時需要注意以下幾點:(1) 先建主表,后從表。(2) 從表引用的必須是主表的主碼或定義了唯一性約束的列。(3) 從表的外來碼值必須匹配與主表的引用碼的值(4) 當刪除主表記錄時,從表指定了ondeletecascade子句,連帶刪除從表記錄,否則,若從表中有對應記錄,則不能刪除主表記錄。1.3.4 視圖(View)視圖,數據中表的窗口,在表上
41、的查詢所形成的一個數據集體。通過視圖,你將看到你所需要的信息,而排除其它不關心的內容。將表中所需要的列和行選取出來傳遞給用戶。不是真正將數據重新復制一遍,不占用存儲空間。不僅在表的基礎上建立,還可在視圖的基礎之上再建立視圖。建立視圖主要基于:保護數據安全,防止機密數據泄露。簡化數據查詢方式,建立有效的查詢。保持數據獨立性,保證程序不會隨著數據的位置變化、名稱變化而需要修改。說明:ORACLE數據庫的視圖請參考“附錄AORACLE數據字典與視圖”。1.3.5 索引(Index)索引是與表相關的一種選擇結構。索引可建立在一表的一列或多列上,一旦建立,由ORACL由動維護和使用,對用戶是完全透明的。
42、索引是邏輯地和物理地獨立于數據,它們的建立或刪除對表沒有影響,所有應用可繼續(xù)處理。關于索引需要注意以下幾點:(1) 索引是一種數據庫對象,并不改變表的邏輯結構,而是在物理存儲結構上增加一些輔助信息,以提高查詢速度。(2) 當表中記錄增加或刪除時,索引結構均要發(fā)生變化,因此,當有大量數據裝入數據庫時,應該先裝入數據,后建立索引,以提高數據裝入速度。(3) 只有當按指定的索引列的值查找或按索引列的順序存取表時,才可利用索引提高性能。說明:當索引被刪除后,原分配給索引的數據塊將全部返回給索引所在的表空間建立索引可以:加快查詢速度。確保唯一性特征。可以為表中某一列建一個唯一性索引,那么如果有人企圖向表
43、中插入這樣一行記錄,即它在這個有索引的列的數值與以前已有值重復,則這個操作就會失敗。1.3.6 同義詞(Synonym)同義詞是表、視圖或其它數據庫實體的一個別名??梢杂门c存取表、視圖等實體同樣的方法來存取別名。簡單性(用戶名.表名一同義詞名)。表的獨立性(只需修改同義詞的定義,避免修改大量應用程序)。1.3.7 序列(Sequence)序列是一個數據庫對象,利用它可以生成唯一的整數,序列的值是由ORACLE程序自動生成。創(chuàng)建序列:SQL>createsequencezxkincrementby10startwith10maxvalue1000cycle;上例說明:incrementby
44、10增量值為10。startwith10指定生成的第一個序列號為10。maxvalue1000指定序列可生成的最大值。cycle序列上升到最大值1000后,繼續(xù)由開始值10開始生成。引用序列:序列當前值:zxk.currval序列下一個值:zxk.nextval1.3.8 數據庫鏈(DatabaseLink)數據庫鏈是本地數據庫中的一個對象,利用它可以存取遠程數據庫上的對象。在遠程表或視圖之后附加dt#名,即可在SQL語句中引用遠程表或視圖。有專用數據庫鏈和公用數據庫鏈之分,專用數據庫鏈僅為建立者使用;公用數據庫鏈必須用關鍵字public定義,公用數據庫鏈可為全部用戶使用。創(chuàng)建數據庫鏈:對由連
45、接串“icd_main”指定的數據庫上的用戶icdmain,口令為icd,建立一名為icdmainold的數據庫鏈。SQL>createdatabaselinkicdmainold>connecttoicdmain>identifiedbyicd>using'icd_main'下面給出使用數據庫鏈進行查詢、插入、修改、刪除舉例:SQL>select*fromempicdmainold;SQL>insertintoempicdmainold>values('0001','zxk',5000,'001
46、0','00');SQL>updateempicdmainold>setsal=sal+1000;SQL>deletefromempicdmainold>whereename='aaaa'第2章管理ORACLE數據庫本章主要講述管理ORACL嗷據庫的一些必備知識。2.1基本概念2.1.1數據字典數據字典是ORACL嗷據庫的最重要的部分之一,是由一組只讀的表及其視圖所組成。這些表和視圖是數據庫被建立同時由數據庫系統(tǒng)建立起來的,起著系統(tǒng)狀態(tài)的目錄表的作用。數據字典描述表、列、索引、用戶、訪問權以及數據庫中的其它實體,當其中的一個實體被
47、建立、修改或取消時,數據庫將自動修改數據字典。因此,數據字典總是包含著數據庫的當前描述。數據字典提供有關該數據庫的信息,可提供的信息如下:ORACLE用戶的名字。每一個用戶所授的特權和角色。模式對象的名字(表、視圖、索引、同義詞等)。關于完整性約束的信息。列的缺省值。有關數據庫中對象的空間分布信息及當前使用情況。審計信息(如誰存取或修改各種對象)。其它一般的數據庫信息。可用SQL存取數據字典,由于數據字典為只讀,只允許查詢。數據字典中全部基本表和用戶可存取視圖為ORACLE戶SYS所持有,所有對象包含在SYS模式中,安全管理員對該帳號要嚴格控制。當ORACL曖據庫系統(tǒng)啟動后,數據字典總是可用,
48、它駐留在SYSTEM空間中。數據字典包含視圖集,在許多情況下,每一視圖集有三種視圖包含有類似信息,彼此以前綴相區(qū)別,前綴為USERALL和DBA前綴為USER的視圖,為用戶視圖,是在用戶的模式內。前綴為ALL的視圖為擴展的用戶視圖(為用戶可存取的視圖)。前綴為DBA的視圖為DBA的視圖(為全部用戶可存取的視圖)。常用數據字典與視圖ORACL瞰據庫有三個可查看系統(tǒng)數據庫字典的用戶:system、internal、sys,其它用戶只能查看授權表空間的數據庫字典,以某一用戶登錄數據庫后可查看一些數據字典,了解數據庫的資源情況,對日常維護的故障定位能起很大的幫助,下面就一些常用的數據表(視圖)進行簡單
49、的說明:(1) dba_tablespaces(user_tablespaces)除三個系統(tǒng)用戶以外的用戶登錄可查看user_tablespaces表。dba_tablespaces(user_tablespaces)表可查看本數據庫的表空間,它存放各個表空間的屬性,包括:表空間名、表空間宿主、以及存儲參數(initial、next、maxextents、minextents、blocks等)等。(2) dba_data_files(user_data_files)該表可查看數據庫所有數據庫數據文件,它存放了各個數據文件的屬性,包括:表空間名、宿主、數據文件名、大小、可用空間以及ID號等。(3
50、) dba_segments(user_segments)該表可查看數據庫所有段,它存放了各個段的屬性,包括:段名、表空間名、宿主、大小、第一個區(qū)間的塊號等。(4) dba_rollback_segs該表可查看數據庫所有回滾段,它存放了各個數據庫回滾段的屬性,包括:回滾段名、表空間名、宿主、存儲參數(initial、next、maxextents、minextents等)、第一個區(qū)間的塊號、占用數據庫文件ID號。(5) dba_extents該表可查看數據庫所有區(qū)間,它存放了各個區(qū)間的屬性,包括:區(qū)間ID、使用段ID、所屬對象(object)名、宿主、占用數據庫文件ID(對應dba_data_
51、files中的ID號)、塊號等。常見應用:查看各對象的區(qū)間是否已達到了最大區(qū)間數量(maxextents)。selectobject_name,sum(*)fromdba_extentsgroupbyobject_name;(6) dba_free_spaces可查看數據庫表空間的使用情況,如查看各數據庫表空間的可用空間:selecttablespace_name,sum(bytes)fromdba_free_spacesgroupbytalbespace_name;以上為常用的數據字典,可在維護中靈活應用。在維護過程中,第一步應查看數據庫管理系統(tǒng)的運行日志,日志文件的存放路徑應版本不同而不同
52、,一般:ORACLEworkgroup版,日志文件存放路徑為:$ORACLE_HOME/rdbms/alert_'SID'.log,OPS版,日志文件存放路徑為:$ORACLE_HOME/././admin/bdump/alert_'SID'.log。可用命令:taillogfilename查看,或用vilogfilename,按shift+g至U文件尾進行查看。說明:附錄A詳細列出了ORACLE的數據字典與視圖,供參考。2.1.2事務管理1 .事務(transaction)數據庫是多用戶的共享資源,在多個用戶并行地存取數據時,應對數據做并發(fā)控制,以免存取不正確
53、的數據,破壞數據庫的一致性。數據庫的任何狀態(tài)變化都要能反映客觀世界的某種真實存在的合理狀態(tài),反映到數據庫中,就是數據要滿足一定的約束條件,這種約束條件就是一致性約束。有時,為了完成復雜的修改動作,往往需要臨時破壞數據庫的狀態(tài)一致性。因此,就有必要把這種對數據庫復雜修改的一連串動作序列合并起來,這就是事務。事務是數據庫維護數據一致性的單位,它將數據庫從一致性狀態(tài)轉換成新的一致性狀態(tài)。2 .事務提交提交事務:即將在事務中由SQL語句所執(zhí)行的改變永久化。數據庫數據的更新操作提交以后,這些更新操作就不能再撤消。ORACLE勺提交命令如下:SQL>COMMIT3 .事務回退事務回退的含義是:撤消未
54、提交事務中的SQL語句所作的對數據修改。ORACLE允許撤消未提交的整個事務,也允許撤消部分(需設置保存點)?;赝酥螅瑪祿鞂⒒謴褪聞臻_始時的狀態(tài)或保留點狀態(tài)。回退命令如下:SQL>ROLLBACK4 .保存點保存點就是將一個事務劃分成為若干更小的部分,以便在必要時,使當前事務只回退一部分,而其余工作得到保留。其格式為:SAVEPOINT保存點名;ROLLBACKTO保存點名;2.1.3數據庫管理員(DBA)任何一個系統(tǒng)都需要一個負責管理和維護的人員,負責管理和維護ORACLE據庫的人就是數據庫管理員(DataBaseAdministrator,簡稱DBA)。每個ORACL嗷據庫至少要
55、有一名專職的數據庫管理員,其職責如下:保證數據的完整性和一致性。提高執(zhí)行速度,調整系統(tǒng)性能。管理數據庫存儲,減少數據冗余。安裝、升級ORACLEServer和應用工具。定期對數據進行備份。DBA為做好上述工作,需要了解以下知識:ORACLE產品結構。DBA工具。數據庫備份和恢復。數據字典用途。在ORACL朦統(tǒng)初始安裝后,存在以下三個具有DBA特權的數據庫用戶:internal用戶。sys用戶。system用戶。1. DBA的操作系統(tǒng)帳戶在進行許多數據庫的管理任務時,必須能夠執(zhí)行操作系統(tǒng)命令,所以需要有個操作系統(tǒng)帳戶,以便能完成操作系統(tǒng)的操作,此時要求此帳戶具有比一般數據庫用戶更多的操作系統(tǒng)權限或存取特權
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 殘疾困難申請書
- 二零二五年度父母子女間贈與子女就業(yè)保障合同
- 2025年度物業(yè)公司員工安全責任合同
- 二零二五年度個人現金借款合同(科技研發(fā)支持)
- 二零二五年度創(chuàng)業(yè)公司股權激勵計劃下股權轉讓合同
- 循環(huán)水設備項目可行性研究報告(可編輯)
- 運動員退役申請書
- 2025年度高端酒店連鎖集團會員服務協(xié)議模板
- 2025年度個人消費貸款擔保合同
- 加入學生會申請書500字
- GB 18030-2022信息技術中文編碼字符集
- SB/T 10977-2013倉儲作業(yè)規(guī)范
- GB/T 854-1988單耳止動墊圈
- GB/T 2520-2017冷軋電鍍錫鋼板及鋼帶
- 化工裝置安全試車工作規(guī)范附件解讀教材課件
- 【QC成果】提高地下室抗浮錨桿一次驗收合格率
- 篆刻學ppt精品課件
- 中厚板軋制規(guī)程
- 貴州煤炭資源有償使用意見
- 智慧教育 云平臺建設方案
- 模具試模通知單
評論
0/150
提交評論