這篇文章給大家分享的是有關(guān)Oracle 11g如果監(jiān)聽故障排查的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
科爾沁左翼網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
虛機(jī)數(shù)據(jù)庫服務(wù)器oracle11G的監(jiān)聽意外中止,報(bào)錯(cuò)如下
在虛機(jī)上執(zhí)行l(wèi)snrctl start,問題解決。
1、當(dāng)連接異常時(shí),可以通過分析監(jiān)聽日志來查找線索
?[test]$ find $ORACLE_HOME -name listener.log
/opt/64bit/oracle/11.2.0/log/diag/tnslsnr/sinrndvud062/listener/trace/listener .log
?[DBCHC] $ vim /opt/64bit/oracle/11.2.0/log/diag/tnslsnr/sinrndvud062/listener/trace/listener.log
110856 Fri Oct 21 17:00:31 2018
110857 21-OCT-2018 17:00:31 (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = DBCHC)(CID =(PROGRAM = sqlplus)(HOST = sinrndvud062)(USER = ora112)))(ADDRESS =(PROTOCOL = tcp)(HOST = 10.160.164.131)(PORT = 47405)) 建立 DBCHC 12514
110858 TNS-12514:TNS:監(jiān)聽器當(dāng)前不知道連接中請(qǐng)求的服務(wù)描述符
110859 Fri Oct 21 17:02:47 2018
110860 21-OCT-2018 17:02:47 service_update OSMSRDB 0
110861 21-OCT-2018 17:02:53 service_update OSMSRDB 0
110862 21-OCT- 2018 17:02:54 (CONNECT_DATA =(SID = OSMSRDB)(CID =(PROGRAM = JDBC瘦客戶端)(HOST = jdbc)(USER = linqus)))(ADDRESS =(PROTOCOL = tcp)(HOST = 10.160) .164.132)(PORT = 32823))建立 OSMSRDB 0
110863 21-OCT-2018 17:02:56 service_update OSMSRDB 0
110864 Fri Oct 21 17:03:07 2018
110865 21-OCT-2018 17:03:07 service_update XSONGDB 0
110866 21-OCT-2018 17:03:08 (CONNECT_DATA =(SID = OSMSRDB)(CID =(PROGRAM = JDBC瘦客戶端)(HOST = jdbc)(USER = linqus)))(ADDRESS =(PROTOCOL = tcp)(HOST = 10.160。 164.132)(PORT = 32835))建立 OSMSRDB 0
110867 21-OCT-2018 17:03:08 service_update OSMSRDB 0
110868 Fri Oct 21 17:06:19 2018
110869 21-OCT-2018 17:06 :19 service_update XSONGDB 0
110870 21-OCT-2018 17:06:21 (CONNECT_DATA =(SID = XSONGDB)(CID =(PROGRAM = JDBC瘦客戶端)(HOST = jdbc)(USER = linqus))) (ADDRESS =(PROTOCOL = tcp)(HOST = 10.160.164.200)(PORT = 60498))建立 XSONGDB 0
110871 21-OCT-2018 17:06:22 service_update XSONGDB 0
110872 21-OCT-2018 17:06:24 (CONNECT_DATA =(SID = XSONGDB)(CID =(PROGRAM = JDBC瘦客戶端)(HOST = jdbc)(USER = linqus)))(ADDRESS =(PROTOCOL = tcp)(HOST = 10.160.164.200)(PORT = 60502))建立 XSONGDB 0
110873 21-OCT-2018 17:06:25 service_update XSONGDB * 0
在RAC環(huán)境中,需要切換到網(wǎng)格用戶來查詢監(jiān)聽日志
test #su - grid
/ home / ora11grid [FRWK]:找到$ find ORACLE_HOME -name listener.log
查找:/ opt / ora11grid / crf / admin / run / crflogd':權(quán)限被拒絕<br/>查找:
/ opt / ora11grid / crf / admin / run / crfmond':權(quán)限被拒絕
/opt/ora11grid/log/diag/tnslsnr/vgerndpud852/listener/trace/listener.log
/ home / ora11grid [ FRWK]:lsnrctl
LSNRCTL for Linux:版本11.2.0.3.0 - 生產(chǎn)于17-NOV-2018 04:28:53
版權(quán)所有(c)1991,2011 ,Oracle。版權(quán)所有。
歡迎來到LSNRCTL,輸入“幫助”獲取信息。
LSNRCTL> show
show
asterisk(*)表示修飾符或擴(kuò)展命令后可以使用以下操作:
rawmode displaymode
rules trc_file
trc_directory trc_level
log_file log_directory
log_status current_listener
inbound_connect_timeout startup_waittime
snmp_visible save_config_on_stop
dynamic_registration enable_global_dynamic_endpoint
oracle_home pid
connection_rate_limit
LSNRCTL> show log_status
連接到(DESCRIPTION =(ADDRESS =(PROTOCOL = IPC)(KEY = LISTENER)))
LISTENER參數(shù)“l(fā)og_status”設(shè)置為ON
命令已成功完成。
2、監(jiān)聽異常中止解決方案
可以將以下參數(shù)添加到listener.ora中
SUBSCRIBE_FOR_NODE_DOWNEVENT= OFF
如下:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER = OFF
編輯監(jiān)聽監(jiān)控腳本,當(dāng)監(jiān)聽異常中止后自動(dòng)啟動(dòng)監(jiān)聽(每分鐘偵測(cè)一次)
腳本如下:
$ cat listener.sh
#!/bin/bash
ORACLE_HOME = / u01 / product / oracle / 11.2.0 / db_1; export ORACLE_HOME
pid =ps -ef | grep tnslsnr | grep -v grep | awk'{print $ 2}'
if [echo $ pid | awk -v bi = 1'{print($ 1> bi)?“1”:“0”}'
-eq“1”]
else
echo“監(jiān)聽器運(yùn)行正?!?br/>else
echo“監(jiān)聽器已經(jīng)停止”
$ ORACLE_HOME / bin / lsnrctl start
exit
$ crontab -l
/ 1 sh /data/run/listener.sh 1 >> / data / run / log / listener.log 2 >> / data / run / log / listener.bad
3、監(jiān)聽日志的定期清理
要對(duì)監(jiān)聽日志文件(listener.log)進(jìn)行定期清理,如果不定期清理,會(huì)遇到下面一些麻煩:
1)監(jiān)聽日志文件(listener.log)變得越來越大,占用額外的存儲(chǔ)空間。(當(dāng)然現(xiàn)在存儲(chǔ)白菜價(jià),不差那幾G的空間。但是我們還是要本著工匠情懷,精益求精)
2)監(jiān)聽日志文件(listener.log)變得太大會(huì)帶來一些問題:LISTENER.LOG日志大小不能超過2GB,超過會(huì)導(dǎo)致LISTENER監(jiān)聽器無法處理新的連接。
3)監(jiān)聽日志文件(listener.log)變得太大,給寫入、查看帶來的一些性能問題、麻煩。
另:監(jiān)聽日志listener.log日志放在了$ORACLE_BASE/diag/tnslsnr/機(jī)器名/listener/trace目錄下
4、三種文件的解析
1) sqlnet.ora-----通過這個(gè)文件來決定怎么樣找一個(gè)連接中出現(xiàn)的連接字符串。
例如我們客戶端輸入
sqlplus sys/oracle@ora
假如我的sqlnet.ora是下面這個(gè)樣子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME,EZCONNECT)
那么,客戶端就會(huì)首先在tnsnames.ora文件中找ora的記錄.如果沒有相應(yīng)的記錄則嘗試把ora當(dāng)作一個(gè)主機(jī)名,通過網(wǎng)絡(luò)的途徑去解析它的 ip地址然后去連接這個(gè)ip上GLOBAL_DBNAME=ora這個(gè)實(shí)例,當(dāng)然我這里ora并不是一個(gè)主機(jī)名
EZCONNECT表示:可以使用簡(jiǎn)單的方式連接Oracle例如:
1 CONNECT username/password@host[:port][/service_name][/instance_name]
2 CONNECT username/password@host[:port][/service_name]
3 sqlplus / as sysdba
4 sqlplus sys as sysdba/sys@127.0.0.1:1521
如果我是這個(gè)樣子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那么客戶端就只會(huì)從tnsnames.ora查找ora的記錄,括號(hào)中還有其他選項(xiàng),如LDAP等并不常用。
2) tnsnames.ora------這個(gè)文件類似于unix 的hosts文件,提供的tnsname到主機(jī)名或者ip的對(duì)應(yīng)。
只有當(dāng)sqlnet.ora中類似NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是客戶端解析連接字符串的順序中有TNSNAMES是,才會(huì)嘗試使用這個(gè)文件。
例子:
ORA_TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LXL)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora)
)
)
ORA_TEST:客戶端連接服務(wù)器端使用的服務(wù)別名。注意一定要頂行書寫,否則會(huì)無法識(shí)別服務(wù)別名。
PROTOCOL:客戶端與服務(wù)器端通訊的協(xié)議,一般為TCP,該內(nèi)容一般不用改。
HOST:ORACLE服務(wù)器端IP地址或者h(yuǎn)ostname。確保服務(wù)器端的監(jiān)聽啟動(dòng)正常。
PORT:數(shù)據(jù)庫偵聽正在偵聽的端口,可以察看服務(wù)器端的listener.ora文件或在數(shù)據(jù)庫偵聽所在的機(jī)器的命令提示符下通過lnsrctl status [listener name]命令察看。此處Port的值一定要與數(shù)據(jù)庫偵聽正在偵聽的端口一樣。
SERVICE_NAME:在服務(wù)器端,用system用戶登陸后,sqlplus> show parameter service_name命令查看。
3) listener.ora------listener監(jiān)聽器進(jìn)程的配置文件
關(guān)于listener進(jìn)程就不多說了,接受遠(yuǎn)程對(duì)數(shù)據(jù)庫的接入申請(qǐng)并轉(zhuǎn)交給oracle的服務(wù)器進(jìn)程。所以如果不是使用的遠(yuǎn)程的連接,listener進(jìn)程就不是必需的,同樣的如果關(guān)閉listener進(jìn)程并不會(huì)影響已經(jīng)存在的數(shù)據(jù)庫連接。
例子:
#listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora)
(ORACLE_HOME = E:/oracle/product/10.1.0/Db_2)
(SID_NAME = ora)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
LISTENER :監(jiān)聽名稱,可以配置多個(gè)監(jiān)聽,多個(gè)監(jiān)聽的端口號(hào)要區(qū)分開來。
GLOBAL_DBNAME :全局?jǐn)?shù)據(jù)庫名。通過select * from global_name; 查詢得出
ORACLE_HOME :oracle軟件的跟目錄
SID_NAME :服務(wù)器端(本機(jī))的SID
PROTOCOL:監(jiān)聽協(xié)議,一般都使用TCP
HOST:本機(jī)IP地址,雙機(jī)時(shí)候使用浮動(dòng)IP (用IP地址較好解析)
PORT:監(jiān)聽的端口號(hào),使用netstat –an 檢查該端口不被占用。
當(dāng)你輸入sqlplus sys/oracle@orcl的時(shí)候
1. 查詢sqlnet.ora看看名稱的解析方式,發(fā)現(xiàn)是TNSNAME
2. 則查詢tnsnames.ora文件,從里邊找orcl的記錄,并且找到主機(jī)名,端口和service_name
3. 如果listener進(jìn)程沒有問題的話,建立與listener進(jìn)程的連接。
4. 根據(jù)不同的服務(wù)器模式如專用服務(wù)器模式或者共享服務(wù)器模式,listener采取接下去的動(dòng)作。默認(rèn)是專用服務(wù)器模式,沒有問題的話客戶端就連接上了數(shù)據(jù)庫的server process。
5. 這時(shí)候網(wǎng)絡(luò)連接已經(jīng)建立,listener進(jìn)程的歷史使命也就完成了。
感謝各位的閱讀!關(guān)于“Oracle 11g如果監(jiān)聽故障排查”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站標(biāo)題:Oracle11g如果監(jiān)聽故障排查
本文地址:http://muchs.cn/article32/gjsjsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、做網(wǎng)站、、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)