標籤:oracle資料庫
首先我想大多數人對於資料庫的定義是一種由很多資料的集合體稱之為資料庫。在漢譯中我們通常把儲存東西的某一地方叫的東西做庫。而把大量的資料儲存在一起呢就叫資料庫,所以這也是普遍外行人的認知。但事實上的資料庫不僅僅只是單純的將資料儲存在一起形成庫。
簡單地說,資料庫(Database,簡稱DB)是一個提供資料的基地。它能儲存數據並讓使用者從它這裡訪問有用的資料。確切地說,資料庫是某個企事業單位存在計算機內的一組業務資料,它能以最佳方式、最少的資料重複被這個單位中的所有可能的應用系統所共用。資料庫中的業務資料是以一定的組織方式儲存在一起的相互有關的資料整體。
一、oracle資料庫的發展曆程
http://baike.haosou.com/doc/1180281-1248530.html
二、資料庫的劃分
資料庫有大中小劃分,不過這些資料庫的劃分並不是絕對的。
比如幾年前資料庫剛出道的那會access資料庫就是大資料庫了,而現在它只能算是小型的資料庫。
小型資料庫有:access、poxbase
中型資料庫有:Mysql、SQL server、informix
大型資料庫有:oracle、DB2、sybase
三、資料庫的認證(DBA資料管理員)
OCA初級認證
OCP專家認證
OCM大師認證
四、資料庫作用
它可以支援多種不同的硬體和作業系統平台,從台式機到大型和超級電腦,為各種硬體結構提供高度的延展性,支援對稱式多處理器、群集多處理器、大規模處理器等,並提供廣泛的國際語言支援。 Orcale是一個多使用者系統,能自動從批處理或線上環境的系統故障中恢複運行。系統提供了一個完整的軟體開發工具Developer2000,包括互動式應用程式產生器、報表列印軟體、文書處理軟體以及集中式資料字典,使用者可以利用這些工具產生自己的應用程式。Orcale以二維表的形式表示資料,並提供了SQL(結構式查詢語言),可完成資料查詢、操作、定義和控制等基本資料庫管理功能。Orcale具有很好的可移植性,通過它的通訊功能,微電腦上的程式可以同小型乃至大型電腦上的Orcale,並且能相互傳遞資料。另外Orcale還具有與C語言的接試算表、圖形處理等軟體。 Orcale屬於大型資料庫系統,主要適用於大、中小型應用系統,或作為客戶機/伺服器系統中伺服器端的資料庫系統
五、資料庫結構
------ |--oracle軟體
------ --------|------------------------------------------|--PGA(私人)
---- ----------|---------------------------------|--記憶體--|
oracle server -|---------------------------------|--------|--SGA系統全域區
---------------|---------------------------------|
---------------|--oracle資料庫 --|--執行個體instance-|--進程--|--前台進程:
---------------------------------|------------------------|--後台進程:DBWR LGWR SMON PMON CKPT ARCH OTHRES
---------------------------------|
---------------------------------|------------------|控制檔案(Control files)
---------------------------------|--資料庫database--|資料檔案(Data files)
------------------------------ --------------------|記錄檔(Redo log files)
------------------------------ --------------------|參數檔案(Parameter file)
------------------------------ --------------------|密碼檔案(Password file)
------------------------------ --------------------|歸檔日誌( log files)
SGA系統全域區(SharedPool BufferCache RedoBufferCache StreamPool JavaPool LargePool)
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/C1/wKiom1YGMgawQOEFAALHpaFWG1c238.jpg" title="ZonTiJieGou.jpg" style="float:none;" alt="wKiom1YGMgawQOEFAALHpaFWG1c238.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/73/BF/wKioL1YGMgviLuUxAAEIA2Qtyzc817.jpg" title="OracleJieGou.jpg" style="float:none;" alt="wKioL1YGMgviLuUxAAEIA2Qtyzc817.jpg" />
物理結構:
資料庫物理結構是指構成資料庫的作業系統物理檔案
資料檔案(Data files)
記錄檔(Redo log files)
控制檔案(Control files)
參數檔案(Parameter file)
物理檔案的損壞或誤刪除就會破壞資料庫物理結構,從而造成資料丟失。
參數檔案
select * from v$parameter; #v$parameter中的內容來自於參數檔案
是一個文字檔,可直接使用文字編輯器對其內容進行修改,該檔案只
在建立資料庫和啟動執行個體時被訪問,修改該檔案後必須重啟執行個體才生效。
作用如下:
設定SGA的大小
設定資料庫的全部預設值
設定資料庫的範圍
在資料庫建立時定義資料庫的物理屬性
指定控制檔案名稱和路徑
通過調整記憶體結構,最佳化資料庫效能
控制檔案
select name,value from v$paramater where name=‘control_files‘;
show parameter control;
每一個ORACLE資料庫有一個控制檔案,用於維護資料庫的全域物理結
構,所有資料庫結構的改變都會引起控制檔案的改變(同時被記錄在
追蹤檔案,由Oracle後台進程自動完成),包含下列資訊類型:
資料庫名
資料庫資料檔案和記錄檔的名字和位置
資料庫建立日期
資料庫最大化參數,如:MaxLogFiles,MaxLogMembers,MaxLogHistory,MaxDataDiles,MaxInstances
一個資料庫只需要一個控制檔案,為了安全起見,允許控制檔案被鏡象
重做記錄檔
重做記錄檔用於記錄使用者對資料的修改或資料庫管理員對資料庫結構的修
改,並提供一種介質失敗時的恢複機制。
重做記錄檔分組管理。
一個Oracle資料庫要求至少有兩組重做記錄檔。
組中每個記錄檔被稱作一個群組成員。每一個記錄檔組對應1個或多個記錄檔。
重做記錄檔迴圈使用,當一個重做記錄檔充滿時,LGWR 將日誌寫入
到下個重做日誌組,這個被叫做日誌切換。
資料檔案歸檔記錄檔
select * from v$archived_log;
不要放在儲存上
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/C1/wKiom1YGMgajOGJgAAD7ezWa90Q094.jpg" title="WuLiJieGou.jpg" style="float:none;" alt="wKiom1YGMgajOGJgAAD7ezWa90Q094.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/73/BF/wKioL1YGMgvQJPwjAACVTOZbIUk502.jpg" style="float:none;" title="WiJieGou.jpg" alt="wKioL1YGMgvQJPwjAACVTOZbIUk502.jpg" />
資料庫記憶體和進程:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/BF/wKioL1YGMgvw-IN_AAGiK92Qoxs010.jpg" title="NeiCenJiChenJieGou.jpg" style="float:none;" alt="wKioL1YGMgvw-IN_AAGiK92Qoxs010.jpg" />
執行個體(Instance ):資料庫啟動時將自動分配SGA,並啟動Oracle的多個後台進程(Background Processes)。記憶體地區和後台進程合稱為執行個體。
一般情況下,資料庫與執行個體是一一對應的關係,即有一個資料庫就有一個執行個體。但在Oracle的並行伺服器結構中,資料庫與執行個體是一對多的關係,這種配置方式中,同一時間使用者只與一個執行個體相連,當一個執行個體出現故障,其它執行個體將自動服務。
共用池 Shared pool
庫緩衝:Library cache存放執行的SQL語句、解析代碼和執行計畫等
資料字典緩衝:Data dictionary cache 儲存表名、欄位名和其他對象的定義和許可權等字典資訊
共用池大小設定參數 SHARED_POOL_SIZE。
資料緩衝區 Data Buffer Cache
資料緩衝區用於儲存從磁碟資料檔案中讀入的資料,為所有使用者共用。修改資料時,首先要將資料從資料檔案中取出,並儲存於資料緩衝區中。
使用最近最少使用原則(LRU)作為管理機制,儲存最近使用的資料區塊。
其大小有參數DB_BLOCK_BUFFERS確定。
日誌緩衝區 Redo Buffer
日誌緩衝區用於儲存資料庫的修改資訊。
當日誌緩衝區的日誌資料達到一定數量時,由日誌進程寫入記錄檔。
尺寸大小由LOG_BUFFER定義。
排序區 Sort Area
排序區為有排序需求的SQL語句提供記憶體空間。
Oracle中,使用者資料的排序有兩個地區,一個時記憶體排序區,一個時磁碟臨時段,當排序記憶體不夠時,自動使用磁碟暫存資料表空間進行排序。
參數SORT_AREA_SIZE用於設定排序區的大小
大池 Large Pool
大池用於Database Backup恢複工具RMAN(Recovery Manager)或多線程伺服器(Multithreaed Server MTS,允許多使用者進程共用很少的伺服器處理序,與此相對應的是專用伺服器處理序Dedicated Server,這種串連方式中使用者進程於伺服器處理序一一對應)。
其大小由 LARGE_POOL_SIZE決定。
Java池
Oracle 8i、Oracle 9i以後增加了對Java的支援,該記憶體主要用於Java語言的開發。
其大小由JAVA_POOL_SIZE 參數決定。
程式全域區 PGA
PGA是包含單個使用者或伺服器資料和控制資訊的記憶體地區,當使用者進程串連到Oracle時並建立一個會話時由Oracle自動分配。
PGA為非共用區,只要共使用者儲存編程時的變數和數組。使用者回話結束時釋放。
show parameter pga;
進程
Oracle進程分為使用者進程、伺服器處理序和後台進程。當使用者運行應用程式時自動產生使用者進程,伺服器處理序負責處理使用者進程的請求
前台進程(伺服器處理序)後台進程
DBRW叫資料寫入進程,當Dirty List達到一定長度時,DBWR將資料寫盤並重新整理緩衝區
LWGR叫日誌寫入進程,當日誌緩衝區達到飽和時,它負責將日誌資料寫入記錄檔
SMON叫系統監控進程,在執行個體啟動時執行執行個體恢複,負責清理不再使用的臨時段,合并資料檔案的自由空間
PMON叫進程監控進程,在使用者進程出現故障時執行進程恢複,負責清理記憶體儲區和釋放該進程所使用的資源。
ARCH叫歸檔進程,該進程將已寫滿的記錄檔複製到歸檔記錄檔中。僅在歸檔模式(Archivelog)下發生
CKPT叫檢測點進程,通常在日誌切換時,通知LGWR寫日誌並喚起DBWR將記憶體中所有修改過的資料區塊寫回到資料檔案中
SNP是作業進程,用於周期性的運行使用者的作業,可以看作是調度服務,用於PL/SQL語句或預存程序
本文出自 “NJ小生” 部落格,請務必保留此出處http://liqingwen.blog.51cto.com/9853378/1698414
認識oracle資料庫