?? oracle-howto-4.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>Oracle Database HOWTO: 在伺服器上設定 SQL*Net</TITLE>
<LINK HREF="Oracle-HOWTO-5.html" REL=next>
<LINK HREF="Oracle-HOWTO-3.html" REL=previous>
<LINK HREF="Oracle-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="Oracle-HOWTO-5.html">Next</A>
<A HREF="Oracle-HOWTO-3.html">Previous</A>
<A HREF="Oracle-HOWTO.html#toc4">Contents</A>
<HR>
<H2><A NAME="s4">4. 在伺服器上設定 SQL*Net</A></H2>
<P>所有這些檔案都會用於設定 Oracle 的網絡軟件(SQL*Net,和 Oracle8 的 Net8 差不多)。這些檔案應該都建立在伺服器中的
<CODE>$ORACLE_HOME/network/admin</CODE> 目錄。
<H2><A NAME="ss4.1">4.1 <CODE>tnsnames.ora</CODE></A>
</H2>
<P><CODE>TNSNAMES.ORA</CODE> 檔設定所有這電腦提供的服務。現在我們描述所有掛上了伺服器的資料庫。對伺服器上所有資料庫你要加上類似以下的一段:
<BLOCKQUOTE><CODE>
<HR>
<PRE>
orcl.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = <INSERT HOST NAME OF SERVER HERE> )
(Port = 1521)
)
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = <INSERT HOST NAME OF SERVER HERE> )
(Port = 1526)
)
)
(CONNECT_DATA = (SID = ORCL)
)
)
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<H2><A NAME="ss4.2">4.2 <CODE>listener.ora</CODE></A>
</H2>
<P><CODE>listener.ora</CODE> 檔描述所有其他電腦可得到的服務及伺服器的監聽程式
(listener) 所需的所有設定。
<P>它有一段包括監聽程式名稱、監聽程式地址、監聽程式提供服務的資料庫及參數設定 (listener name, listener address, databases served by the listener and configuration parameters)。
<P>這里有一個例子:
<BLOCKQUOTE><CODE>
<HR>
<PRE>
# 監聽程式名稱及所收聽的地址
LISTENER =
( ADDRESS_LIST =
(ADDRESS =
(PROTOCOL=tcp)
(HOST=<INSERT HOST>)
(PORT=1521)
(COMMUNITY=UK_SUP_TCPIP)
)
(ADDRESS =
(PROTOCOL=ipc)
(KEY=700)
(COMMUNITY=UK_SUP_TCPIP)
)
)
# 列出監聽程式提供的服務
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=orcl)
(ORACLE_HOME=/home/oracle/7.3.3.0.0)
)
)
# 開始參數設定
TRACE_LEVEL_LISTENER=OFF
TRACE_FILE_LISTENER = "listener"
LOG_FILE_LISTENER = "listener"
CONNECT_TIMEOUT_LISTENER = 10
STOP_LISTENER = YES
DBA_GROUP = dba
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<H2><A NAME="ss4.3">4.3 <CODE>sqlnet.ora</CODE></A>
</H2>
<P><CODE>sqlnet.ora</CODE> 檔包括對網絡上一個特定節點 (node) 的設定。這些資料和資料庫的數目及監聽程式的數目無關。這個檔案中最重要的東西是 <CODE>Dead Connection Timeout</CODE> 變數的設定。
<P>Dead connection timeout 檢查每一個接到該資料庫的行程及確保用戶端仍有反應。如果那用戶(類型不拘)并無反應,對應的 Oracle 伺服器影子行程 (shadow process) 便會被殺。
<P>如果你有很多用戶存取那資料庫,這點非常有用。尤其是當你仍在程式開發階段,用戶多數不能正確地結□的時候。
<P>以下是我的 <CODE>sqlnet.ora</CODE> 檔,供各讀者參考:
<BLOCKQUOTE><CODE>
<HR>
<PRE>
TRACE_LEVEL_CLIENT = OFF
sqlnet.expire_time = 30 # 兩次檢查客戶相差的秒數
names.default_domain = world
name.default_zone = world
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss4.4">4.4 開始及結□監聽程式</A>
</H2>
<P>現在有關監聽程式及 SQL*Net 的設定已經完成,我們可以試用網絡軟件來駁到資料庫。(之前我們只是直接連接到資料庫,現在則是在模擬使用遠程 (remote) 用戶。)
<P>使用以上的設定來啟動監聽程式:
<BLOCKQUOTE><CODE>
<HR>
<PRE>
$ lsnrctl
LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:38:25
Copyright (c) Oracle Corporation 1994. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start
Starting /home/oracle/7.3.3.0.0/bin/tnslsnr: please wait...
TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
System parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.ora
Log messages written to /home/oracle/7.3.3.0.0/network/log/listener.log
Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521))
Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
Start Date 23-FEB-98 20:38:50
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP ON
Listener Parameter File /home/oracle/7.3.3.0.0/network/admin/listener.ora
Listener Log File /home/oracle/7.3.3.0.0/network/log/listener.log
Services Summary...
orcl has 1 service handler(s)
The command completed successfully
LSNRCTL> exit
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<P>要停止監聽程式:
<BLOCKQUOTE><CODE>
<HR>
<PRE>
$ lsnrctl
LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:43:20
Copyright (c) Oracle Corporation 1994. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> stop
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
The command completed successfully
LSNRCTL> exit
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<P>如果你的 DNS 并不傳回指定的主機的 IP 地址,啟動及結□監聽程式會花一點時間(依據 DNS 2-3 的逾時變數 (timeout variable),大致在 2-3 分鐘之間)。如果真的發生這情況,請耐心等待,不必擔心。
<P>
<P>
<HR>
<A HREF="Oracle-HOWTO-5.html">Next</A>
<A HREF="Oracle-HOWTO-3.html">Previous</A>
<A HREF="Oracle-HOWTO.html#toc4">Contents</A>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -