Oracle配置管理

前言:我們前面學習了安裝oracle以及創建數據庫,如果想要將客戶端與服務器連接起來,這就需要學習數據庫的連接配置。在數據庫的啓動過程中需要打開控制文件,並利用控制文件打開數據文件、重做日誌文件,從而打開數據庫。本次文檔給大家介紹連接配置,此外還有日誌文件的原理及操作,以及如何使用和操作數據字典視圖。

一、Oracle客戶端與服務器端的通信機制

Oracle產品安裝完成後,服務器和客戶端都需要進行網絡配置才能實現網絡連接,服務器端配置監聽器,客戶端配置網絡服務名。

1、oracle net協議
Oracle通過oracle net協議實現客戶端與服務器端的連接及數據傳遞。Oracle net是同時駐留在服務器端和客戶端上的一個軟件層,它封裝了TCP/IP,負責建立與維護客戶端應用程序到數據庫服務器的連接。有協議就要有相應的端口,所以oracle NET有個默認的偵聽端口1521。
Oracle配置管理
客戶端發出的請求首先通過oracle net協議轉換,轉換成可以通過網絡傳輸的信息,通過tcp/ip網絡將請求傳輸到數據庫服務器端,服務器端收到客戶端請求後通過oracle net協議轉換,將請求轉換成數據庫可以解釋執行的本地指令,並在服務器端執行,並將結果通過tcp/ip和oracle net協議傳輸給客戶端顯示。

2、客戶端與服務器端的連接過程
Oracle服務器通過一個名爲“oracle net監聽器”的組件接收來自客戶端的連接請求,監聽位於服務器端的一個後臺進程。發送的客戶端連接請求,首先被服務器的監聽器所偵聽,並交給對應的數據庫實例,從而建立起客戶端與服務器的連接。連接建立後,客戶端與服務器端就可以直接進行通信,不需要監聽器參與。要實現監聽器對客戶請求的監聽,需要對監聽器進行配置。
Oracle網絡服務名是一個標識符,代表客戶端連接服務器的配置信息。
Oracle配置管理
客戶端與服務器端的連接過程如下:
1)在服務器端有一個常駐的監聽器,監聽客戶端發出的連接請求。
2)用戶在客戶端使用(企業管理器或sql工具),輸入用戶名、口令及網絡服務名,或在sql命令行中輸入類似“CONNECT username/password@net_service_name”的請求。
3)客戶端查看網絡服務配置文件tnsnames.ora文件,將網絡服務名映射爲包含oracle服務器地址、監聽端口和全局數據庫名的連接描述符。
4)客戶端根據連接描述符定位監聽器,並通過網絡連接信息傳遞給監聽器。
5)監聽器查詢監聽配置文件listener.ora,找出所要連接的服務器。
6)客戶端和服務器開始通信。

3、配置和管理Oracle網絡配置的工具常見的有以下幾種:

Oracle配置管理
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理

上面紅框中的代碼the listener supports no services顯示沒有任何服務註冊到該監聽器上,這與監聽和數據庫實例的啓動先後順序有關。

解決方法:監聽啓動和數據庫實例啓動的順序
根據前面的知識,啓動完數據庫實例後,啓動監聽,在連接數據庫時,只有這二者兼備,oracle才能向外提供服務。
監聽和實例啓動順序的先後會對二者之間的工作協調產生影響,具體如下:

先啓動監聽,後啓動實例:此時遠程客戶端連接實例是正常的,不會有問題,因爲監聽先啓動,在啓動實例時後臺進程PMON會向監聽註冊服務器,當用戶請求服務時,兩者的協調工作已準備就緒。
先啓動實例,後啓動監聽:如果監聽剛啓動,用戶馬上連接實例,可能會報“監聽程序當前無法識別連接描述符中請求的服務”的錯誤,原因在於PMON還沒來得及向監聽註冊實例服務。但是這個問題只會存在很短的一段時間,再連接就不會有問題了,爲什麼等一會就好了呢?因爲PMON每隔一段時間都會看有無服務需要向監聽註冊,此時若監聽已啓動,PMON就能註冊成功,二者的協調工作就準備就緒了。
有沒有辦法解決很短的一段時間內的這個問題呢?答案是一定的。就是以靜態註冊的方式,即將實例的服務描述添加到listener.ora,這樣只要啓動監聽,對應的服務在監聽中就註冊了。這是隻要實例正常啓動完成,就可以對外提供服務器了。在Listener.ora代碼中添加如下代碼即可。
Oracle配置管理
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理

二、管理控制文件

控制文件是非常重要的文件,主要掌握以下內容:
瞭解控制文件在數據庫啓動的作用
獲得控制文件信息
查看控制文件中所存內容的信息
存儲多重控制文件
備份和恢復控制文件

1、控制文件在數據庫啓動的作用
對於dna來講,oracle數據庫控制文件是非常重要的文件,他是數據庫創建的時候自動生成的二進制文件,其中記錄了數據庫的狀態信息。其它任何用戶都無法修改控制文件,只有數據庫運行過程中,數據庫實例可以修改控制文件中的信息。控制文件主要包括以下內容:
數據庫名稱,一個控制文件只能屬於一個數據庫。
數據庫創建時間。
數據文件的名稱、位置、聯機、脫機狀態信息。
重做日誌文件的名稱、位置及歸檔信息。
所有表空間信息。
當前日誌序列號。
最近檢查點信息。

