Oracle10G 培訓教材資料_第1頁
Oracle10G 培訓教材資料_第2頁
Oracle10G 培訓教材資料_第3頁
Oracle10G 培訓教材資料_第4頁
Oracle10G 培訓教材資料_第5頁
已閱讀5頁,還剩81頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

OraclelOG培訓教材

數據庫確實是存放用戶數據的儲備倉庫,數據通過用戶執行特定的操作語言(SQL)存入

數據庫中,能夠被方便的愛護,在今后需要的時候,通過這些SQL語言還能夠高效靈活進行訪

問。DBMS:數據庫治理系統(DatabaseManagementSysicm)確實是治理數據庫的軟件,在DBMS

中有一部分數據字典,用于貯存它擁有的所有事物的相關信息,例如名稱,結構定義,儲備位

置和數據類型等要素?,這種數據庫和相關對象的數據也被稱為元數據[metadata),存放在相應

的數據字典表中,能夠被用戶,治理員以及數據庫自身訪問。

為了更好的組織數據以利于性能的提高,顯現了進一步的數據規范原那么(三范式),通過.三范

式將數據疔效的組織成多個有特定數據關系的對象.這些對象叫做實體,而對象之間存在的數

據關系(而關系在。racle數據庫中表現為主鍵,外鍵這些約束條件)

RDMBS:關系型數據庫治理系統,現在數據庫中以增加了對象(Objects)的概念,因此現在的

數據庫也被叫做對象關系型數據庫。

關系型數據庫的概念用于描述數據庫中多個表數據之間存在的關聯關系,

oracle的一些特點:

1.支持大數據量,多用戶的并發事務處理能力

2.提供大量并發訪問下的高性能保證

3.遵守數據存取語言,操作系統,用戶接口和網絡通信協議的工業標準

4.提供安全性操縱和數據完整性操縱

5.支持分布式數據庫和分。處理的能力

6.具有可移植性,可兼容性和可連接性

7.提供了全球化,跨平臺的數據庫

oracle要緊開發工具

I.Sql*plus執行數據查詢,數據操作等操作,也能夠用來創建,編譯,執行pl/sql程序

2.Pro*C嵌入式C語言,能夠在C語言中直截了當嵌入sql語句,通過Proc*C編譯器編語程序

3.SqlJ嵌入式Java語言,能夠在Java語言中直截了當嵌入Sql語句,通過SqlJ編譯生成能夠

調用的Javaclass

4.From專用的應用開發工具,通常用于OracleERP軟件的二次開發

5.Report專用的報表開發工具,通常用于OracleERP軟件的二次開發

6.Jdeveloper開發Java程序的工具,類似Jbuilder能夠各種java應用

企業治理器(oem)由Ja、a語言開發,能夠在各種平臺調用

://hostname:1158/em/假如端口被占用了,oracle也會選擇其他端口。

emctlstartdbconsole,emctlstatusdbconsole.emctlstopdbconsole啟動,查看狀態,停止oem

sqlplus工具的差不多特點:

1.是Oracle獨有的運行環境,并不支持對其他數據庫的操作

2.能夠在不同平臺運行,運行界面相同

3.除了能夠支持標準的SQL外,也具有自己的一套SQLPLUS命令,用于輔助命令的執行,治

理和格式化結果

4.SQLPLUS命令和SQL語句不一樣,能夠縮寫,能夠直截了當執行,不需要分號終止

5.在標準SQL的基礎上,提供了對標準SQL擴充命令的支持

命令行中執行sqlplus各平臺通用。標準的SQLPLUS

命令行中執行sqlpluswforwindows界面比標準SQL更加友好。僅在windows平臺上有效

://hostname:5560/isq!plus;isqlplusctlstart;isqlplusctlstop;開啟也停止isqlplus服務

數據庫對象

表:最常見的數據庫對象,用于儲備數據的對象,也被叫做數據實體,表是用來存放數據的,

由行和列組成。列確實是字段,行確實是表中的記錄

約束條件:確實是數據校驗規那么,用于保證表中數據必須符合制訂的規那么,能夠設置在單

個字段或者多個字段組合上的,寫入這些字段的數據必須符合約束條件的限制

視圖:也叫虛表,視圖實際上確實是一個命名的查詢語句,并不真正儲備數據,要緊用于改變

基表數據的顯示,也被用于簡化杳詢語句的書寫。視圖的訪問與表的訪問方式一樣,同樣能夠

用查詢語句對視圖中的數據進行訪問

索引:構建于表的單字段或者多個字段組合上,用于加速對表中數據的查詢

序列:用了產生順序遞增或遞減的不重豆的數字申,通常被作為主鍵約束的參考

同義詞:一個數據對象的別名

儲備過程:用于完成某種特定功能的PL/SQL程序,儲備在數據庫中,能夠反復調用

函數:用于進行更雜運算的PL/SQL程序,返回一個運算結果,被儲備在數據庫中。

觸發淵:由事件觸發而執行的PL/SQL程序,用于在特定時機執行專門的任務的,通常由某個

特定的事件觸發而執行,儲備在數據庫中

包:是一組相關的函數和儲備過程的命名集合,儲備在數據庫

數據庫文件的儲備

數據文件:用于存放數據的操作系統文件,在文件中存放著用戶創建的所有數據庫對象的信息,

例如表,索引等,數據文件是數據庫的重要文件,丟失數據文件將會導致數據丟失。

表空間:數據被存在數據文件中,然而數據庫中數據文件被組織在一起被按照表空間的方式進

行治理,表空間是一個或多個數據文件的邏輯組合。在數據庫中的儲備空間表現為表空間,在

操作系統中表現為數據文件。

操縱文件:數據庫的核心文件,存放著數據庫的重要信息、,例如數據庫的名稱和數據庫的結構

(數據文件,重做日志文件的名稱和名目)

重做日志文件:記錄數據庫改變的文件,所有的數據修改操作都記錄在F1志文件中,要緊用于

保證數據庫的可復原性

初始化參數文件:存放數據庫初始化參數的文件,用于設置關r-數據庫的一些參數,在數據庫

啟動的時候需要讀取,并依照初始化參數的設置分配數據庫的內存空間。

數據嚀網絡訪問

數據庫名:數據庫的名稱,在操縱文件中有記錄,在參數文件中通過db_name指定

實例名:數據庫的內存區域和后臺進程的集合的總稱,在參數文件中通過instancejame指定,

通常與db_name相同

服務名:薪據庫系統在操作系統上被作為一個服務對待,因此對外數據庫以服務的形式顯現,

通常訪問數據庫被叫做訪問數據庫服務,服務名通過參數servejname指定

連接字符串:通過網絡訪問遠端服務器上的數據庫時,用于描述數據庫訪問地址的字符串,通

常的結構是''主機名(或IP):端口號:服務名"例如:1521:orcl

服務命名:連接字符串的別名,連接字符串書寫過于復雜,因此使用服務命名替代,服務命名

