ORALCE遠程連接

ORACLE 遠程連接

 


專用服務器模式:
1) 靜態註冊 理解三個文件:sqlnet.ora , tnsnames.ora ,listener.ora
Sqlnet.ora在本地: 決定oracle使用什麼來解析連接的字符串
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
Tnsnames.ora在本地: 如果sqlnet.ora中選定用tnsnames.ora來解析,那麼才生效
ok128 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.244.128)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sb)
)
)
Listener.ora在服務端:配置監聽器 和 靜態註冊ORACLE服務端
[oracle@localhost admin]$ pwd
/opt/oracle/10g/network/admin
[oracle@localhost admin]$ cat  listener.ora 
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
#以上是配置監聽器,下面是靜態註冊
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=sb)
(SID_NAME=orcl)
(ORACLE_HOME=/opt/oracle/10g )
)
)
# 這裏GLOBAL_DBNAME 與tnsnames.ora本地中SERVICE_NAME保持一致

2) 動態註冊 :理解兩個參數:service_names 和 local_listener .
SQL> alter system set service_names=sb;
SQL> show parameter service_names
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string SB
註釋:service_names 參數根據其值,自動生成listener中的信息。故而不需要在listener.ora中配置任何信息,甚至刪除listenser.ora也沒關係。

注意:使用動態註冊,啓動監聽後需要等1分鐘,才能連接上。

如果監聽器端口不是在默認端口1521,那麼動態註冊就找不到,或者監聽器與服務端不再統一機器上,這個時候需要配置local_listener參數。
實例:如果動態註冊並把端口監聽在1421上。
服務端:[oracle@localhost admin]$ cat tnsnames.ora
LN14 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.244.128)(PORT = 1421))
)
SQL> alter system set local_listener = LN14;

System altered.

SQL> show parameter local_listener

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string LN14
註釋:這樣服務端就能監聽到客服端的連接了。
這個時候配置的tnsnames.ora 是在服務端上,請注意。

共享服務器模式
參數:dispatchers , max_dispatchers 調度器設置
shared_servers ,max_shared_servers 共享服務器進程設置
下面是初始狀態的參數的值:
SQL> show parameter dispatchers

NAME TYPE VALUE
--------------------------------- ----------- ------------------------------
dispatchers string (PROTOCOL=TCP) (SERVICE=orclXDB)
max_dispatchers integer
SQL> show parameter shared_servers //這是共享服務器唯一必須設置的參數
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer
shared_servers integer 1

設置dispatchers參數:
SQL> alter system set dispatchers="(protocol=tcp)(dispatcher=5)";
SQL> show parameter dispatchers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dispatchers string (protocol=tcp)(dispatcher=5)
max_dispatchers integer

設置shared_servers參數:
SQL> alter system set shared_servers=3;
SQL> show parameter shared_servers;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer
shared_servers integer 3
1)靜態註冊:
服務端listener.ora配置:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=sb)
(SID_NAME=orcl)
(ORACLE_HOME=/opt/oracle/10g )
)
)
客服端配置tnsnames.ora :
sh1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.244.128)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = orcl)
)
)
註釋:這裏的SERVICE_NAME = orcl 直接配置爲實例名才能登錄,而不是與服務端的listener.ora中的GLOBAL_DBNAME=sb相同。感覺似乎和GLOBAL_DBNAME沒關係
3) 動態註冊
SQL> alter system set service_names=sb;
SQL> show parameter service_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string SB
這個是默認端口的動態註冊方式,非默認端口的如下:
服務端tnsnames.ora :
ln14 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.244.128)(PORT = 1421))
)
設置參數dispatchers:
SQL> alter system set dispatchers="(ADDR=(protocol=tcp)(host = 192.168.244.128)(port = 1421)) (listener=ln14) (dispatchers=5)" ;
SQL> alter system set shared_servers=3;
客服端需要只需要更改tnsnames.ora中的端口即可。

註釋:這裏的參數dispatchers這裏如果不添加(listener=ln14),則需要去定義參數local_listenser。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章