Oracle數據庫講義第四章_第1頁
Oracle數據庫講義第四章_第2頁
Oracle數據庫講義第四章_第3頁
Oracle數據庫講義第四章_第4頁
Oracle數據庫講義第四章_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

講義Oracle數據庫2009.3李明俊第四章Oracle數據庫體系結構

本章內容4.1Oracle數據庫的邏輯結構4.2Oracle數據庫的物理結構4.3數據字典4.4Oracle的內存結構

4.1Oracle數據庫的邏輯結構從邏輯上看,Oracle數據庫可以劃分為表空間、段、區和塊,以有效管理、存儲、檢索數據。Oracle數據庫結構數據庫表空間用戶表空間索引表空間臨時表空間回退表空間段數據段索引段臨時段回退段區空閑區使用區數據文件用戶文件索引文件臨時文件回退文件數據塊4.1.1表空間(TABLESPACE)1.表空間及其作用邏輯上來說,Oracle數據庫劃分為表空間,一個表空間通常將相關的邏輯結構組織在一起。一個數據庫通常由一個或多個表空間組成,表空間可分為系統(SYSTEM)表空間和非系統表空間。數據庫的數據邏輯上存儲在表空間上,實際上存儲在表空間所對應的物理數據文件上。2.表空間類型數據字典管理表空間—Oracle8以下版本采用。本地化管理表空間—Oracle8i以上版本采用。Oracle8i-Oracle9iRelease1兩種方法都可采用。Oracle9iRelease2完全采用本地化管理表空間。兩種管理方法的區別:--數據字典管理表空間當空間需要擴充時必須通過查詢數據字典來查找空閑塊,對磁盤碎片不能自動合并。--本地化管理表空間使用位圖的方法查找空閑空間,產生的磁盤碎片可以自動合并。目前安裝的數據庫是Oracle9iRelease2版,可通過查詢DBA_TABLESPACES了解表空間的狀態。表空間用戶表空間系統表空間數據庫磁盤驅動器1

磁盤驅動器2

數據文件1數據文件2數據文件3一個表空間中的數據文件的個數與操作系統有關,一般來說是1022個;一個數據庫中的數據文件的最大個數是65533。使用CREATEDATABASE或CREATECONTROLFILE語句中的MAXDATAFILES參數會限制每一個數據庫的數據文件個數。數據庫的表空間個數沒有限制,但數據庫只允許65533個數據文件,一個表空間至少有一個數據文件,因此數據庫的表空間數不能超過65533個。