被用于數據庫的網絡連接,通常是使用格式是:用戶名/口令@服務命名

監聽器:在服務端運行的一個進程,用于監聽客戶端到數據庫的連接要求,在通過網絡訪問數

據庫時必須啟動。

安裝數據庫步驟

L檢測安裝環境

2.修改系統核心參數

3.創建有權限的操作系統用戶和組

4.設置環境變量

5.創建安裝需要的名目

6.執行安裝文件開始安裝

在安裝的時候,數據文件,日志文件,和操縱文件的儲備方式直截了當阻礙數據的安全性和性

能,能夠選擇儲備方式包括了文件系統,裸設備和ASM(自動儲備治理),文件系統相對治理

簡單,然而I/O性能不如裸設備,而裸設備的治理復雜,可能會帶來一些問題。而10G的ASM

治理方式既能簡化治理,也能提高性能,然而由因此新技術,因此目前使用不多。

安裝過程依照選項不同會略有區別,大致包括了安裝軟件(復制文件),link文件,自動配置操

作系統相應文件,以及調用一些oracle軟件完成其他配置等。

netca配置網絡,emca配置oracle的OEM運行環境,dbca創建數據庫

在安裝終止后,會顯現一些匯總提示信息,記錄在oracle的主名目下install名目的readme.txt

文件中

用dbca創建數據庫:

1.使用數據庫的目的(高可用性,并發性,數據裝載,高效查詢統計)

2.數據庫的應用類型(oltp,數據倉庫,混合型)

3.數據庫的儲備結構設計(表空間的組成和劃分,數據文件的儲備)

4.數據庫的名稱和字符集(創建好數據庫后不可改動)

5.合適的數據塊大?。▌摻ê脭祿缀蟛豢筛膭樱?/p>

6.數據儲備容量和數據增幅(表空間,數據文件大小及儲備分布等)

其中數據庫字符集,數據庫名稱,數據塊大小db_block_size不宜修改

另外,有些設置盡管能夠調整,但最好提早確定好,否那么盡管能夠修改,但可能需要重起數

據庫,阻礙生產系統運行

SGA大小sga_max_size,日志緩沖區大小log_bu!Ter,最大承諾進程數processes等

其他建庫時需要注意的設置

文件儲備方式(文件系統Irawlasm)阻礙I/O性能,同樣難以更換

數據文件大小,日志文件大小,如需更換,帶來更多的愛護工作

創建數據庫大體步驟

1.設置數據庫類型(選擇模版)

2.指定全局數據庫名和SID

3.選擇OEM配置選項

4.選擇數據庫的儲備方式

5.選擇數據庫文件的儲備位置

6.設置快速復原區

7.配置數據庫的選件(確定在數據庫創建后需要安裝哪些oracle特性選件)

8.指定內存,字符集,數據庫大小,跟蹤告警文件位置,以及歸檔的一些選項

9.定義數據庫的數據文件,操縱文件,日忐文件

10.選擇下面的一些選項以執行(1.創建數據庫2.儲存為模板3.產生創建腳本)

體系結構

DBServer包含了實例(instance)和數據庫(database)兩部分

數據庫包括了一些重要的組成文件、也確實是數據庫的物理結構,而實例那么包含系統全局區

(sga也確實是內存結構)和后臺進程(也確實是進程結構)

數據庫中有一些重要的文件,如數據文件,重做日志文件和操縱文件,也有一些不太重要的文

件,如初始化參數文件,口令文件和歸檔日志文件,重要的那些文件被叫做關鍵性文件,數據

庫的運行離不開這些文件,而另外的那些文件叫做非關鍵文件,那么是為了增強數據庫某方面

的功能所需要的

SGA的必要內存區包括SharedPool(共享池)、DBBufferCache(數據庫高速緩存)和RedoLog

Buffers(重做日志緩存區)。共享池中乂包含了庫高速緩存(LibraryCache)和數據字典高速緩存

(DataDietCache),其中庫高速緩存中暫存了最近常用的SQL和PL/SQL語句文件,分析代碼

執行打算,用于減少代碼的硬解析頻度;數據字典高速緩存中暫存了最近常用的數據字典信息,

用于為SQL語句解析提供能夠快速讀取的數據字典信息。數據庫高速緩存(DBBufferCache)

暫存最近常用的數據塊信息,減少磁盤I/O操作,用于提高數據訪問的速度。重做日志緩存

區暫存最近生成的重做日志,今后批量寫到重做H志文件中,如此能夠確保日志能夠更快的生

成,提高DML操作的執行速度,也能夠減少日志帶來的寫頻度。

