oralce names server 簡介
2024-07-21 02:36:01
供稿:網友
Oracle names server 用最簡單的話說,就是將客戶端的tnsnames.ora放到一臺server上,每臺客戶端在連接數據庫server時,由names server 負責將 connect string 翻譯成 ip address+sid+port,完成連接。 當然,每臺客戶端上都要做相應的配置,指明使用 names server 代替本 tnsnames.ora ,并且需指明缺省的 names server 的地址和port。
使用 oracle names server 的好處是,所有客戶端,只用設置一次,將來即使需要修改 tns 配置,也只需要修改 names server 上的東西,客戶端不用再做任何修改。
下面就結合一個例子具體說說 oracle names server 的配置
1、在安裝 oracle 軟件時當然要選相應的組件。oracle names server需要一個schema來存儲 tns 配置,所以names server 需要oracle db 建立這個schema的腳本是 $ORACLE_HOME/network/admin/namesini.sql
首先建立一個用戶:
create user names identified by names default tablespace users
temorary tablespace temp;
grant connect,resource to names;
connect names/names
@namesini.sql
2、在數據庫server 端運行 net8 assistant(圖形界面的工具), 建立 names server:
點中 "NameServer" ,然后點“+”按鈕,根據向導的提示繼續,首先填 names server 的名字,比如:ns1 然后選用協議,我只會選 tcp/ip ,主機當然就是這臺機器, port用推薦的1575
選 “use a region database”這個是和多names server 有關的選項,我們可以先不理會,使用缺省值。
填寫數據庫相關信息:主機、sid、port、schema(這里就是我們剛才創建的用戶:names/names)
select NameServer is in the root region.
完成,保存設置,會生成 names.ora
3、使用 names server 代替本地的 tnsnames.ora:
還是在net8 assistant 里,點 PRofile ,在naming method 里只選 onames.
4、指定客戶端使用的names server(在這里,這臺server既是服務器又是客戶端
):
從下拉菜單中選 Preferred Oracle NameServer,在這頁里填上names server的ip address + port.
5、保存設置,退出
在命令行方式下:
namesctl
namesctl>start
6、將tns配置加入到oracle names server 的repository里:
使用 net8 assistant
選中剛才建立的 nameserver : ns1
從下拉菜單中選擇 manage data 可以從一個tnsnaems.ora文件直接load進去,但是我老沒成功,只好一個一個手工加。(也許是沒運行namesupg.sql的原因,可文檔里說是可選的,不明白)
每寫一個點一下 execute ,比如:
Service Name = test
Protocol = TCP
Host = 192.168.2.99
Port = 1521
SID = test
很簡單,不用多說了。
7、用sqlplus測試一下:
sqlplus system/manager@test
假如連接沒問題,就可以把sqlnet.ora復制到各個客戶端,就可以用了。
sqlnet.ora的樣子大概應該是這樣:
......
names.preferred_servers = (address_list =
(address=(protocol=tcp)(host=192.168.2.99)(port=1575))
)
names.Directory_path = (onames)
......
以前一直沒用過 oracle names server,既然有人問,就研究了一下,不過我介紹的只是oracle names server最基本的功能,其他oracle 8i版本的names server的新功能,等我有時間再說吧,或者哪位高手有愛好,也可以繼續深入。