1.命名方法概覽
客戶機應用程式在試圖連線資料庫服務時,需要借助命名方法將連線識別符號解析為連線描述符。oracle net 提供了五種命名方法:
主機命名(host naming):使 tcp/ip 環境中的使用者能夠通過其現有名稱解析服務來解析名稱
目錄命名:將資料庫服務或網路服務名解析為連線描述符,該描述符儲存在**目錄伺服器中
oracle names:這是由 oracle names 伺服器系統構成的 oracle 目錄服務,這些伺服器可以為網路上的每個服務提供由名稱到位址的解析
外部命名:使用受支援的第三方命名服務
對於只有幾個資料庫的小型組織來說,應使用主機命名將名稱儲存在現有名稱解析服務中,也可使用本地命名將名稱儲存在客戶機上的 tnsnames.ora 檔案中。
對於有多個資料庫的大型組織來說,應使用目錄命名將名稱儲存在集中管理的符合 ldap 的目錄伺服器中。
2.主機命名
在下列情況下,客戶機可使用主機名來連線伺服器:
使用 oracle net services client 軟體連線 oracle 資料庫服務
使用 tcp/ip 協議建立客戶機與伺服器的連線
主機名通過 dns 或本地的 /etc/hosts 檔案等 ip 位址轉換機制來解析
不使用 「連線管理器」 (connection manager) 或安全選項等高階功能
主機命名方法具有下列優點:
需要的使用者配置最少。使用者只需提供主機名即可建立連線。
無需建立與維護本地名稱配置檔案 (tnsnames.ora)。
無需了解 oracle names 或 oracle internet directory 管理過程。
主機命名在每個節點上只能標識乙個 sid,而使用其它命名方法還可標識其它 sid。
如果在主機 (hosts) 檔案中對多個全域性名稱設定了別名,讓它們指向同一 ip 位址,這樣即使這些資料庫位於同一節點上,也可使用主機命名連線任意資料庫。
客戶端要求
如果使用主機命名方法,則必須在客戶機上安裝 tcp/ip 協議。此外,還必須安裝 oracle net services 和 tcp/ip 協議介面卡。
主機名通過網域名稱服務 (domain name services, dns)、網路資訊服務 (network information services, nis) 或集中維護的 tcp/ip 主機檔案等 ip 位址轉換機制來解析。
使用主機命名方法之前,必須先對客戶端進行如上配置。
伺服器端要求
如果使用主機命名方法,除了客戶機,還必須在伺服器上也安裝 tcp/ip 協議。此外,需要在伺服器端安裝 oracle net services 和 tcp/ip 協議介面卡。
在 oracle8i 和 oracle9i 中,只要滿足以下條件之一就可向監聽程式自動註冊有關資料庫的資訊(包括全域性資料庫名稱):
在埠 1521 上使用 tcp/ip 執行的名為 listener 的預設監聽程式正在執行
已在初始化檔案中設定了 local_listener 引數
早期版本中是通過listener.ora檔案向監聽程式註冊資料庫資訊的。必須靜態配置sid_list_listener_name段以包含global_dbname引數。
全域性資料庫名稱由資料庫名稱和資料庫網域名稱構成。可以從初始化引數檔案中的service_names引數或db_name和db_domain引數來獲取 global_dbname 的值。
主機名必須與在客戶機中指定的連線字串匹配。其它資訊還包括要連線的資料庫的資訊。
說明:主機命名在客戶端使用sqlnet.ora檔案,在伺服器端使用listener.ora檔案。
sqlnet.ora中的names.directory_path引數確定的是連線時搜尋先後順序。例如,names.directory_path= (tnsnames, onames, hostname),
則先從本地tnsnames檔案中去找連線時提供的描述符,如果沒有發現匹配的,則再去oracle name server上找,
再沒有則使用主機命名方法進行連線——將連線描述符(假定為test)當作乙個主機去連線,去該主機上尋找global_dbname=test的例項(例項名可能不是test)進行連線。
3.本地命名
本地命名的優點:
提供了一種相對簡單明瞭的解析服務名位址的方法。
對於使用不同協議的各個網路,可跨網路解析服務名。
可使用圖形配置工具輕鬆配置。
本地命名方法要求網路服務名儲存在 tnsnames.ora 檔案中。
本地命名在客戶端使用tnsnames.ora和sqlnet.ora檔案,在伺服器端使用listener.ora檔案。
在圖形化介面中配置網路服務名:
service name為該資料庫服務的service name,一般為db_name.db_domain
net服務名為按該服務在本地的識別符號,相當於別名。
4.故障排除
ora-12154:「tns:無法解析服務名」
原因:oracle net services 找不到在 tnsnames.ora 配置檔案中指定的連線描述符。
操作:檢查 tnsnames.ora 檔案是否存在以及是否可訪問。
檢查 tnsnames.ora 檔案是否位於 tns_admin 環境變數指定的位置中。
在 tnsnames.ora 檔案中,核實在連線字串中指定的服務名已經對映為tnsnames.ora檔案中的連線描述符。還要核實檔案中沒有語法錯誤。
確認不存在 sqlnet.ora 檔案的重複副本。
如果正從登入對話方塊連線,則應核實連線服務名前沒有 at 符號 (@)。
ora-12198:「tns:找不到指向目標的路徑」和ora-12203:「tns:無法連線目標」
原因:客戶機找不到所需資料庫。
操作:核實已正確輸入要連線的資料庫的服務名。
核實 tnsnames.ora 檔案的連線描述符中的服務名 address 引數是正確的。
核實 tnsnames.ora 檔案已儲存在 tns_admin 環境變數定義的目錄中。
核實遠端節點上的監聽程式已經啟動並正在執行。如果未啟動,可使用 「監聽程式控制實用程式」啟動監聽程式。
如果正從登入對話方塊連線,則應核實連線服務名前沒有 at 符號 (@)。
ora-12533:「tns:address 引數非法」
原因:tnsnames.ora 檔案內指定的連線描述符的 address 段中的協議特定引數不正確。
操作:有關針對不同協議的關鍵字的詳細資訊,請參考適用於平台的 oracle 作業系統文件。
ora-12541:tns:沒有監聽程式
原因:無法與遠端節點上的監聽程式取得聯絡。
操作:核實遠端節點上的監聽程式已經啟動。可使用 「監聽程式控制實用程式」 的 status 命令檢查監聽程式的狀態。如果需要,還可使用 start 命令啟動該監聽程式
**:
ORACLE 命名空間
下面的物件型別共享同乙個命名空間 tables views sequences private synonyms stand alone procedures stand alone stored functions packages materialized views user defined ...
Oracle命名規範
1 編寫目的 使用統一的命名和編碼規範,使資料庫命名及編碼風格標準化,以便於閱讀 理解和繼承。2 適用範圍 本規範適用於公司範圍內所有以oracle作為後台資料庫的應用系統和專案開發工作。3 物件命名規範 3.1 資料庫和sid 資料庫名定義為系統名 模組名 全域性資料庫名和例程sid 名要求一致 ...
oracle的命名規則
oracle中的各種資料物件,包括表名稱,檢視,等等名稱的命名都需要遵循oracle的命名規則。oracle的命名規則分為標準命名方式和非標準命名方式。標準命名方式需要滿足以下的條件 以字元打頭 30個字元以內 只能包含a z,a z,0 9,and,和 不能和同乙個使用者下的其他物件重名 不能是o...