您好,登錄后才能下訂單哦!
一.控制文件
1、控制文件在數據庫啟動的作用對于dna來講,oracle數據庫控制文件是非常重要的文件,他是數據庫創建的時候自動生成的二進制文件,其中記錄了數據庫的狀態信息。其它任何用戶都無法修改控制文件,只有數據庫運行過程中,數據庫實例可以修改控制文件中的信息。控制文件主要包括以下內容:
n 數據庫名稱,一個控制文件只能屬于一個數據庫。
n 數據庫創建時間。
n 數據文件的名稱、位置、聯機、脫機狀態信息。
n 重做日志文件的名稱、位置及歸檔信息。
n 所有表空間信息。
n 當前日志序列號。
n 最近檢查點信息。
2.控制文件在數據庫啟動的mount階段被讀取,數據庫啟動與控制文件的關系如下圖:
3.
控制文件中存放了創建數據庫的信息、重做日志信息、數據文件及歸檔日志文件記錄等信息。這些有價值的信息用于數據維護和管理,很多數據字典視圖是從控制文件中獲得的信息。
4.
3、存儲多重控制文件
由于控制文件非常重要,所以要求控制文件不能只有一個,通常數據庫中控制文件要多于3個,并且存放在不同的磁盤上,這種使用控制文件的方法也稱為控制文件的多路復用。實現多重的一個方法就是通過復制控制文件到多個位置并修改初始化參數文件中的CONTROL_FILES參數,使之包含所有控制文件名稱。
二、管理重做日志文件
1.作用:
為了提高磁盤效率和防止重做日志文件損壞
2.原理:
重做日志文件也稱聯機重做日志,目的是恢復數據。
在數據庫運行過程中,用戶更改的數據會暫時存放在數據庫的高速緩沖區中。為了提高寫數據庫的速度,并不是一旦有數據變化,就把變化的數據寫到數據庫文件中。頻繁的讀寫磁盤會使數據庫系統效率降低,所以,要等到數據庫高速緩沖區中的數據達到一定的量或滿足一定條件時,DBWR進程才會將變化了的數據寫到數據文件中。這種情況下,如果DBWR把變化了的更改寫到數據文件之前發生了宕機,那么數據庫高速緩沖區中的數據就會全部丟失。如果在數據庫服務器重啟動后無法恢復這部分用戶更改的數據,顯然是不可以的。
重做日志就是把變化了的數據首先保存起來,其中LGWR進程負責把用戶更改的數據先寫到重做日志文件中,這樣數據庫重新啟動時,數據庫系統從重做日志文件中讀取這些變化了的數據,將用戶更改的數據提交到數據庫中,寫入數據文件。
3.
種重做日志文件結構,如圖:
上圖可以看出有3個重做日志組,每組包含兩個重做日志成員。當第一個日志組寫滿之后,就會停止寫入,而轉向第二個日志組,第二個寫滿后,轉向第三個日之組,第三個寫滿就向第一個日志組寫入,oracle以這種循環方式使用重做日志組。
Oracle規定每個數據庫至少有兩個日志組,每組至少包含一個或者多個日志成員。
使用新的重做日志之前,DBWR進程需要將所有的數據更改寫到數據文件中。如果數據庫處于歸檔模式下,當發生日之組切換時,歸檔進程ARCH會把當前已滿的重做日志文件中的數據復制到歸檔日志中。
日志文件大小一般在10M-50M比較合適。
三.
日志切換和檢查點事件
日志切換就是停止當前日志組,轉而寫另外一個新的日志組,系統可以自動切換,也可以手工切換,當發生日志切換時,系統會在后臺完成檢查點的操作,以減少實例的恢復時間。
檢查點是一個事件,用于減少實例恢復的時間,當檢查點發生時,它會觸發DBWR進程,把數據高速緩沖中變化了的數據寫入數據文件,同時檢查點進程更新控制文件和數據文件頭部,以使它們保持一致。檢查點其實是一個后臺進程,用來保證所有修改過的數據庫緩沖區的東西都寫入數據庫文件。
檢查點時間越頻繁,則一旦數據庫發生故障,需要數據庫恢復的重用日志中的數據就越少(因為在恢復時,就不必檢查恢復檢查點之前的重用日志中的數據),所以就減少實例恢復的時間。
啟動時間:
n 每隔三秒(或更加頻繁)
n 發生日志切換
n 立即選項關閉例程時
n 手動請求
負責以下事項:
n 使用檢查點信息更新數據文件標題
n 使用檢查點信息更新控制文件
n 在完成檢查點向DBWn發出信號
五.管理歸檔日志文件
1、歸檔日志介紹
Oracle數據庫有兩種運行方式,歸檔(ARCHIVELOG)方式和非歸檔(NO ARCHIVELOG)方式。在非歸檔方式下,日志切換時直接覆蓋以前的重做日志文件,不產生歸檔日志。數據庫在歸檔方式下運行,在日志切換后,ARCH進程會對自己寫滿的重做日志文件進行存檔。默認情況下,oracle采用非歸檔的運行方式,主要因為歸檔方式會給系統帶來一定的性能問題,只有當數據庫運行在歸檔方式時,ARCH進程才存在,ARCH進程是oracle的可選后臺進程,將日志存檔,以便保存對數據庫做的所有修改,這樣,及時在數據文件磁盤損壞的情況下,數據庫管理員也能將對數據庫恢復至故障發生時的狀態。
1)歸檔進程
n 是可選的后臺進程
n 為數據庫設置ARCHIVELOG(歸檔)模式時會自動歸檔聯機重做日志文件
n 保留對數據庫所有更改的記錄
2)歸檔日志文件
n 數據庫在允許覆蓋重做日志信息之前生成聯機重做日志組的副本。
n 這些副本又稱為“歸檔日志”。
、配置數據庫歸檔日志步驟:
n 查詢數據庫歸檔方式,確定當前不處于歸檔方式
n 關閉數據庫并啟動數據庫到MOUNT狀態
n 將數據庫設置位歸檔模式,并驗證
六.數據字典
1、數據字典定義
數據字典是oracle存儲關鍵信息的表和視圖的集合。是數據庫的說明,包含數據庫中所有對象的名稱和屬性。
1、數據字典的構成
數據字典分為數據字典表和數據字典視圖。數據字典中的表不可以直接被訪問,但是可以訪問數據字典中的視圖。數據字典視圖分為兩類:靜態數據字典視圖和動態數據字典視圖。
1)數據字典表
數據字典表中的數據是oracle系統存放的系統數據,而普通表存放的是用戶的數據。為了方便的區別這些表,這些表的名稱都是用$結尾,這些表屬于SYS用戶。
為了方便對數據字典表的查詢,oracle對這些數據字典都分別建立了用戶視圖,這樣既容易記住,還隱藏了數據字典表之間的關系。
2)靜態數據字典視圖
靜態數據字典中的視圖分為3類,他們分別由3個前綴構成:USER_*、ALL_*、DBA_*。
n USER_*:該視圖存儲了當前用戶所擁有的對象的信息(既所有在該用戶模式下的對象)。
n ALL_*:該視圖存儲了當前用戶能夠訪問的對象的信息,(與USER_*相比,ALL_*并不需要擁有該對象,只需要具有訪問該對象的權限即可)。
n DBA_*:該視圖存儲了數據庫中所有對象的信息,(前提是當前用戶具有訪問權限,一般來說必須具有管理員權限)。
七、動態數據字典視圖及使用
1、概念
除了靜態數據字典中的3類視圖,其他的字典視圖中主要是V$視圖,之所以這樣命名是因為他們都是以V$或GV$開頭的,這些視圖會不斷地進行更新,可以反映出當前實例和數據庫的運行狀況。動態性能表用于記錄當前數據庫的活動,只存在于數據庫運行期間,實際的信息都取自內存和控制文件,dba可以使用動態視圖來監視和維護數據庫。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。