官术网_书友最值得收藏!

  • Oracle DBA基礎教程
  • 林樹澤
  • 1522字
  • 2021-03-26 13:21:40

3.3 客戶端配置

客戶端要連接到數據庫服務器必須要知道一些信息,如數據庫服務器的IP地址、使用通信協議、連接端口號,以及對應的數據庫服務名,這些需要在數據庫客戶端設置,這些信息存儲在tnsnames.ora文件中,在該文件中設置要連接到的每一個數據庫服務器的實體信息。

3.3.1 本地命名

本地命名使用的配置文件是tnsnames.ora文件,該文件位于客戶端。我們可以使用netca來配置這個文件。本地命名是建立Oracle數據庫連接最便捷的方法,在文件tnsnames.ora中存儲了數據庫服務名和鏈接描述符,該文件默認位于$Oracle_HOME/network/admin目錄中。

在使用SQL*PLUS或其他方法初始化一個客戶端連接時,Oracle Net組件會提供數據庫的詳細信息,這些信息就存儲在tnsnames.ora文件中,這些信息包括數據庫服務器的網絡地址、通信協議以及連接端口。通過這些信息與監聽程序建立通信,而后監聽程序會將該連接交給SERVICE_NAME指定的數據庫,一旦數據庫服務器確定了用戶名和密碼匹配,則建立客戶端的連接。此時的tnsnames.ora就是一個服務名解析的作用,將一個服務名解析為一個網絡連接實體,確定要連接的具體的數據庫服務。

下面是tnsnames.ora文件的內容,其中我們添加了數據庫PROD的服務名信息。如果客戶端需要連接到更多的數據庫,則需要添加更多的映射信息。

例子3-19 tnsnames.ora文件的內容

    MYPROD =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ocm1.oracle)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = PROD)
        )
      )
    

ADDRESS是監聽器的實體信息,CONNECT_DATA說明使用的服務器體系架構和對應的數據庫服務名。這樣客戶端軟件就可以根據這些信息建立到監聽器的連接,而監聽器根據SERVICE_NAME找到注冊的數據庫,將連接交給數據庫服務器,一旦數據庫服務器通過用戶名和密碼驗證,則建立客戶端和服務器之間的連接。

上例列出了2個數據庫,二者具有不同的特性,數據庫MYPROD位于主機ocm1.oracle上,數據庫服務名為PROD,而數據庫EMREP位于主機ocm2.oracle上,數據庫服務名為EMREP。當連接到這兩個數據庫時,客戶端用這個文件來解析,完成到數據庫服務器的連接。

說明

tnsnames.ora文件必須位于客戶端上,如果有多個客戶端則需要復制過去,保證連接成功,且數據庫服務器端的監聽程序必須運行,數據庫服務器才能保持運行。

下面我們通過如下語法測試連接。

    SQL>connect username/password@net_servive_name

例子3-20 打開SQL*Plus對數據庫進行操作

    [Oracle@ocm1 admin]$ sqlplus sys/Oracle@myprod as sysdba
    
    SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 24 11:31:10 2011
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining options
    
    SQL>

3.3.2 簡單命名

簡單命名網絡連接是最簡潔的連接方法,在配置方面要求很少。此時客戶端用戶不需要配置如TCP/IP環境下的tnsnames.ora文件就可以連接到Oracle數據庫服務器。客戶機只需要根據主機名(或者IP地址)、端口號以及數據庫的服務名即可連接數據庫服務器,這樣就省去了系統中對數據庫配置TCP/IP連接實體。

但是使用簡單連接要求在客戶機和數據庫服務器上同時運行TCP/IP協議棧,簡單連接在Oracle9i中引入,是數據庫連接的有益補充。下面是簡單連接的語法。

    $CONNECT username/password@[//]host[:port][/service_name]

下面是簡單連接中的幾個注意事項。

● //(雙斜杠)是可選的。

● Host:是強制參數,可以是主機名也可以是IP地址。

● Port:是端口號,該參數是可選的,如果是默認端口可以不寫。

● Service_name:該參數指定數據庫服務器的服務名,默認是主機名,是可選參數。如果主機名和數據庫服務器名相同,則這個參數可以省略;如果不同,則必須提供數據庫服務器的服務名。

下面是一個連接實例。

例子3-21 簡單連接實例

    [Oracle@ocm1 admin]$ sqlplus system/Oracle@ ocm1.oracle:1521/prod
    
    SQL*Plus: Release 10.2.0.1.0 - Production on Tue Oct 25 22:29:48 2011
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining options
    
    SQL>

數據庫服務器所在的IP地址為192.168.1.10,使用默認端口1521作為監聽端口,數據庫服務器的服務名為PROD。

既然是默認端口號,此時可以不寫這個參數,如下例所示。

例子3-22 默認端口號

    [Oracle@ocm1 admin]$ sqlplus system/Oracle@// ocm1.oracle /prod
    
    SQL*Plus: Release 10.2.0.1.0 - Production on Tue Oct 25 22:34:26 2011
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining options
    
    SQL>

其實,使用簡單連接方法與使用本地命名方法是相同的,在簡單連接方法中提供的連接參數,在本地命名連接方法中的tnsnames.ora文件中都有,如下例所示。

例子3-23 本地命名連接方法中的tnsnames.ora文件

    MYPROD =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ocm1.oracle)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = PROD)
        )
      )
主站蜘蛛池模板: 和林格尔县| 怀集县| 新余市| 和平县| 江西省| 石台县| 全椒县| 徐汇区| 柏乡县| 榆中县| 崇信县| 洛浦县| 武宁县| 滦平县| 朝阳县| 右玉县| 宁晋县| 当阳市| 海林市| 牙克石市| 文昌市| 延长县| 喀喇沁旗| 石林| 南靖县| 三穗县| 柯坪县| 南郑县| 乡宁县| 鄱阳县| 万源市| 泽库县| 太和县| 宝山区| 静安区| 微博| 通州区| 襄垣县| 保德县| 太和县| 泗水县|