這篇文章主要介紹oracle如何實現網絡配置,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
網絡配置的方法:
1、tnsname客戶端--A 直接修改文件
B 通過客戶端工具“網絡配置助手”--win端直接打開調用Linux端,netca命令調出配置工具
2、監聽器配置--服務器端
客戶端配置監聽服務室沒有任何意義的,因為客戶端沒有oracle server
監聽器配置文件:/u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
[oracle@oracle3 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1521))
)
)
服務器端配置一個監聽器
[oracle@oracle3 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1522))
)
) --新的監聽器,監聽器監聽是1522端口
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1521))
)
)
------------------------------------------------------------------------------------
一個數據庫實例被多個監聽器監聽案例
[oracle@oracle3 admin]$ lsnrctl status --默認打開的是LISTENER
[oracle@oracle3 admin]$ lsnrctl status LISTENER1 --打開的是第二個監聽器
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 06-JUN-2014 14:28:42
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle3)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER1
Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date 06-JUN-2014 14:26:15
Uptime 0 days 0 hr. 2 min. 26 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener1.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1522)))
The listener supports no services
The command completed successfully
將ORCL注冊到第二個監聽器:
修改監聽器配置文件:
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1522))
)
)
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME=ORCL)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
)
)
通過監聽器2訪問:創建一個1522端口的連接串訪問。
LISTENER1(1522) LISTENER(1521)
| |
---------------------------
|
ORCL
|
Oracle軟件
并發訪問:一個群組通過1521訪問,一個群組通過1522訪問.
-------------------------------------------------------------------------------------
一個監聽器監聽多個端口案例
方法1:服務器端用netmgr工具添加端口
[oracle@oracle3 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1522))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1527))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1528))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1529))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1530))
)
)
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1523))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1524))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1525))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1526))
)
)
方法2:直接改這個配置文件
另外兩個監聽器都需要配置SID_LIST_串,監聽器配置文件最終:
[oracle@oracle3 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1522))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1527))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1528))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1529))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1530))
)
)
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1523))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1524))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1525))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1526))
)
)
架構圖:
LISTENER1(1522、1527~1530) LISTENER(1521、1523~1526)
| |
----------------------------------------------
|
ORCL
|
Oracle軟件
嘗試通過不同的監聽器不同的端口訪問oracle server
[oracle@oracle3 admin]$ lsnrctl status LISTENER
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 06-JUN-2014 14:54:41
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date 06-JUN-2014 14:48:35
Uptime 0 days 0 hr. 6 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1523)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1524)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1525)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1526)))
Services Summary...
Service "ORCL" has 2 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCL_XPT" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracle3 admin]$ lsnrctl status LISTENER1
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 06-JUN-2014 14:54:47
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle3)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER1
Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date 06-JUN-2014 14:49:08
Uptime 0 days 0 hr. 5 min. 39 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener1.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1527)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1528)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1529)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1530)))
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
------------------------------------------------------------------------------------
靜態注冊--監聽參數是手工添加的,啟動監聽后強制將ORCL注冊到監聽器。由于是強制的,只能確認監聽器是正確的,但是
數據庫不一定訪問通,所以狀態為UNKNOW。但是能否訪問不是和這個狀態有關系的。
動態注冊--根據監聽配置文件中的配置,由oracle的后臺進程pmon將ORCL注冊到監聽器,而且是一定能訪問通的,因為 PMON進程會測試。但是PMON不是時時刻刻都去注冊的,有時間間隔,所以先啟動數據庫再啟動監聽不一定
馬上監到, 有時間的延遲,因為pmon的工作是有時間間隔的。一旦監聽到,狀態為ready,即一定能訪問通。
[oracle@oracle3 admin]$ ps -ef|grep ora_pmon
oracle 9190 1 0 11:07 ? 00:00:00 ora_pmon_ORCL
Oracle默認監聽的注冊方法是動態注冊,即往默認的監聽器LISTENER上注冊,listener.ora文件中不需要SID_LIST_LISTENER即可。但是靜態注冊必須要SID_LIST_LISTENER串和LISTENER串。
LISTENER1 = --LISTENER1靜態注冊
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1522))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1527))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1528))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1529))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1530))
)
)
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
)
)
LISTENER = --LISTENER動態注冊
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1523))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1524))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1525))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1526))
)
)
可以改變默認的注冊監聽器:即將默認的監聽器由LISTENER改為LISTENER1(LISTENER1改為動態的,LISTENER改為靜態的),需要做以下幾步:
step1:在oracle server的tnsname.ora文件中配置一個連接串:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.3.3)(PORT = 1522)) --1522對應的監聽器是非默認的LISTENER1
)
)
step2:修改oracle參數:
SQL> alter system set local_listener=ORCL;
系統已更改。 --這樣oracle默認往1522對應的監聽器上做動態注冊。
step3:修改listener.ora文件
[oracle@oracle3 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER1 = --LISTENER1變為動態注冊
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1522))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1527))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1528))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1529))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1530))
)
)
SID_LIST_LISTENER = --LISTENER變為靜態注冊
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1523))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1524))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1525))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle3)(PORT = 1526))
)
)
step4:動態注冊不能馬上生效,要等pmon進程,有延遲,但是可以強制馬上
SQL> alter system register; --不等pmon,強制注冊
系統已更改。
step5:確認
[oracle@oracle3 admin]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 06-JUN-2014 16:05:49
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date 06-JUN-2014 15:46:21
Uptime 0 days 0 hr. 19 min. 28 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1523)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1524)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1525)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1526)))
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service... --LISTENER為靜態注冊
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracle3 admin]$ lsnrctl status LISTENER1
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 06-JUN-2014 16:06:24
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle3)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER1
Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date 06-JUN-2014 15:46:28
Uptime 0 days 0 hr. 19 min. 56 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener1.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1527)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1528)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1529)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1530)))
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service... --LISTENER1為動態注冊
Service "ORCLXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCL_XPT" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
注意:
1、一個實例只能有一個動態注冊監聽器,可以有多個靜態注冊的監聽器。
2、動態注冊監聽器在某些時候是不可用的,pmon休息的時候,此時需要加一個靜態注冊監聽,這樣保證數據庫可以時時刻刻對外訪問。
3、多個監聽器可以均衡訪問的負載
4、到底用默認還是非默認的監聽器做動態注冊,取決于local_listener參數,默認是NULL,表示默認LISTENER是動態注冊的,如果有值,根據值找到動態注冊的監聽器。
以上是“oracle如何實現網絡配置”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。