數據庫管理員(DBA)可利用表空間完成下列工作:控制數據庫數據的磁盤分配。將確定的空間份額分配給數據庫用戶。通過使單個表空間聯機或脫機,控制數據的可用性。執行部分數據庫后備或恢復操作。為提高性能,跨越設備分配數據存儲。3.建立表表空間下列命令建建立一個表表空間的格格式:CREATETABLESPACEtablespaceDATAFILEdatafileSIZEnnnM【autoxtendonnextnnnMmaxsizennnnM|unlimited】EXTENTMANAGEMENTLOCALUNIFORMSIZEnnnM|AUTOALLOCATE;tablespace—表空空間datafile--數據據文件autoxtendonnext—文件空空間自動增增加EXTENTMANAGEMENTLOCAL—代代表本地化化表空間UNIFORM––區大小小相同AUTOALLOCATE––區大小小系統動態態自動分配配下列命令建建立一個USER_DATA本地化管管理表空間間,尺寸為為100M。CREATETABLESPACEUSER_DATADATAFILE′′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000mEXTENTMANAGEMENTLOCALUNIFORMsize500k;其中:′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000m是對數據文文件的描述述,而下面面的子句是是對表空間間的描述。。EXTENTMANAGEMENTLOCALUNIFORMsize500k;下列命令建建立一個USER_DATA本地化管管理表空間間,尺寸為為300M,DATAFILE從句句指定多個個數據文件件,并用逗逗號隔開,,以建立大大容量的數數據文件。。CREATETABLESPACEUSER_DATADATAFILE′′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000m,′f:\oracle\oradata\test\user2_data.dbf′SIZE100mautoxtendonnext100mmaxsizeunlimited,′f:\oracle\oradata\test\user3_data.dbf′SIZE100mEXTENTMANAGEMENTLOCALUNIFORMsize500k;下列命令建建立一個臨臨時表空間間,使用臨臨時表空間間可以使得得排序操作作更加有效效,以改進進性能。臨臨時表空間間內不能駐駐留永久數數據。只能能為臨時段段指定臨時時表空間。。CreatetemporaryTablespaceTEMP2Tempfile'D:\oracle\oradata\test\Temp01.dbf'Size500MEXTENTMANAGERMENTLOCALUniformSize5M;4.修改表表空間1.修改表表空間的數數據文件,,給表空間間增加數據據文件ALTERTABLESPACEUSER_DATAADDDATAFILE′′f:\oracle\oradata\user01.dbf′SIZE30M;2.修改表表空間的可可用性,將將表空間聯聯機ALTERTABLESPACEUSER_DATAONLINE;3.修改表表空間的非非可用性,,將表空間間脫機ALTERTABLESPACEAPPL_DATAOFFLINE;4.修改表表空間管理理只讀模式式ALTERTABLESPACEUSER_DATAREADONLY;5.修改表表空間管理理只讀寫模模式ALTERTABLESPACEUSER_DATAREADWRITE;5.查詢表表空間信息息有關表空間間的信息,,可以查詢詢DBA_TABLESPACES、、DBA_DATA_FILES、DBA_FREE_SPACE、V$TABLESPACE、、V$SORT_USAGE、V$DATAFILE等數據字字典和視圖圖。DBA_TABLESPACES包含含了數據庫庫中所有表表空間的信信息(表空空間名字、、默認的存存儲參數、、類型、狀狀態、是否否永久/臨臨時等),而USER_TABLESPACES包含了了用戶擁有有的表空間間的信息。。查詢DBA_DATA_FILES返返回表空間間數據文件件信息(表表空間名、、表空間的的數據文文件、數據據文件尺寸寸),是否否自動擴展展設置信息息。SELECTFILE_NAME,TABLESPACE_NAME,BYTES,AUTOEXTENTSIBLE,MAXBYTESFROMDBA_DATA_FILES;查詢DBA_FREE_SPACE返返回所有表表空間中可可用的自由由區,查詢詢一個表空空間總的自自由空間;;USER_FREE_SPACE顯示示當前用戶戶擁有的表表空間中的的自由區。。SELECTTABLESPACE_NAME,SUM(BYTES)FREE_SPACEFROMDBA_FREE_SPACEGROUPBYTABLESPACE_NAME;查詢該視圖圖從控制文文件獲得表表空間名。。SELECT*FROMV$TABLESPACE;V$DATAFILE,這這是動態性性能視圖,,包含數據據文件名字字、尺寸、、數據文件件所在的表表空間名、、數據文件件的狀態((OFFLINE、、ONLINE、、READWRITE、、READONLY)。。其他視圖DBA_SEGMENTS、、ALL_SEGMENTS、USER_SEGMENTS:包包含段的類類型、段的的尺寸、表表空間相關關的存儲參參數。DBA_EXTENTS、ALL_EXTENTS、USER_EXTENTS:包含區區的尺寸、、與區相關關的段和表表空間信息息。DBA_TEMP_FILES:包含含本地化管管理的臨時時表空間的的臨時文件件。DBA_USERS:包含為為用戶指定定的默認表表空間和臨臨時表空間間。V$TEMP_EXTENT_MAP:包含一一個本地化化管理的臨臨時表空間間的所有區區的信息6.UNDO表空間間UNDO表空空間Oracle9i中中引入的全新新的概念,它它自動對回退段段進進行行管管理理,,當當一一個個回回退退段段不不足足時時,,一一個個事事務務可可以以使使用用多多個個回退退段段,,Oracle會會自自動動使使用用其其他他回回退退段段,,不不終終止止事事務務的的運運行行。。4.1.2段段((SEGMENT))段是是表表空空間間中中指指定定類類型型的的邏邏輯輯存存儲儲結結構構,,是是為為表表、、索索引引等等邏邏輯輯結結構構分分配配的的區區((extent))的的集集合合。。Oracle的的段段主主要要有有5種種類類型型。。數據據段段::用用于于存存儲儲表表、、分分區區的的數數據據。。每每建建立立一一張張表表,,就就分分配配一一個個段段。。索引引段段::存存儲儲索索引引數數據據。。每每建建立立一一個個索索引引,,就就分分配配一一個個索索引引段段。。臨時時段段::數數據據庫庫執執行行排排序序或或子子查查詢詢時時需需要要臨臨時時工工作作區區,,系系統統自自動動建建立立臨臨時時段段,,操操作作執執行行結結束束自自動動釋釋放放臨臨時時段段。。回退退段段::當當用用戶戶對對數數據據庫庫執執行行修修改改操操作作時時,,系系統統將將修修改改前前的的數數據據存存入入回回退退段段,,在在執執行行回回退退命命令令rollback時時,,回回退退段段中中的的數數據據用用于于撤撤消消所所作作的的修修改改。。4.1.3區區((EXTENT))區是是分分配配空空間間的的最最小小單單位位。。一一個個區區由由一一組組連連續續的的邏邏輯輯塊塊組組成成。。一個個段段至至少少包包含含一一個個區區。。當當一一段段中中所所有有空空間間已已使使用用完完,,Oracle為為該該段段分分配配一一個個新新的的區區。。區區的的分分配配和和回回收收是是系系統統自自動動完完成成的的。。4.1.4塊塊((BLOCK))塊是是Oracle內內最最小小的的邏邏輯輯單單元元,,是是I/O的的最最小小單單位位。。一個個數數據據塊塊對對應應一一個個或或多多個個操操作作系系統統物物理理塊塊。。塊的的大大小小是是在在數數據據庫庫建建立立時時,,使使用用參參數數DB_BLOCK_SIZE決決定定((系系統統缺缺省省值值為為8K))。。該該參參數數在在數數據據庫庫建建立立后后不不能能更更改改,,除除非非重重建建數數據據庫庫。。4.2Oracle數數據據庫庫的的物物理理結結構構數據據庫庫的的物物理理結結構構是是數數據據庫庫中中操操作作系系統統文文件件的的集集合合。。Oracle數據庫文件數據庫數據文件控制文件重做日志重做日志參數文件口令文件歸檔的日志文件4.2.1數數據據文文件件數據據文文件件有有如如下下特特點點::每個個數數據據庫庫至至少少有有一一個個數數據據文文件件。。每個個數數據據文文件件只只與與一一個個表表空空間間、、一一個個數數據據庫庫相相關關。。在數數據據庫庫中中建建立立的的表表、、索索引引等等對對象象只只能能存存儲儲在在一一個個表表空空間間中中。。但但這這些些對對象象的的物物理理存存儲儲可可以以在在該該表表空空間間的的不不同同數數據據文文件件上上。。一一般般的的做做法法是是將將表表數數據據與與索索引引數數據據存存放放在在不不同同的的數數據據文文件件上上,,將將回回退退信信息息與與臨臨時時數數據據存存放放在在不不同同的的數數據據文文件件上上。。對象象1對象象2對象象3表空空間間1表空空間間2數據據文文件件1數據據文文件件2數據據文文件件3對象4對象5創建數據文件件,當建立一一個表空間時時,會建立相相應的數據文文件。如建立立一300M的數據文件件。CREATETABLESPACEAPPL_DATADATAFILE′f:\oracle\oradata\test\appl_data.dbf′SIZE300M;也可以給已經經存在的表空空間增加數據據文件。ALTERTABLESPACEUSERSADDDATAFILE′f:\oracle\oradata\test\appl_data.dbf′SIZE25M;查詢數據文件件通過V$DATAFILE,V$TEMPFILE,DBA_DATA_FILES,DAB_EXTENTS等數據字典典和視圖可以以查詢數據文文件的相應信信息。例如查查詢數據文件件中的狀態,,名字。其中中system01.dbf文件的的狀態為system,,表明該文件件是系統表空空間的一部分分。調整數據文件件的尺寸建立文件時設設置AUTOEXTEND,使得數數據文件尺寸寸自動擴展,,或使用ALTERDATABASE設置自自動擴展;CREATETABLESPACEAPPL_DATADATAFILE′f:\oracle\oradata\test\appl_data.dbf′SIZE500MAUTOEXTENDONNEXT100MMAXSIZE2000M;ALTERDATABASEDATAFILE′′f:\oracle\oradata\test\appl_data.dbf′AUTOEXTENDONNEXT100MMAXSIZE2000M;另一方法是手手工操作,執執行命令ALTERDATABASEDATAFILE的RESIZE從句句來調整數據據文件尺寸。。ALTERDATABASEDATAFILE′f:\oracle\oradata\test\appl_data.dbf′RESIZE1500M;4.2.2重重做日日志Oracle數數據庫庫的重重做日日志((redolog),,也稱稱為事事務日日志((transactionlog)),是是數據據庫的的重要要組成成部分分,用用于保保護所所有已已提交交事務務的工工作。。日志文文件分分為聯聯機重重做日日志文文件和和歸檔檔日志志文件件。日日志文文件的的工作作模式式分為為歸檔檔模式式(Archivelog))和非非歸檔檔模式式(NoArchivelog))兩種種。數據庫庫的重重做日日志是是存儲儲在硬硬盤上上的一一組系系統數數據文文件。。日志文件組日志文件組歸檔的事務日志日志切換日志切換歸檔日日志模模式(Archivelog)當聯機機重做做日志志文件件寫滿滿一個個后開開始寫寫另一一個聯聯機重重做日日志文文件之之前,,把要要開始始寫的的日志志轉存存到歸歸檔日日志文文件中中,然然后再再寫該該日志志,這這種方方式為為歸檔檔模式式。非歸檔檔日志志模式式(NoArchivelog)當聯機機重做做日志志文件件寫滿滿一個個后直直接覆覆蓋寫寫另一一個聯聯機重重做日日志文文件,,進行行循環環覆蓋蓋寫聯聯機重重做日日值,,會丟丟失最最早的的日志志,這這種方方式為為非歸歸檔模模式。。查看聯聯機重重做日日志文文件信信息在V$Logfile、、V$Log、、V$Log_History等等數據據字典典中,,可以以查看看日志志文件件的組組、狀狀態、、名稱稱等信信息。。4.2.3控制文文件控制文件用用于記錄和和維護數據據庫的全局局物理結構構,是成功功啟動和操操作數據庫庫必須的二二進制文件件,以“.CTL””為文件后后綴。一個數據庫庫至少需要要一個控制制文件,每每個控制文文件只與一一個數據庫庫相關聯。。控制文件包包含如下信信息:數據庫名數據庫建立立時間數據庫中所所有數據文文件和日志志文件的文文件名和路路徑表空間名稱稱當前重做日日志文件序序號檢查點信息息備份信息日志歷史記記錄記錄控制文文件名和路路徑的參數數在init.ora的control_files中中。control_files=("F:\oracle\oradata\test\CONTROL01.CTL","F:\oracle\oradata\test\CONTROL02.CTL","F:\oracle\oradata\test\CONTROL03.CTL")查看V$CONTROLFILE,得得到控制文文件的名稱稱和狀態。。查看V$PARAMETER,得到所所有初始化化參數文件件中的所有有值、狀態態等信息。。查看V$CONTROLFILE_RECORD_SECTION,獲得得控制文件件的記錄段段的信息。。通過OEM導航樹來來查看。3.控制文文件的信息息查看4.2.4參數文文件參數文件確確定存儲結結構的大小小,設置數數據庫的默默認值,設設置數據庫庫的各種物物理屬性,,優化數據據庫性能。。參數文件定定義了Oracle實例(Instance))的特性,,在建立數數據庫或啟啟動實例時時必須訪問問參數文件件。參數文件是是一文本文文件,可直直接使用任任何文本編編輯器進行行編輯。在在修改該文文件前必須須關閉數據據庫。修改改的參數在在重啟數據據庫時才生生效。參數文件包包含有實例例配置參數數,這些參參數置成特特殊值,用用于初始Oracle實例的的許多內存存和進程設設置,該參參數文件包包含:一組實例參參數的值;;一個實例所所啟動的數數據庫名字字;在SGA中中存儲結構構使用多少少內存;如何處理聯聯機日志文文件;數據庫控制制文件的名名稱和位置置;回退退段段的的信信息息。。4.2.5其其他他Oracle文文件件其他他Oracle文文件件主主要要有有::口令令文文件件,,用用于于存存放放用用戶戶口口令令的的加加密密文文件件歸檔檔文文件件,,包包含含恢恢復復所所需需的的庫庫結結構構和和數數據據文文件件的的副副本本警告告文文件件,,存存放放Oracle數數據據庫庫運運行行當當中中出出現現的的各各種種消消息息、、警警告告和和錯錯誤誤信信息息。。跟蹤蹤文文件件,,用用于于存存儲儲后后臺臺進進程程和和服服務務器器進進程程的的跟跟蹤蹤信信息息,,包包括括后后臺臺進進程程的的警警告告和和錯錯誤誤信信息息,,每每個個后后臺臺進進程程都都有有相相應應的的跟跟蹤蹤文文件件,,以以““.TRC””為為文文件件后后綴綴服務器器進程程跟蹤蹤文件件,主主要跟跟蹤SQL語句句,通通過它它了解解SQL語語句的的性能能,并并進行行相應應的調調整。。4.3數數據字字典數據字字典是是由一一組擁擁有數數據庫庫元數數據的的表和和視圖圖組成成,用用于存存儲Oracle數數據庫庫的結結構信信息。。數據字字典一一般在在創建建數據據庫時時建立立,沒沒有數數據字字典,,PL/SQL就沒沒法執執行。。數據字字典分分為靜靜態字字典和和動態態字典典。4.3.1靜態數數據字字典靜態數數據字字典主主要是是表和和視圖圖。一一般來來說,,數據據字典典中的的表是是不能能被訪訪問的的。可可以訪訪問的的是數數據字字典中中的視視圖。。靜態態數據據字典典中的的視圖圖分為為3類,分分別有有3個前綴綴構成成。user_*、、all_*、、dba_*4.3.2動動態數數據字字典動態視視圖提提供有有關內內存和和磁盤盤的運運行情情況,,用戶戶只能能讀動動態視視圖,,不能能寫。。動態態視圖圖以V$為前綴綴,例例如V$logfile、V$session、V$active_instances、V$context等。4.4Oracle的內內存結結構4.4.1系系統全全局區區:SystemGlobalArea——SGA數據塊塊緩沖沖區——與與數據據文件件進行行數據據交換換重做日日志緩緩沖區區—與與日志志文件件進行行數據據交換換SQL共享享池——處理理SQL語語句的的內存存空間間,由由庫緩緩沖、、數據字字典緩緩沖以以及用用戶全全局區區;4.4.2程程序全全局區區:ProgramGlobalArea—PGA是非共共享區區,存存儲用用戶SQL語句句中的的變量量、數數組等等;4.4.3排排序區區::存放用用戶排排序數數據,,當數數據量量超出出排序序區大大小時時,將將占用磁盤盤臨時時段。。內存結結構圖圖在下下頁。。Oracle內內存結結構用戶進進程程序區區PGAProgramGlobalArea排序區區共享區區SQL數數據據緩存存區日日志緩緩存過程.包庫緩沖字典緩沖用戶全局區全局區區(SystemGlobalArea—SGA))LGWRARCHDBWR服務器器進程程數據文文件日志文文件歸檔日日志文文件4.4.4后后臺進進程后臺進進程用用于處處理并并行用用戶請請求所所需的的通用用功能能,它它們不不會損損害系系統的的完整整性和和性能能。它它們把把為每每個用用戶運運行的的多個個Oracle程序序所處處理的的功能能統一一起來來。后臺進進程執執行I/O并監監控其其他Oracle進進程以以增加加并行行性,,從而而使性性能和和可靠靠性更更加優優越。。每個例例程至至少包包括5個基本本的后后臺進進程::DBWR—DatabaseWriter數數據寫入入進程;;LGWR—LOGWriter日日志寫入入進程;;SMON—SystemMonitor系系統監監控進程程PMON—ProcessMonitor進程程監控進進程;CKPT—CheckPoint檢檢查點點進程。。數據庫寫進程程(DBWR)負責將更新的的數據從數據據庫緩沖區高高速緩存寫入入數據文件。。日志寫進程((LGWR))將重做日志緩緩沖區中注冊冊的更改寫入入重做日志文文件。系統監控進程程(SMON)系統監控程序序在數據庫啟啟動時,負責責檢查數據庫庫的一致性,,對數據庫進進行恢復操作作過程監視進程程(PMON)是一個被定時時喚醒的后臺臺進程,負責責在一個Oracle進程失敗時清清理資源檢查點進程((CKPT))-當日志文件件切換時產生生,檢查內存存數據是否完完整寫入當前前文件。歸檔進程(ARCH)-在歸檔模式式下,把重做做日志文件寫寫入歸檔日志志文件。4.5小結結Oracle數據庫的體體系結構包括括物理結構、、邏輯結構和和例程。邏輯輯結構代表Oracle數據庫中表表、索引等可可見部分;物物理結構代表表Oracle內部使用用的存儲方式式,如數據文文件、控制文文件。從邏輯上看,,Oracle數據庫可可以劃分為表表空間、段、、區和塊,以以有效管理、、存儲、檢索索數據。一個數據庫由由若干個表空空間組成。一一個表空間由由若干個相同同或不同類型型的段組成。。在建立一個個段時,至少少包含一個區區,區由連續續的數據塊組組成。隨著段段的增長,區區的個數會增增加。數據塊塊是Oracle讀寫的的基本單元。。一個數據塊塊不同于物理理文件塊,一一個數據塊對對應一個或多多個物理文件件的物理塊。。從邏輯上看,,Oracle數據庫可可以劃分為表表空間、段、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論