ORACLE配置非預設位置的監聽程式

2021-06-20 16:31:42 字數 2980 閱讀 6828

在oracle的預設設定當中,監聽的配置檔案會預設存放在$oracle_home/network/admin/listener.ora檔案中,在該檔案中存放了ora

cle的監聽配置資訊,在其同目錄下有tns的配置檔案tnsnames.ora檔案和sqlnet.ora檔案。

在前一段時間操作erp資料庫的時候發現乙個問題:在程序中提及到的監聽程式(假設監聽程式的名字為alter)在$oracle_home/network/admin/listener.ora檔案中沒有相關的配置資訊,經多方查詢並請教公司大牛之後,找到在$oracle_home/network/admin下的乙個子目錄中,例如:$oracle_home/network/admin/abc/listener.ora中找到了***alter的相關配置資訊。

當時,第乙個疑問是,做了什麼的配置能夠是監聽程式知道有這個檔案的存在呢?(肯定不會自動識別的吧?)

所以,找問題,然後找到了

tns_admin

這個環境變數上。僅以此文做乙個測試記錄:

os:rhel5.4

db:oracle 10g r2

將原來的監聽程式停掉:

$ oracle@model ~> lsnrctl status

新建目錄(為了營造乙個反差比較大的情況,這裡選擇乙個不屬於oracle_home的路徑):

$ oracle@model ~> mkdir /home/oracle/admin/

$ oracle@model ~> cd /home/oracle/admin/

$ oracle@model ~/admin> touch listener.ora

在listener.ora檔案中新增如下內容進行監聽服務的靜態註冊:

sid_list_hello_world =

(sid_list =

(sid_desc =

(global_dbname = hello)

(sid_name = test2)))

hello_world =

(description =

(address = (protocol = tcp)(host = 127.0.0.1)(port = 1530))

)這個時候啟動監聽程式:

$ oracle@model ~> lsnrctl start hello_world

這個時候會報出下面的錯誤資訊:

tns-01151: missing listener name, hello_world, in listener.ora

因為在監聽程式啟動的時候,會預設的查詢$oracle_home/network/admin/listener.ora檔案來查詢你需要啟動的監聽資訊,現在裡面沒有,所以根本啟動不了了!

下面我們新增如下乙個環境變數:

$ oracle@model ~> export tns_admin=/home/oracle/admin/

再次啟動hello_world監聽程式:

$ oracle@model ~> lsnrctl start hello_world

lsnrctl for linux: version 10.2.0.1.0 - production on 22-nov-2012 00:17:06

tnslsnr for linux: version 10.2.0.1.0 - production

system parameter file is /home/oracle/admin/listener.ora

listening on: (description=(address=(protocol=tcp)(host=127.0.0.1)(port=1530)))

connecting to (description=(address=(protocol=tcp)(host=127.0.0.1)(port=1530)))

status of the listener

------------------------

alias

hello_world

version

tnslsnr for linux: version 10.2.0.1.0 - production

start date

22-nov-2012 00:17:06

uptime

0 days 0 hr. 0 min. 0 sec

trace level

offsecurity

on: local os authentication

snmp

offlistener parameter file

/home/oracle/admin/listener.ora

listener log file

listening endpoints summary...

(description=(address=(protocol=tcp)(host=127.0.0.1)(port=1530)))

services summary...

service "hello" has 1 instance(s).

instance "test2", status unknown, has 1 handler(s) for this service...

the command completed successfully

***啟動成功!可見在tns_admin環境變數發揮了相關的作用。那之前的配置能否正常啟動呢?

$ oracle@model ~/admin> lsnrctl start

結果就不截出來了,為了證明啟動成功呢,我們截出來程序來看一下:

$ oracle@model ~/admin> ps -ef | grep tns | grep -v grep

oracle

17930

1 0 00:17 ?

oracle

17994

1 0 00:29 ?

Windows 平台配置Oracle多個監聽

1 開啟服務端net manager 增加新監聽,注意埠不要與原有監聽衝突,實際上是修改listener.ora檔案 關閉視窗儲存配置,但此時不會啟動新監聽 2 新增的監聽需要通過命令建立 lsnrctl start 新建聽名稱,服務列表中才會出現新監聽,啟動 此時可以telnet埠測試,可以連線,...

Linux安裝mysql預設配置檔案位置

在linux下面安裝mysql如果在 etc下面沒有存在my.cnf配置檔案 1.通過which mysqld命令來檢視mysql的安裝位置 2.通過 usr sbin mysqld verbose help grep a 1 default options 命令來檢視mysql使用的配置檔案預設路...

修改tp5的預設配置檔案的位置

web admin home controller model view extra 5.01 模組額外擴充套件配置目錄 common.php 模組函式檔案 config.php 模組配置檔案 database.php 資料庫配置檔案 tags.php extra 5.01 應用額外擴充套件配置目錄...