除了必要內存區外,SGA也有一些可選的內存區,要緊有大池(LargePoolJ,Java池(JavaPool)

以及流池(StreamPool).大池要緊用「?共享模式存放用戶全局區(UGA)的信息,也提供了對

Rman備份復原以及并行進程的支持。Java池的功能類似于共享池,暫存Java程序的信息。Stream

池是10G的新內存區,支持新的流復制技術

除了SGA的各個內存區,實例也包括了執行特定任務的后臺進程,后臺進程同樣分為必竺的和

可選的后臺進程。必須的后臺程要緊有五個,分別是DBWR,LGWR,PMON,SMON,CKPT,

可選的專門多,常見的ARCn

DBWR叫做數據庫寫進程.用于將數據高速緩存中被修改過的數據塊[臟緩存塊)寫回數據文

件;LGWR叫做重做日志寫進程,用于將重做日志緩存區中的日志記錄按照日間順序寫入重做

日志文件;PMON叫做進程監視進程,用于監視用戶進程和服務進程的連接狀態,假如發覺連

接專門斷開,那么回滾會話中沒有完成的事務,開釋事務中的鎖和其他資源:SMON叫做系統

監視進程,用于在啟動數據庫時檢測系統的同步性,如如同步那么直截了當打開數據庫,假如

不同步,那么執行實例復原;CKPT叫做檢查點進程,用于在特定時機下強制同步操作,保證

數據同步性的。ARCN叫歸檔進程,用于在歸檔模式下當日志切換時讀取重做日志文件內容,

生成歸檔日志文件,而歸檔日志文件確實是重做日志文件內容的備份。

實例是由內存部分和進程部分組成的,也是用戶訪問數據庫的入口,會話只能通過實例訪問數

據庫,一個實例只能對應一個數據庫,通常一個數據庫也只對應一個實例,然而在RAC(實時

應用集群)結構中,一個數據庫能夠對應多個實例,在這種單數據庫多實例的結構中,每個實

例能夠承載一定的會話數,多個實例能夠擴大并發的會話數,實現連接負載均衡的功能,同時

當?個實例故障時,其它實例仍舊能夠保證會話的連接和噪作,提供了數據庫的高可用性。

SGA:系統全局區,是DBServer中實例的必要組成部分,由專門多小內存區共同構成,各個

小內存區存放不同的信息,系統全局區用于暫存能夠被所有進程(包括serverprocess以及

backgroundprocess)共享的信息,對系統的運行性能有好處,SGA在實例啟動的時候自動分配,

實例關閉時自動開釋

PGA:程序全局區,DBServer之外的內存區,被每個ServerProcess私有,儲備當前會話私有

的信息,包括了會話信息,排序空間,會話全局變量等,當ServerProcess建立的時候分配,會

話斷開時開釋。

SGA被叫做系統全局區,暫存系統的大量共享數據,對系統有相當的性能阻礙,因此需要為

SGA選擇適當的治理方式,依照所使用的數據庫版本不同,SGA的治理有三種方式

8i:SGA的大小由所有內存組件大小之和決定,不能直截了當定義SGA大小,對內存組件的大

小可臺進行修改,但只能通過直截了當修改參數文件的內存參數大小,而且修改完數據庫必須

重起后才能生效,因此這和內存治理方法叫做SGA的靜態治理.

9i:SGA的大小由初始化參數SGA_MAX_SIZE確定,各個內存組件大小之和不能超過那個參數。

能夠直截了當通過命令進行修改內存組件大小而不用重啟,這種叫做SGA的動態治理

10g:SGA大小既能夠像9i一人樣動態治理,也能夠實施SGA的自動治理,默認是SGA的自動

治理,啟用SGA自動治理只需要設置初始化參數SGA_TARGET即可,各個組件大小之和不

超過SGA_TARGETc在自動治理下,SGA各個內存組件由數據庫自動設置大小,設置各個內

存區大小的依據來源于系統自動收集的統計信息。

在設置內存組件大小的時候,分配的差不多單位是粒度(granule)

granule是一段連續的虛擬內存,大小取決于SGA_MAX_SIZE的大小,假如SGA_MAX_SIZE

小于128M,Granule為4M,否那么Granule為16M

大多數內存組件的大小必須是Granule的整數倍,RedoLogBuffer的大小不受那個限制,能夠

自行設置,它與其他小內存區共同構成Granule的整數倍

整個SGA最小不小于3個Granule大小,其中共享池一個,數據緩存區一個,其他分一個,SGA

的總大小也一定是Granule的整數倍大小。

SGA大多數組件的大小能夠動態調整,只要確保所有的內存組件大小之和不超過SGA_MAX

SIZE或SGA_TARGET的大小,在10G中SGA內存組件能夠自動治理,各個內存大小由數

據庫自己決定,設置SGA_TARGET參數(非0)即能夠開啟內存自動治理」那個參數也可動

態修改,假如設置為0,那么意味著,禁用內存自動治理,儂需要DBA手動調整各個內存組件

大小。

以下內存組件大小能夠由數據庫H動設置

1.Buffercachc(db_cachc_size)

2.Sharedpool(sharcd_pool_sizc)

3.Largepool(large_pool_size)

4.Javapool(java_pool_size)

5.Streampool(stream_pool_size)

共享池要緊用于sql或pl/sql的解析,能夠暫存最近常用的sql語句和相關數據字典信息

共享池要緊包括兩個與sql語句解析性能相關的內存組件。

庫高速緩存;數據字典高速緩存

共享池大小由參數shared_pool_size決定大小,能夠動態調整,它的各個內部件大小由共享池

大小決定,不能單獨設置

altersystemshared_pool_size=100m;設置共享池大??;假如開啟了內存自動治理特性,那么不

需要DBA手動調整。

庫高速緩存用于暫存最近常使用的SQL和PL/SQL語句的文本,分析代碼,執行打算。SQL文

本也確實是SQL語句。執行打確實是最終SQL語句的執行算法,分析代碼那么是生成執行打

算的分析過程。

庫高速緩存臨時存放常用語句信息的目的是為了能夠共享SQL代碼,從而能夠重用差不多解析

好的執行打算,減少硬解析帶來的資源消耗

與其它內存區一樣,庫高速緩存也遵循LRU算法治理內存,由于內存空間大小有限,因此總會

有一些SQL語句的信息被擠出庫高速緩存區,這意味著必定會帶來一些語句代碼的硬解析,因

此需要對庫高速緩存進行一些調整,以減少對解析性能的阻礙

庫高速緩存的內部又分為兩個內存區,分別緩存SQL語句和PL/SQL語句的信息:

共享sql區

共享pl/sql區

庫高速緩存的大小不能直截了當設置,受共享池的大小阻礙,由數據自行決定

數據字典高速緩存用于暫存最近常使用的數據字典信息、,它同樣遵循LRU算法治理內存,在字

典緩存區中要緊暫存解析所需的表空間,儲備,表,索引,字段,用戶,權限以及其他數據庫

對象的相關字典信息

由于SQL語句解析時,服務進程需要查找相關的數據字典信息以支持解析,而字典信息默認儲

備在數據文件的數據字典信息中,因此每次解析去I/O讀取數據文件并不是好的選擇。將常用

的字典信息緩存在數據字典高速緩存區中,能夠快速訪問所需的字典信息,有效減少解析的時

刻,因此SQL語句解析的性能得到提高。

數據字典的大小也不能直截了當修改,受共享池的大小的阻礙,數據庫自行決定

數據高速緩存區用于暫存從數據文件中獲得的數據塊的數據映像,同樣遵循LRU算法治理內

存,不論是表中的數據塊,不是索引的數據塊,或回滾段的數據塊,都被讀取到數據高速緩存

中進行處理.,假如內存中的數據塊發生.變化,在特定的時機會被特定后臺進程寫回到數據文件

中°

由于大量數據塊經常被反復訪問,因此假如數據差不多讀入內存,當再次需要操作這些數據塊

時就能夠在內存中直截了當獵取和更新,減少了磁盤I/O的操作,SQL語句的執行執行效率有

大幅的提圖

初始化參數DB_BLOCK_SIZE決定了數據塊的大小,這也是數據庫I/O的最小單位,因比那個

參數將阻礙到數據訪問的性能,而且需要注意的是,那個參數在創建數據庫之后將不能夠被改

數據高速緩區由多個獨立的子緩存池構成,它的大小是這些緩存池的大小之和,這些子緩存區

能夠獨立設置大小,通過下面的參數進行設置

I.Defaultdb_cache_size

2.Keepdb_keep_cache_size

3.Recycledbrecyclecachesize

區些子緩存血的大木都能加動態調整,然而只有db_cache_size能夠由數據庫自動治理大個,默

認只有db_cache_size被設置了有效值,其他兩個緩存池大小被設置為零

重做日志緩沖區用于暫存數據原中所有數據塊的改變信息,這些信息將按照改變的發生時刻順

序記錄在緩存區中,然后在特定的時機下被寫入重做n志文件,口志緩存區的內存治理方法是

FIFO,也確實是是先進先出

重做日志要緊被用「提供數據的復原功能,應用日志前滾(rollforward)確實是數據庫的差不

多復原原理

使用重做日志緩沖區的目的是為了提高DML或者DDL語句的執行速度,減少日志產生帶來的

性能阻礙,減少系統日志IQ的頻度

重做日志緩沖區的大小出k)g_buffcr參數決定,但那個內存區不能動態調整大小,也不能被自

