學習目標 使用Enterprise Manager執行操作 -創建其它監聽程式 -創建Oracle Net服務別名 -配置連接時故障轉移 -控制Oracle Net監聽程式 使用tnsping 測試Oracle Net的連接 確定何時使用共用伺服器以及何時使用專用伺服器 《Oracle Databa ...
學習目標 使用Enterprise Manager執行操作 -創建其它監聽程式 -創建Oracle Net服務別名 -配置連接時故障轉移 -控制Oracle Net監聽程式 使用tnsping 測試Oracle Net的連接 確定何時使用共用伺服器以及何時使用專用伺服器 《Oracle Database Net Services Administrator's Guide》 《Oracle Database Net Services Reference》 Oracle Net服務 客戶端或中間層到Oracle伺服器端二者間創建連接,並且負責信息交換。 客戶端或中間層(應用程式<-->Oracle Net)---TCP/IP---(監聽程式)---資料庫(RDBMS<-->Oracle Net) Oracle Net配置文件 Oracle Net服務最常見的用法是傳入資料庫連接。通過配置其它網路服務,可允許訪問外部代碼庫(EXTPROC)以及通過Oracle異構服務將Oracle實例連接到非Oracle數據源(Sybase,Informix,DB2和SQL Server) Oracle Net監聽程式 監聽程式,是將所有非本地用戶連接到Oracle實例的網關。單個監聽程式可用於多個資料庫實例以及成千上萬個客戶端連接。 安裝Grid Infrastructure後,Oracle Net監聽程式從其軟體安裝目錄<Grid_home>啟動。 建立網路連接 Oracle Net連接需瞭解事項: -運行監聽程式的主機 -監聽程式監聽的埠 -監聽程式使用的協議 -監聽程式處理的服務名 Oracle Net名稱解析 建立連接 Oracle Net名稱解析完成後,連接請求傳遞至監聽程式。監聽程式會接收一個CONNECT數據包,並檢查請求包的Oracle Net服務名是否有效。 用戶會話 CONNECT數據包請求了一個有效的服務名,則監聽程式衍生一個“伺服器進程”。監聽程式會連接該進程並傳遞初始化信息,用戶進程地址信息。此時監聽程式不再處理連接,所有工作都會由伺服器進程處理。 伺服器進程首先檢查用戶的身份證明(密碼),有效則創建一個用戶會話。 專用伺服器進程 -對通過應用程式發出的所有SQL語句進行語法分析,然後運行 -在資料庫緩衝區高速緩存中查找執行SQL語句所需的數據塊 -從磁碟上的數據文件中將必要的數據塊讀入到系統全局區(SGA)中的資料庫緩衝區高速緩存部分(如果SGA中沒有這些數據塊) -管理所有排序活動。排序區是用於處理排序的記憶體區;它包含在程式全局區(PGA)關聯的記憶體部分。 -將結構返回到用戶進程,以便應用程式可以處理這些信息 -讀取審計選項並將用戶進程報告給審計目標 配置和管理Oracle Network的工具 Enterprise Manager的“Net Services Administration網路服務管理” 提供了配置和管理Oracle Net服務的集成環境 Oracle Net Manager 提供了圖形化用戶界面(GUI),可針對本地客戶端或伺服器主機上的Oracle主目錄配置Oracle Net服務。 網路組件 -命令:定義簡單的名稱和連接標識符,並將它們映射至連接描述符以確定網路位置和服務標識。Oracle Net Manager支持在本地tnsnames.ora文件或集中式目錄服務中配置連接描述符 -命令方法:配置連接標識符解析為連接描述符的不同方法 -概要文件:配置用於在客戶端或伺服器上啟用和配置Oracle Net功能的首選項 -監聽程式:創建和配置監聽程式以接收客戶端連接 Oracle Net Configuration Assistant 安裝Oracle軟體時通過Oracle Universal Installer啟動Oracle Net Configuration Assistant。 命令行 監聽程式控制 使用lsnrctl命令行控制Oracle Net監聽程式 $lsnrctl LSNRCTL>help lsnrctl可以完成以下工作: -啟動監聽程式 -停止監聽程式 -檢查監聽程式的狀態 -根據配置文件參數初始化監聽程式 -動態配置多個監聽程式 -更改監聽程式口令 基本命令語法 LSNRCTL>command [listener_name] 命令行語法: $lsnrctl <command name> $lsnrctl start $lsnrctl stop $lsnrctl status 提示符語法: LSNRCTL><command name> LSNRCTL>start LSNRCTL>status 命令行語法通常用於執行單個命令或腳本命令。如果計劃執行若幹個連續的lsnrctl命令,則使用提示符語法更高效。如果監聽程式受到口令的保護,則必須使用提示符語法。 使用SRVCTL啟動和停止監聽程式 由Oracle restart管理的任何監聽程式,可以使用srvctl啟動/停止它並查看其狀態。 -srvctl -h -srvctl start listener -srvctl stop listener -srvctl start listener -l mylistener -srvctl status listener 監聽程式主頁 -最近24小時內監聽程式的狀態和可用性 -監聽程式版本和Oracle主目錄 -監聽程式的第一個監聽地址 -用於啟動監聽程式的配置文件的位置 -監聽程式的啟動時間和主機信息 -Oracle restart 狀態 Net Services Administratrion(網路服務管理)頁 -監聽程式:添加,刪除,啟動和停止監聽程式,以及更改其跟蹤特性和事件記錄特性。此外,還可以查詢監聽程式的控制狀態報表。 -目錄命名:可以定義簡單的名稱和連接標識符,並將定義的內容映射至連接描述符以確定網路位置和服務標識。將資料庫服務,Oracle Net服務和Oracle Net服務別名保存到集中式目錄服務中。 -本地命名:將Oracle Net服務名保存在tnsnames.ora文件中 -概要文件:配置sqlnet.ora參數 -文件位置:更改Oracle Net服務的配置文件的位置 資料庫服務註冊 -動態服務註冊:Oracle8i和更高版本的實例會在啟動資料庫時向預設監聽程式自動進行註冊。 -靜態服務註冊:Oracle DB的早期版本並不自動向監聽程式進行註冊,因此,要求監聽程式配置文件包含一個列表,其中含有監聽程式為之提供服務的所有資料庫服務。 靜態服務註冊,使用場景: -監聽程式所在的埠不是預設的1521埠 -應用程式要求進行靜態服務註冊 -服務名:SERVICE_NAMES初始化參數指定客戶端可用來連接到實例的一個或多個名稱。實例向監聽程式註冊其服務名。 SERVICE_NAMES = sales.example.com,eurosales.example.com 命名方法 Oracle Net支持多種解析連接信息的方法: -簡單連接命名:使用TCP/CP連接字元串 CONNECT username/password@host[:port][/service_name] -預設啟用此方式 -不需要進行客戶端配置 -僅支持TCP/IP(無SSL) -不支持高級連接選項(如:連接時故障轉移,源路由,負載平衡) -本地命名:使用本地配置文件 連接描述符存儲在客戶端 tnsnames.ora的本地配置文件 -需要客戶端名稱解析文件 -支持所有的Oracle Net協議 -支持高級連接選項(如:連接時故障轉移,源路由,負載平衡) -目錄命名:使用符合LDAP的集中式目錄伺服器 -需要載入了Oracle Net名稱解析信息的LDAP -Oracle Internet Directory -Microsoft Active Directory Services -支持所有的Oracle Net協議 -支持高級連接選項 -外部命名:使用受支持的非Oracle命名服務,概念上講,外部命名類似於目錄命名。 -使用受支持的非Oracle命名服務 -包括 -網路信息服務(NIS)外部命名 -分散式計算環境(DCE)單元目錄服務(CDS) 高級連接選項 本地命名和目錄命名,Oracle Net支持的高級連接選項 -連接時故障轉移 -源路由 -負載平衡