控制文件在數據庫啓動的mount階段被讀取,數據庫啓動與控制文件的關係如下圖:
Oracle配置管理
在數據庫啓動時首先使用默認規則找到並打開參數文件,在參數文件中含有控制文件的位置信息,打開控制文件後,會通過控制文件中記錄的各種數據庫文件的位置打開數據庫,從而啓動數據庫到可用位置,所以在數據庫啓動後,在數據庫的運行過程中,數據庫服務器可不斷地修改控制文件中的內容,所以在數據庫被打開的階段,控制文件必須是可讀寫的,但是其他任何用戶都無法修改控制文件,只有數據庫實例可以修改控制文件中的信息。

2、獲得控制文件信息
1)可以從V$CONTROLFILE視圖中查看控制文件信息,包括控制文件名稱。
Oracle配置管理
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理

三、管理重做日誌文件

重做日誌文件也稱聯機重做日誌,目的是恢復數據。
在數據庫運行過程中,用戶更改的數據會暫時存放在數據庫的高速緩衝區中。爲了提高寫數據庫的速度,並不是一旦有數據變化,就把變化的數據寫到數據庫文件中。頻繁的讀寫磁盤會使數據庫系統效率降低,所以,要等到數據庫高速緩衝區中的數據達到一定的量或滿足一定條件時,DBWR進程纔會將變化了的數據寫到數據文件中。這種情況下,如果DBWR把變化了的更改寫到數據文件之前發生了宕機,那麼數據庫高速緩衝區中的數據就會全部丟失。如果在數據庫服務器重啓動後無法恢復這部分用戶更改的數據,顯然是不可以的。
重做日誌就是把變化了的數據首先保存起來,其中LGWR進程負責把用戶更改的數據先寫到重做日誌文件中,這樣數據庫重新啓動時,數據庫系統從重做日誌文件中讀取這些變化了的數據,將用戶更改的數據提交到數據庫中,寫入數據文件。
爲了提高磁盤效率和防止重做日誌文件損壞,oracle引入了一種重做日誌文件結構,如圖:
Oracle配置管理
上圖可以看出有3個重做日誌組,每組包含兩個重做日誌成員。當第一個日誌組寫滿之後,就會停止寫入,而轉向第二個日誌組,第二個寫滿後,轉向第三個日之組,第三個寫滿就向第一個日誌組寫入,oracle以這種循環方式使用重做日誌組。
Oracle規定每個數據庫至少有兩個日誌組,每組至少包含一個或者多個日誌成員。
使用新的重做日誌之前,DBWR進程需要將所有的數據更改寫到數據文件中。如果數據庫處於歸檔模式下,當發生日之組切換時,歸檔進程ARCH會把當前已滿的重做日誌文件中的數據複製到歸檔日誌中。
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理
Oracle配置管理

四、管理歸檔日誌文件

1、歸檔日誌介紹
Oracle數據庫有兩種運行方式,歸檔(ARCHIVELOG)方式和非歸檔(NO ARCHIVELOG)方式。在非歸檔方式下,日誌切換時直接覆蓋以前的重做日誌文件,不產生歸檔日誌。數據庫在歸檔方式下運行,在日誌切換後,ARCH進程會對自己寫滿的重做日誌文件進行存檔。默認情況下,oracle採用非歸檔的運行方式,主要因爲歸檔方式會給系統帶來一定的性能問題,只有當數據庫運行在歸檔方式時,ARCH進程才存在,ARCH進程是oracle的可選後臺進程,將日誌存檔,以便保存對數據庫做的所有修改,這樣,及時在數據文件磁盤損壞的情況下,數據庫管理員也能將對數據庫恢復至故障發生時的狀態。
1)歸檔進程
是可選的後臺進程
爲數據庫設置ARCHIVELOG(歸檔)模式時會自動歸檔聯機重做日誌文件
 保留對數據庫所有更改的記錄
2)歸檔日誌文件
數據庫在允許覆蓋重做日誌信息之前生成聯機重做日誌組的副本。
 這些副本又稱爲“歸檔日誌”。

Oracle配置管理
2、配置數據庫歸檔日誌步驟:
查詢數據庫歸檔方式,確定當前不處於歸檔方式
關閉數據庫並啓動數據庫到MOUNT狀態
將數據庫設置位歸檔模式,並驗證
SQL>archive log list;
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理

五、數據字典

1、數據字典定義
數據字典是oracle存儲關鍵信息的表和視圖的集合。是數據庫的說明,包含數據庫中所有對象的名稱和屬性。Oracle進程會在SYS模式中維護這些表和視圖,也就是說數據字典的所有者爲SYS用戶,數據存放在SYSTEM表空間中。
數據字典描述了實際數據是如何組織的,如一個表的創建者信息,創建時間信息,所屬表空間信息,用戶訪問權限信息等。對他們可以像處理其他數據庫表或視圖一樣進行查詢,但不能進行任何修改。
Oracle數據字典通常是在創建和安裝數據時被創建的。
Oracle數據字典是oracle數據庫系統工作的基礎。
沒有數據字典的支持,oracle數據庫系統就不能進行任何工作。

2、數據字典的構成
數據字典分爲數據字典表和數據字典視圖。數據字典中的表不可以直接被訪問,但是可以訪問數據字典中的視圖。數據字典視圖分爲兩類:靜態數據字典視圖和動態數據字典視圖。
Oracle配置管理
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理

六、動態數據字典視圖及使用

1、概念
除了靜態數據字典中的3類視圖,其他的字典視圖中主要是V$視圖,之所以這樣命名是因爲他們都是以V$或GV$開頭的,這些視圖會不斷地進行更新,可以反映出當前實例和數據庫的運行狀況。動態性能表用於記錄當前數據庫的活動,只存在於數據庫運行期間,實際的信息都取自內存和控制文件,dba可以使用動態視圖來監視和維護數據庫。下面列舉幾個dba維護數據庫中經常使用的幾個動態數據字典視圖。
Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理Oracle配置管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章