動治理

大池是系統全局區中的一個可選內存區,但通常在系統中會進行配置,大池要緊以下幾種情形

使用

1.共享服務器儲備用戶全局區(UGA)信息

2.啟用并行進程

3.使用RMAN作備份復原

大池由參數large_pool_size設置,也能夠由數據庫自動治理

Java池也是系統全局區中的?個可選內存區,要緊用于數據庫中儲備的Java程序的解析和執

行,通常假如不需要在數據庫中運行java程序,能夠不啟用就個內存區,然而假如在數據庫創

建時選擇了安裝JVM組件,那么那個池必須配置

Java池由java_pool_size設置,也能夠動態調整.

假如granule是4M,Java池的默認大小是24M,假如granule是16M,Java池的默認大小是32M,

假如使用了JVM組件,java池不得小于默認的大小。

程序全局區是為每個連接數據庫會話開創的私有內存區,每個會話都有自己獨立的PGA區,當

用戶進程對應的服務進程被創建時分配,也確實是會話創建時PGA空間分配,會話斷開時PGA

空間開釋,每個PGA區只能被一個服務進程使用

在8i的時候每個會話的pga大小是固定的,由一些*.area_$ize參數準定大小,如此造成了各個

PGA大小不能結合實際會話的需求而定。從9i開始PGA使用了自動治理特性,

通過參數pga_aggregate_tar?et設置pga的總大小,而各個會話需要分配pga內存時,從總的pga

中直截了當分配,分配的pga空間大小取決于會話的實際需求,如此的分配方式使會話的pga

大小更加符合實際的會話需求

由「排序內存空間屬于pga的一個部分,因此各個會話的pga大小,將會阻礙會話的排序性能,

需要依照會話的排序情形,設置合適的PGA大小

PGA_AGGREGATE_TARGET參數的大小設置能夠借鑒一些體會值

foroltp系統pga_aggregate_target=(總的物理內存大小*80%)*20%

fordss系統pga_aggregate」arget=(總的物理內存大小+80%)*50%

進程結構也是實例的組成部分,進程用于執行特定的任務,不同的進程完成的任務不同

oracle進程分為三大類:

用戶進程:客戶端用于連接數據庫的程序,要緊負責公布需要執行的SQL語句

服務進程:服務端響應用戶操作要求的程序,通常與用戶進程一一對應,執行用戶進程發出的

SQL語句,并將執行結果返回用戶進程

后臺進程:愛護DBServer正常運行以及一些特定功能所需的進程,隨著實例啟動而啟動,是

DBServer運行的必要組成部分

用戶進程也服務進程的連接叫做會話建立

通常用戶進程和服務進程是一一對應的連接叫做專用連接方式,也能夠由少量的服務進程為大

量的用戶進程服務的情形,這種方式叫做共享連接方式

PMON:進程監視進程,用于監視用戶進程與服務進程的連接是否專門終止,假如PMON檢測

到連接專門終止,將執行下面的任務

I.回滾該會話沒完成的事務2.開釋該事務占用的鎖3.開釋該會話占用的其他資源

PMON進程也負責監視共享模式數據庫的調度器進程是否專門掛起,假如檢測到調度器進程的

專門,也將重起死掠的調度器進程

SMON:也叫系統監視進程,要緊完成下面的三個功能:

1.最要緊的功能是在數據庫啟動時檢測數據庫的同步性,假如發覺不同步,按照下面的步驟執

行實例復原

前滾應用丟失數據對應的所有重做日志,打開數據庫,回滾崩潰時沒有完成的事務

2.在排序終止后開釋臨時段〔對臨時表空間有效)

3.合并連接閑暇空間(在字典治理表空間時使用)

DBWR;也叫數據庫寫進程,用于將數據緩存區中被修改過的臟數據(Dirtybuffer)寫入數據

文件中

由于臟數據可能過多,單個DBWR進程有可能忙只是來,因此DBWR能夠定義多個,Oracle最

多承諾啟動10個DBWR送程,進程的名稱分為DBW0-DBW9,統稱為DBWn

DBWR僅在特定的時機寫臟數據到數據文件中,下面是一些DBWR的寫時機,以下時機任何

一個滿足都能夠觸發DBWR寫操作

1.發生檢查點

2.臟數據到達一定限制

3.緩存中沒有足夠的閑暇緩存

4.查詢閑暇緩存超時

5.RACping要求時

6.表空間離線

7.表空間只讀

8.表被刪除或者截斷

9.開始備份表空間

LGWR:也叫做重做日志寫進程,用于將日志緩沖區中的日志順序寫入到重做日志文件中,日

志記錄一旦寫入重做日志文件,相應的數據將可不能丟失.LGWR把日志記錄寫入日志文件也

有特定的時機,下面是LGWR的寫時機

1.事務提交的時候

2.日志緩沖區達到1/3滿

3.日志緩沖區的日志記錄達到1M

4.每隔三秒

5.在DBWn進程寫之前

CKPT:也叫檢查點進程,用于強制DBServer的同步操作,同步每隔一些時刻會執行一次,確

保同步之前所有被修改過的臟數據都被寫入到了數據文件中,這些被寫入數據文件中的數據在

系統崩潰時不需要復原,只有內存中的數據丟失,需要被復原,在系統崩潰時的這種復原操作

被叫做實例復原,實例復原由于儲備介質并沒有損壞,因此僅需要應用用日志記錄,即可復原

檢杳點進程執行下面的動作來完成同步操作

1.通知DBWR進程將當前的SCN之前的所有臟數據寫入數據文件

2.在臟數據寫入數據文件后將所有數據文件頭和操縱文件t記錄同一個SCN號表示同步操作的

完成

在數據庫正常關閉時,系統一定會由檢查點進程執行同步操作,以確保數據庫啟動時能夠直截

了當打開。

在日忐文件寫滿后發生口志切換時,同樣發生同步,以確保實例復原只需要使用重做口忐文件

內容。

可選后臺進程

這些可定后臺進程提供了不同的功能,假如需要這些功能.那么啟用這些后臺進程

ARCn:歸檔進程,在歸檔模式下當日志切換時,歸檔進程讀取當前的是重做日志內容,生成歸

檔文件

Pnnn:并行進程,用于并行查詢或者并行DML操作

Dnnn:調度進程,用于共享,英式連接的用戶操作要求的調度

Snnn:共享服務進程,用于共享模式連接的用戶操作要求的執行

MMAN:內存治理進程,月于10g的內存自動治理

RECO:分布式復原進程,用于網滾未完成的分布式事務

Jnnn:任務執行進程,用于完成用戶定制的自動執行任務

CJQO:任務調度進程,用于在用戶規定的時刻喚醒任務近程執行任務

SQL語句在整個架構中是如何運行的:

查詢語句:共享池的解析,數據文件的1/0,數據緩存區的讀取,PGA的排序和數據返回

DML:共享池解析,數據文件的I/O,數據緩存區的讀取,回滾段數據的寫入,重做日志記錄

的生成,數據塊記錄的修改

事務操縱語句:共享池的解析,重做日志文件的寫入

數據字典:記錄數據庫和數據庫對象的相關信息,由基表和視圖構成

動態性能視圖:描述整個系統的運行狀況,便丁監視數據庫的運行

內置觸發器:當特定事件發生時,完成系統預置的功能

系統程序包:實現一般SQL語句不有實現的高級功能

數據字典中記錄了數據庫利數據庫對象的所有信息,為了治理好數據庫,第一需要通過數據字

典了解數據庫,數據字典是DBA了了解數據庫的必要途徑,在治理數據時,第一需要通過數據

字典了解數據庫。數據字典是由數據自動生成的一系列系統數據表,被sys用戶擁有,儲備在

system表空間上,大多數數據字典對用戶和DBA是只讀的,只能被數據庫愛護,數據庫依照

DBA或者用戶的操作命令自動愛護數據字典信息。

數據字典有兩種對象構成:數據字典表和數據字典視圖

數據字典表:

1.當CreateDatabase命令創建數據庫時,數據字典表同時生成

2.數據字典表儲備著數據字典信息

3.數據字典表被儲備在system表空間上,被sys用戶擁有

4.只有數據庫能夠愛護數據字典表的內容

5.專門少被DBA直截了當觀看

數據字典視圖:

1.是數據字典表信息的總結,簡化和格式化處理,是清晰易明白的系統信息匯總和描述

2.通常用戶和DBA所查詢的差不多上數據字典視圖

3.數據字典視圖也被sys用戶擁有,查詢數據字典視圖是通過對應的同義詞進行的

4.數據字典視圖在創建數據庫后由系統通過腳本caialog.sql生成,即使沒有生成數據字典,數據

庫仍舊能夠運行

數據字典信息包括了:

1.表空間信息

2.數據文件信息

3.各種對象結構定義(例如表,索引,視圖,同義詞,儲備過程,觸發器等)

4.儲備對象的儲備分布情形(例如表,索引,回滾段)

5.約束條件(例如主鍵,外鍵,非空等)

6.用戶信息

7.權限信息

8.角色信息

9.審計信息等

當執行DDL或者DCL操作時,數據庫系統會自動愛護相應的字典信息,DBServer在解析或者

運行SQL語句時,或者愛護系統正常運轉時,都會從數據字典中獵取相應的信息,因此數據字

典信息在系統運行過程中被頻繁訪問

數據字典視圖命名規范:能常大多數數據字典視圖的名稱都以復數結尾,而且大多數字典視圖

都以下面的字串作為名稱前綴,不同的前綴的視圖代表它所包含的數據范疇不同,要緊有:

DBA_代表數據庫中所有的

ALL_代表當前用戶能夠訪問的

USER_代表當前用戶擁有的

下面是常用的數據字典視圖:

DICTIONARY:所有數據字典視圖的描述,能夠在那個地點查到所有數據字典視圖的名稱和描

述信息

DICT_COLUMNS:所有數據字典視圖字段的描述

DBA_TABLES:所有用戶表的信息

DBA_TAB_COLUMNS:所有用戶表的字段信息

DBAJNDEXES:所有用戶表上索引的信息

DBA」ND_COLUMNS:所有用戶表上索引字段的信息

DBA_CONSTRAINTS:所有約束的信息

DBA_CONS_COLUMNS:所有約束作用字段的信息

DBA_SEGMENTS:所有儲備段的信息

DBA_EXTENTS:所有區的信息

DBA_TABLESPACES:數據庫中的表空間的信息

DBA_DATA_FILES:所有數據文件的信息

DBA_USERS:所有數據庫用戶的差不多信息

DBA_SYS_PRIVS:用戶或角色被直截了當授予的系統權限信息

能夠查DICT得到所有的數據字典視圖名稱,所有數據字典視圖的數據都必須在數據侔打開后

才能訪問

動態性能視圖:描述數據庫的運行情形

有兩部分構成:

1.動態性能表:數據庫啟動時自動生成的虛表,并不真正儲備數據,以乂$作為名稱前綴

2.動態性能視圖:對動態性能表的總結和格式化處理,是真正被用戶和DBA訪問的對象,以

v_$作為名稱前綴

動態性能視圖的信息來自于內存和操縱文件,是實時變化的信息,反映著系統運行的情形,對

數據庫的高級治理專門重要,是了解系統運行狀態的重要途徑,通常作為故障診斷和性能優化

的工具

動態性能視圖同樣被sys用戶擁有,通常只能被查詢,不能直截了當修改,對動態性能視圖進

行查詢要緊通過視圖對應的同義詞,同以詞通常以V$開頭(假如在RAC架構,也能夠查GV

$開頭的動態性能視圖),所有動態性能視圖同義詞的名稱能夠從v$fixed_table或者DICT中查

詢得到

動態性能視圖不需要打開數據庫就能夠訪問,然而數據庫啟動的時期不同,能夠訪問的動態性

能視圖信息也不同。

動態性能視圖的例子:

V$INSTANCE:關于實例的信息

V$SGA:關于SGA各個內存區大小的信息

V$PARAMETER:關于當前初始化參數設置的信息

$SPPARAMETER:關于當前Spfile參數文件中參數設置的信息

V$VERSION:關于數據庫軟件版本的信息

V$OPTION:關于安裝在數據庫中的選件信息

V$DATABASE.關于數據庫的信息

V$CONTROLFILE:關于操縱文件的信息

V$DATAFILE:關于數據庫叉件大小狀態等信息

V$LOGFILE:關于重做F1志文件的信息

V$SESSION:關于連接會話的信息

能夠通過dictionary或者vSfixed_table了解更多的動態性能視圖

數據字典和動態性能視圖差不多上DBA必須熟悉的工具,數據字典中包含了關于數據庫和數據

庫對象的重要信息,為了治理數據庫提供了必要的依據,通過數據字典能夠對數據庫的差不多

情形把握清晰;而動態性能視圖描述了數據庫系統的運行狀況,為故障處理和性能調整提供了

必要的信息,能夠使DBA及時監控到問題的發生,同時依照動態性能視圖提供的信息逐步確立

問題的緣故,從而進行故障處理和調整,這兩種工具缺一不可,充分了解和把握這兩種工具是

治理好數據庫的必要途徑,DBA必須熟悉常用的數據字典和動態性能視圖

數據庫啟動分為三個時期:NOMOUNT,MOUNT,OPEN

NOMOUNT:系統讀取初始化參數文件的內容,分配內存空間,啟動后臺進程直到實例啟動完

成,啟動過程記錄在告警日志文件中

MOUNT:系統依照參數文件中的control_files參數設置找到操縱文件,讀取操縱文件內容,

