在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 應用額外擴充套件配置目錄...