獵取數據庫的相關信息,并將數據庫與實例信息關聯

OPEN:系統依照操縱文件中的數據庫結構信息查找所有的數據文件和重做日志文件,判定日志

文件的日志序列號也操颯文件中記錄的是否一致,并讀取所有數據文件頭的SCN號,操縱文件

中的SCN號作對比。假如都相同,直截了當打開數據庫,否那么將由SMON進行實例復原。

數據庫關閉也經歷三個過程:CLOSE-DISMOUNT-SHUTDOWN

startuppfilc='SORACLE_HOME/dbs/initSID.ora,指定啟動時用的參數文件,假如不指明,直截

了當我默認的參數文件

假如打開數據庫,但不期望其他用戶阻礙DBA的治理工作,能夠在打開時指定限制模式,在這

種方式下,只具有restrictsession權限的用戶能夠連接到打開的數據庫中

startuprestrict;

假如DBA在限制模式上差不多執行完治理任務,承諾用戶連接笄執行正常操作,能夠直截了當

禁用限制模式:altersysteirdisablerestrictedsession;

alterdatabaseopenreadonly以只讀方式打開,只讀意味著只能執行查詢

關閉數據庫有四種選項,選項不同,關閉的過程和結果有所不同

normal,默認選項,正常模式關閉,等待所有前端會話斷開后執行同操作,然后關閉數據庫

transactional:事務型關閉,等待所有事務終止后,主動斷開殘留的會話,然后執行同步操作,最

后關閉

immediate:趕忙關閉,系統主動回滾沒有終止的事務,開釋事務占用的鎖和其他資源,在斷開

所有會話后執行同步操作,然后開始關閉

abort:舍棄型半閉,直截了當強制關閉,不做同步操作

DBServer啟動的第一步確實是啟動實例,而實例的屬性由參數文件中的初始化參數決定,對

參數文件中的參數修改將在下一次啟動實例時生效

當startup命令執行是DBserver第一讀取初始化參數文件,系統將自動查找DBA指定的參數文

件或者系統默認的參數文件,依照參數文件中的設置分配內存空間,啟動后臺進程,完成實例

啟動的過程,初始化參數文件僅在實例啟動時需要,在系統運行后,并不要求參數文件必須存

在,也不再讀取參數文件。

DBA能夠依照需求配置一個或多個參數文件,用于不同的情形,但每次只能引用其中的一個參

數文件啟動數據庫實例

依照參數文件的使用特性,參數文件分為兩種:

pfile:靜態參數文件,。racle往常使用的,文本文件

spfile:穩固參數文件,從9i開始使用,差不多逐步取代了pfile,二進制文件

DBA能夠在初始化參數文件中配置pfile或spfile參數,用于引用其它參數文件的參數值,然而

假如一個初始化參數顯現多次,只取最新的設置

在參數文件中*.表示對所有實例有效,假如僅對某個實例有效,那么參數名稱前為該實例sid;

出于愛護和安全的考慮,spfile和pfile文件能夠互相創建對方,作為對方的備份,一旦某種文

件損壞,都能夠通過另外一種文件快速復原

createspfilefrompfile;

createpfilefromspfile;

也能夠指定參數文件的路徑

createpfile='$ORACLE_HOME/dbs/initORCL.ora*fromspfile='$ORACLE_

HOME/dbs/spfilcORCL.ora';

兩類參數文件互相創建的命令能夠在DBSERVER運行的任意時期執行,其至在數據庫差不多

完全shutdown后

altersystem命令能夠修改當前實例的參數狀態,也能夠修改spfile文件的內容

altersystemshared_pool_size=100scope二both即修改文件,也修改當前內存的值

altersystemshared_pool_size=100scope=spfile修改文件

altersystemshared_pool_size=100scope=memory修改內存

altersystemshared_pool_size=100scope=bothsid=t*';修改所有實例

通常數據庫的操作信息以及故障情形被記錄在一些診斷文件中,DBA能夠通過經常查看下面的

診斷文件了解系統的運行情形并進行相應的處理

1.告警日志文件allerSID.log

2.后臺進程跟蹤文件

3.用戶進程跟蹤文件

AltcrSID.log文件是DBA最應該經常查看的文件,那個文件中記錄了大量對數據庫日常治理和

故障處理有用的信息,要緊有以下信息

1.數據庫的重大操作的信息

2.要緊操作事件以及結果

3.各種數據庫錯誤的信息

4.啟動關閉的信息等

所有這些事件和時刻都被記錄著,能夠關心DBA處理故障以及監控數據庫的運行,最新的日志

內容被記錄文件最后,為了便于查看,必須由DBA每隔一?段時刻愛護那個文件,文件能夠隨時

刪除或移走,系統在檢測不到時會自動重新創建該文件

文件存放位置由參數background_dunip_dcst決定,默認放在bdump名目下

后臺進程跟蹤文件要緊記錄后臺進程檢測到的錯誤信息,當某個后臺進程遇到錯誤或者專門時

產生該文件,同時以那個后臺進程的名稱作為文件名稱的一部分,在告警日志文件中也會包含

一些錯誤信息,用于確定需要解決的錯誤,而在后臺進程跟蹤文件中提供了比告警F1志文件更

詳細的錯誤信息,關心DBA診斷和解決錯誤

后臺進程跟蹤文件存放位置由參數background_dump_dest決定,默認放在bdump名目下

用戶跟蹤文件由用戶進程或服務進程產生,通常包含兩種信息,一種是用戶進程遇到的錯誤或

專門信息,另一種是SQL語句執行的跟蹤統計信息。錯誤專門信息要緊用于關心DBA或者開

發人員執行應用程序或者系統的故障處理,只要錯誤發生,跟蹤文件自動生成并記錄相關的內

存,進程,語句等信息。SQL語句執行的跟蹤統計信息那么用于輔助DBA優化相應的SQL語

句,只有當用戶啟用了會話跟蹤,才生成對應的跟蹤文件,跟蹤信息將一直產生并記錄在文件

中,直到終止會話跟蹤為止。

用戶進程跟蹤文件可能由其他方式產生,例如eveni參數設置的一些事件,或者由DBA執行的

一些專門命令

用戶進程跟蹤文件的存放名目由參數user_dump_desi決定,通常在udump名目下,用戶跟蹤文

件的最大大小由max_dump_file_size決定,默認不超過IOM

假如DBA需要優化一些SQL語句,需要收集這些SQL語句的信息,那么必須第一開啟會話跟

蹤,然后執行相應的SQL語句。開啟跟蹤能夠在兩個級別開啟會話級和實例級,然而為了減

少對系統的阻礙,同時了更準確的跟蹤關懷的SQL語句信息,建議只在會話級對需要優化SQL

語句的會話開啟跟蹤。

會話級別開啟跟蹤文件:akcrsessionsetsql」race=true;也能夠通過DBMS系統包開啟特定會話

的跟蹤:execdbms_system.set_sql_trace_in_session

實例級別開啟(不建議):設置初始化參數:sql」race=true;

oracle的儲備層次被分為邏輯儲備部分和物理儲備部分。邏輯儲備部分五層,分別是數據庫,

表空間,段,區,數據塊。物理儲備部分分為兩部分,分別是數據文件和操作系統塊。

在儲備層次圖中要緊包括兩種關系,一對多的關系,只屬于的關系,在各個層次中都表達了這

兩種關系。在物理儲備部分,數據文件是數據的儲備體,而操作系統塊是操作系統

I/O最小單位,一個數據文件由多個操作系統塊構成,每個操作系統塊只屬于一個數據文件。在

邏輯儲備部分,表空間是數據庫中邏輯儲備集合,數據庫由一個或多個表空間構成,每個表空

間只屬于一個數據庫;一個表空間能夠儲備多個邏輯儲備對象,這些邏輯儲備對象也被叫做段,

每個段只屬于一個表空間:一個段由一個或多個區組成,區是段的空間擴展單位,一個區是只

屬于一個段的連續儲備空間;一個區中包含多個連續的數據塊,數據塊是數據庫最小的I/O單

位,一個數據塊只屬于一個區。

宦輯和物理之間而關系是:一個表空間實際是一個或多個數據文件組成的邏輯儲備集合,每個

數據文件只屬于一個表空間;而一個數據文件上能夠分配多個區,每個區一定是一個數據文件

上的連續數據塊:一個數據塊由一個或多個操作系統塊構成,每個操作系統塊只屬于一個數據

塊。

數據庫在治理時使用邏輯儲備概念,例如表空間治理,而實際上儲備時使用的是物理儲備概念。

所有的這些儲備概念和之間的關系構成了儲備層次圖。

在數據庫儲備層次圖中,數據庫治理員第一需要治理的是用于儲備數據庫對象的表空間和儲備

數據的數據文件、表空間和數據文件有著密不可分的關系

表空間是一個或多個數據文件的邏輯集合,表空間的大小確實是組成它的所有數據文件大小之

和,一個表空間至少包括一個數據文件,通常出于性能或其他方面的考慮,一個表空間會建立

多個數據文件,數據文件是數據庫最終的數據儲備體,一個數據文件只屬于一個表空間。

儲備對象(例如表,索引)邏輯的儲備在表空間上,一個表空間能夠儲備多個儲備對象,每個

儲備對象只能屬于??個表空間。儲備對象的數據物理的存放在組成表空間的多個數據文件上。

數據庫至少需要一個system表空間,也確實是系統表空間,通常為了數據庫穩固性,健壯性,

高性能,可復原性等方面的考慮,一樣都會創建更多的表空間,存放不同類型的數據

表空間

system:數據字典信息,是數據庫必須的表空間,也是創建數據庫時第一個被創建的表空間

sysaux:存放除了數據字典之外的一些系統治理輔助信息、,是10g新增加的表空間,用于分擔系

統表空間的負荷

undo:存放自動治理的回滾段信息,提供事務的回滾功能和10g的閃回復原功能,是系統專門重

要的表空間之一

temp:暫存放用戶排序時的臨時數據和其他臨時數據

in加x:存放用戶表上的索引信息,用于減輕表數據V。與索引i/。的競爭

其它:另外一些大對象數據或專門類型的表結構也建議單獨儲備在其他表空間上。

上述表空間只有system,sysaux表空間的名稱必須由系統命名,不可更換,其他表空間名稱能夠

更換。其它表空間能夠在數據庫生成后由DBA創建并進行治理,通常對系統表空間的治理任務

較少,因此一樣做表空間治理大多是對除了system,sysaux表空間之外的其他表空間的治理

創建表空間createtablespacedatasdatafile7u01/app/oradata/benet/datas01.dbfsize5m;

在10g往常,每個表空間能夠有多個數據文件組成?伸每個數據文件的大小有限,因此整個表

空間總的容量也受到限制,從10g開始能夠創建大文件表空間(bigfiletablespaces).大文件表

空間由單個數據文件組成,每個數據文件最大能夠包含4G(2八32)個操作系統塊,擴展了表空

間的總大小

使用大文件表空間使用戶數據庫獲得了卜面的好外:

I.顯著的增加了oracle數據庫的儲備容量

2.關于8K的dbblocks,最大數據文件能夠達到32T:關于32k的dbblocks,最大數據文件可

達128T

3.由于數據文件個數的減少,使得檢查點的性能提升,減少了每次檢查點的代價

4.縮減了超大型數據庫的數據文件的數量

5.簡化了文件系統的治理

缺點:

I.金個文件損壞造成整個表空間的不可用

2.單個文件損壞丟失更多數據等

10g默認仍舊采納小文件(smallfile)表空間

selectpropcrty_valucfromdatabasc_propcrticswhereproperty_namc='DEFAULT_TBS_TYPE,;能

夠查看數據庫藏認表空間是什么文彳牛類型

alterdatabasesetdefaultbigfilctablespace更換默認的表空間文件類型

createbigfiletablespacebigfilesdatafile7u01Zapp/oradata/benet/bigfilesOI.dbfsize50G;創建時能

夠指定表空間的文件類型,不指定就采納默認的。(創建表空間之后,表空間文件類型不能修改)

表空間的空間治理是oracle描述表空間中空間分配狀況的方法,從8i開始,空間治理方法有以

下兩種:

數據字典治理表空間:是從往常一直被沿用的空間治理方法,從9i開始逐步被剔除;使用數據

字典uet$,fet$描述表空間中閑暇空間和使用空間情形,在表空間發生變化時這兩個表的信息隨

之變化;當表空間上的儲備空間被分配或開釋時,數據庫自動愛護這兩個表中的記錄信息

本地治理表空間:直截了當在各個表空間上治理閑暇空間和使用空間;使用儲備在表空間上的

bilmap標識閑暇空間和使用空間的信息;bitmap中的每一位描述一個block或者一組block的狀

態;空間發生改變時,相應的bit值將會從。變1或者反之;從9i開始默認使用的表空間屬性

段儲備在表空間上,段是由區組成的,區是在數據文件上劃分出的一段連續空間,在字典治理

表空間上儲備的每個段都能夠設置自己的儲備特性,例如各個區的大小等。在創建段的時候能

夠通過儲備了?句設置這些儲備性,也能夠在后期中進行修改,這些設置都反應在組成段的這些

區的空間大小上,也反映在數據字典uel$和fet$中

由于字典治理表空間的空間治理開銷專門大,對帶來空間爰護的數據庫操作性能阻礙專門大,

因此dmt這種技術現在差不多被舍棄,

createtablespacedatasdatafile'*/aa.dbfsize50mextentmanagementdictionarydefault

storage(initialImnextimpctincrease0);創建字典治理表空間

本地治理表空間使用bilmap描述空間分布情形,空間的變化僅僅反應在bit值的改變上,因此

明顯減少了由于空間變化帶來的空間信息愛護的代價,愛護所需的資源競爭明顯減少。在本地

治理表空間上不再需要為每個段設置儲備參數,所有在本地治理表空間上儲備的段,區大小遵

循表空間的設置,段的儲備參數無效

在本地治理表空間上,當空間分配或者開釋的時候可不能產生大量的回滾信息,也沒有明顯的

日志生成,空間治理開銷專門小,對空間愛護的性能有明顯改善,因此現在廣泛采納LMT.

createtablespacedatasdatafile'*/aa.dbfsize10mextentmanagementlocaluniformsize128k;倉U建

木地治理表空間

木地治理與字典治理表空間也必須在創建表空間之前確定,創建表空間之后不能被直截了當改

移植一個DMT表空間

表空間的治理方式不能直截了當轉換,因此用戶假如在升級系統后期望改變表空間的治理方式,

往往采取創建新的本地治理表空間,然后移動字典治理表空間上對象到本地治理表空間這種方

法,通常這種方法是能夠把大多數字典治理表空間替換成本地治理表空間的,然而system表空

間卻無法如此處理,因此oracle提供了移植數據字典治理的系統表空間到本地治理的表空間的

方法:dbnis_space_admin.tablespace_migrate_to_local(system);

除了表空間的空間治理方式需要在創建表空間之前確定之外,表空間的類型也必須在創建表空

間之前確定,表空間的類型也表空間中儲備的數據特性有關,依照表空間中儲備的數據內容不

同,Oracle把表空間分為三種類型:

1.永久類型存放永久儲備對象的數據

2.臨時類型暫存臨時數據

3.還原類型(回滾)儲備事務中的原始數據,也確實是回滾數據

Oracle默認的表空間類型差不多上永久類型;createtablespacedatasdatafile'*/aa.dbfsizeIm;

從91開始回滾段被數據庫自動治理,為「支持這種特性,Oracle)顯現一種表空間類型(undo),

這種表空間專用于儲備數據庫自動治理的回滾段(手工治理的回滾段不能儲備在那個地點);一

個數據庫能夠創建多個Undo類型表空間,但每個實例只能使用一個undo類型表空間,因此只

有在rac架構下才能夠使用多個Undo類型表空間

createundotablespaceundoCldatafile**/aa.dbfsize10m;創建回滾表空間

臨時類型表空間要緊用于暫存排序時的臨時數據,也能夠儲備其他用處的臨時數據,例如

sqlloder裝載時產生的數據,但不能儲備任何永久的對象

?個臨時類型表空間能夠暫存多個會話的排序數據,所有這嗎會話的排序使用?個臨時表空間

上一個臨時段中的不同臨時區,所有的臨時數據都將會在使用完成后從臨時表空間上自動開釋。

一個數據庫能夠一個或多個臨時類型表空間,每個排序只會使用其中的一個臨時表空間,在10g

往常,一個語句帶來的多個排序動作,必須使用一個臨時表空間的不同臨時區,所有的排序動

作堆積在一個臨時表空間上帶來了性能壓力,從oracle10g開始數據庫支持由多個臨時表空間組

成的臨時表空間組,一條語句帶來的多個排序動作能夠被分散在臨時表空間組的多個臨時表空

間上,分散了排序的壓力

createtemporarytablespacetemptempfile'*/aa.dbfsize20mextentmanagementlocaluniformsize

4m;創建臨時表空間

每個oracle數據庫用戶都有相應的臨時表空間屬性,代表用戶的排序使用此臨時表空間,然而

在創建用戶時沒有指定用戶的臨時表空間,那么oracle將把system作為用戶的臨時表空間,這

意味著排序的臨時數據將會在系統表空間上產生大量的誨讀寫,帶來嚴峻的性能阻礙

從9i開始grade要求必須設置一個數據庫的默認臨時表空間,用于為沒有明確指定臨時表空間

的用戶提供排序所需的表空間,以防止會話使用系統表空間做排序

默認的臨時表空間在創建數據庫時能夠設置,也能夠在創建數據庫后設置

alterdatabasedefaulttemporarytablespacelemp;改變當前的臨時表空間

selectpioperty_name,property_valuefromdatabase_propertieswhereproperty_namelike

,DEFAULT%,看詢當前的默認臨時表空間

臨時表空間一些限制:

1.不能離線

2.不能直截了當刪除

3.不能指定一個永久類型表空間為默認臨時表空間

createtemporarytablespace:ernpltempfile'*/a.dbfsizeiOmtablespacegroupt;創建臨時表空間

altertablespacetempitablespacegroupt;將臨時表空間加入臨時表空間組

在用戶設置臨時表空間屬性時,指定那個表空間組作為用戶的排序表空間即可

默認永久表空間:與默認臨時表空間意思?樣,確實是當創建用戶時沒有指定它的默認僚備表

空間,用戶的數據將存在system表空間中,而創建了默認永久表空間,就放在默認永久表空間

alterdatabasedefaulttablespaceusers;更換默認表空間

selectproperty_name,property_valuefromdatabase_propertieswhereproperty_namelike

,DEFAULT%,翻當前的默認永久表空間

表空間的狀態分為卜四種:

1.online

2.offline

3.readwrite

4.readonly

表空間的狀態實際.上是卜.面的四種的組合狀態,表空間的組合狀態一共有三種:

I.onlineandreadwrite

2.onlineandreadonly

3.offline

正常的表空間運行在online狀態下,online狀態表示表空間能夠被訪問,而offline狀態的表空

間是不可訪問的

當表空間外于online狀態時,表空間上的數據是能夠訪問的,數據能夠被正常讀寫,現在表空

間的數據可能差不多被讀取到內存中并被修改,因此一旦需要將表空間設置為offline狀態,數

據庫將會觸發檢杳點事件,將該表空間相關的內存臟數據(dirtybuffer)寫入相關的數據文件,

并將現在的SCN(系統改變號)寫入這些數據文件的頭部和操縱文件中,然后鎖定整個數據文

件,表空間一旦被offline,表空間中數據文件的內容和文件頭部的SCN信息將都不承諾修改

大多數表空間能夠隨時offline,然而有些表空間不能夠:

1.系統表空間

2.存在活動回滾段的表空間(被實例使用的)

3.默認的臨時表空間

altertablespaceusersoffline;altertablespaceusersonline;

表空間只讀:只承諾查詢,大承諾dml,但ddl操作是承諾的(只讀表空間上的對象能夠被刪除)

在正常狀態下修改的數據在表空間狀態變為只讀時也需要從內存中寫入磁盤,并記錄當前的

SCN到數據文件頭,然后鎖定數據文件內容和數據文件頭,也確實是在那個表空間上發生了檢

查點事件

altertablespaceusersreadonly;altertablespaceusersreadwrite;更換表空間的狀態

表空間的名稱在9i往常的版本中沒有相應的命令能夠修改,從10g開始,oracle支持直做了當

使用sql命令修改表空間的名稱了

alter

溫馨提示

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

評論

0/150

提交評論