Oracle 11g 中告警日志的位置
Oracle 11g 中告警日志的位置
首先介紹2個(gè)新名詞Automatic Diagnostic Repository (ADR)一個(gè)存放數(shù)據(jù)庫診斷日志、跟蹤文件的目錄,稱作ADR base,對(duì)應(yīng)初始化參數(shù)DIAGNOSTIC_DEST,如果設(shè)置了ORACLE_BASE環(huán)境變量,DIAGNOSTIC_DEST等于 ORACLE_BASE,如果沒有設(shè)置ORACLE_BASE,則等與ORACLE_HOME/log。
SQL> show parameter DIAGNOSTIC
NAME?????????????????????????????????TYPE????????VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest??????????????????????string??????/oracle/oracle二.aelrt xml file
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
這兩份log文件的位置分別是V$DIAG_INFO中的Diag Alert 和Diag Trace 對(duì)應(yīng)的目錄。1.通過查詢v$diag_info視圖獲得ADR相關(guān)的信息
代碼:
sys@ora11g>select * from v$diag_info;
INST_ID NAME VALUE
------- ---------------------- ----------------------------------------------
1 Diag Enabled TRUE
1 ADR Base /oracle/u01/app/oracle
1 ADR Home /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g
1 Diag Trace /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace
1 Diag Alert /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/alert
1 Diag Incident /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/incident
1 Diag Cdump /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/cdump
1 Health Monitor /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/hm
1 Default Trace File /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_3968.trc
1 Active Problem Count 0
1 Active Incident Count 0
11 rows selected.
2.其中Diag Trace對(duì)應(yīng)的目錄為文本格式的警告日志,及我們經(jīng)常習(xí)慣使用的日志
代碼:
ora11g@RHEL53 /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace$ls -l alert_ora11g.log
-rw-r----- 1 oracle oinstall 72513 Feb 27 14:29 alert_ora11g.log
3.其中Diag Alert對(duì)應(yīng)的目錄為XML格式的警告日志
代碼:
ora11g@RHEL53 /oracle/u01/app/oracle/diag/rdbms/ora11g/ora11g/alert$ls -l log.xml
-rw-r----- 1 oracle oinstall 327254 Feb 27 14:29 log.xml
4.我習(xí)慣將查看警告日志定義為同名alert在操作系統(tǒng)上直接查看
代碼:
ora11g@RHEL53 /home/oracle$alias alert
alias alert='tail -200f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
5.使用同名進(jìn)行查看
代碼:
ora11g@RHEL53 /home/oracle$alert ?????錯(cuò)誤現(xiàn)象
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
解決方案
假如TNSPING SID正常, 服務(wù)啟動(dòng)正常沒有出現(xiàn)“啟動(dòng)中”這些現(xiàn)象
可以嘗試
C:\>oradim -delete -sid sfis
C:\>oradim -new -sid sfis -startmode auto -pfile d:\pfile\initsfis.ora
或者
啟動(dòng)數(shù)據(jù)庫
原因?
Oracle Database的主機(jī)被異常關(guān)機(jī),或者重新安裝部分Oracle軟件,造成SERVICE損壞,所以刪除重建可以解決。
?????一. 問題描述
在一次數(shù)據(jù)庫災(zāi)難恢復(fù)過程中,數(shù)據(jù)庫恢復(fù)到一個(gè)新的環(huán)境里,并且數(shù)據(jù)庫已經(jīng)成功啟動(dòng)了,可以在服務(wù)器上登錄與訪問。但客戶端在訪問時(shí)卻報(bào)了ORA-27101的錯(cuò)誤,無法通過定義數(shù)據(jù)庫連接串遠(yuǎn)程連接到這個(gè)數(shù)據(jù)庫。在數(shù)據(jù)庫服務(wù)器上,定義一個(gè)訪問本地?cái)?shù)據(jù)庫的連接串,使用這個(gè)連接串連接也報(bào)同樣的錯(cuò)誤。
錯(cuò)誤的現(xiàn)象與現(xiàn)場(chǎng)如下:
$export ORACLE_SID=Port
本地可以使用管理員登錄,數(shù)據(jù)庫為open狀態(tài)
$sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Fri Feb 18 09:44:01 2011
Copyright (c) 1982, 2006, Oracle.All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
服務(wù)器與客戶端的連接串定義如下:
$more $ORACLE_HOME/network/admin/tnsnames.ora
。。。。。。
port =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =10.192.215.77 )(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = port)
)
)
通過tnsping命令測(cè)試連接,服務(wù)器和客戶端都是正常的,如下:
$ tnsping port
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =10.192.215.77)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = port)))
OK (90 msec)
通過sqlplus進(jìn)行遠(yuǎn)程登錄,報(bào)下面的錯(cuò)誤:
$ sqlplus user1/pwd1@port
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
IBM AIX RISC System/6000 Error: 2: No such file or directory
Enter user-name:
二. 問題分析
首先檢查數(shù)據(jù)庫服務(wù)器的文件系統(tǒng)的操作權(quán)限,發(fā)現(xiàn)沒有問題;
接著檢查服務(wù)器的網(wǎng)絡(luò)狀況,也沒有發(fā)現(xiàn)問題;
在ORACLE METALINK 網(wǎng)站上找到一遍文章,ID=122183.1,在該文中提到了listener.ora文件中,SID_NAME是大小寫敏感的,如下:
Database Connections Fail With ORA-27101 Shared Memory Realm Does Not Exist [ID 122183.1]
For remote (TCP/listener) connections:
檢查數(shù)據(jù)庫服務(wù)器的LISTENER.ORA文件,發(fā)現(xiàn)SID_NAME大小寫書寫錯(cuò)誤了.
$more $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = PORT)
(SID_NAME = PORT)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.215.77)(PORT =1522))
)
而數(shù)據(jù)庫的實(shí)例名稱為Port,通過查詢系統(tǒng)進(jìn)程的名稱可以確認(rèn)
$ps -ef|grep ora
。。。。。。
oracle 19261210Dec 09- 16:12 ora_cjq0_Port
oracle22143610Dec 09- 13:55 ora_pmon_Port
oracle28695610Dec 09-7:41 ora_mman_Port
oracle29919010Dec 09- 15:24 ora_mmon_Port
到此找到了問題的根源,原來是數(shù)據(jù)庫監(jiān)聽配置文件的內(nèi)容配置不當(dāng)(SID_NAME沒有注意大小寫),導(dǎo)致了通過定義數(shù)據(jù)庫連接串無法遠(yuǎn)程訪問數(shù)據(jù)庫的故障
三. 問題解決
修改監(jiān)聽器配置文件,內(nèi)容修改如下:
$more $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = Port)
(SID_NAME = Port)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.215.77)(PORT =1522))
)
重新啟動(dòng)監(jiān)聽器,如下:
$lsnrctl start listener
在服務(wù)器與客戶端進(jìn)行數(shù)據(jù)庫連接,可以成功登錄了,如下:
$ sqlplus user1/pwd1@port
SQL*Plus: Release 10.2.0.3.0 - Production on Fri Feb 18 09:44:01 2011
Copyright (c) 1982, 2006, Oracle.All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
問題等到解決,筆者重新查閱了ORACLE 的HELP 文檔,在network相關(guān)的章節(jié),找不到SID_NAME 需要注意大小寫的說明,只能在METALINK文檔中可以查到相關(guān)的說明。
????我的數(shù)據(jù)庫ora10g for linux停機(jī)后,重啟啟動(dòng)正常,但應(yīng)用程序聯(lián)入數(shù)據(jù)庫時(shí)失敗報(bào)以下錯(cuò):
Caused by: java.sql.SQLException: ORA-01034: ORACLE not available?
ORA-27101: shared memory realm does not exist?
Linux Error: 2: No such file or directory?
查詢數(shù)據(jù)庫是正常的已啟動(dòng):
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL>?
通過仔細(xì)回想最近對(duì)數(shù)據(jù)庫作了什么操作,僅修改過profile呀。原profile如下:
#oracle 10g
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/ora10g/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2/; export ORACLE_HOME
ORACLE_SID=ora10g; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [$USER = "oracle" ]; then
? ? if [ $SHELL = "/bin/ksh" ]; then
? ?? ? ulimit -p 16384
? ?? ? ulimit -n 65536
? ???else
? ?? ?ulimit -u 16384 -n 65536
? ? fi
??fi
我在另一次oracle安裝時(shí)發(fā)現(xiàn)ORACLE_HOME=$ORACLE_BASE/product/10.2/; export ORACLE_HOME這個(gè)設(shè)置會(huì)導(dǎo)致安裝時(shí)自動(dòng)識(shí)別出的$ORACLE_HOME會(huì)是
$ORACLE_BASE/product/10.2// 所以把原安裝的數(shù)據(jù)庫profile中的ORACLE_HOME=$ORACLE_BASE/product/10.2/;修改成了ORACLE_HOME=$ORACLE_BASE/product/10.2;最近將老數(shù)據(jù)重啟之后就應(yīng)用聯(lián)不上了報(bào)上面的錯(cuò):
Caused by: java.sql.SQLException: ORA-01034: ORACLE not available?
ORA-27101: shared memory realm does not exist?
Linux Error: 2: No such file or directory?
后來將其修改回來就好了。
不過在metalink上查到的都不是上面的解決辦法,覺得很怪???剛重裝了個(gè)Oracle 9, 今天用sqlplus連的時(shí)候報(bào)下面的error:?> export ORACLE_SID=OTA26
> sqlplus /nologSQL*Plus: Release 9.2.0.7.0 - Production on Sat Jan 13 16:34:00 2007Copyright (c) 1982, 2002, Oracle Corporation.? All rights reserved.SQL> conn GCSCADMIN/GCSCADMIN
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
?查了一下,發(fā)現(xiàn)oracle裝在/opt/oracle/product/9ir2下,但是為了方便建立了一個(gè)link,是/opt/oracle/9.2.0。在listener.ora里設(shè)置的是 ORACLE_HOME=/opt/oracle/9.2.0,但是在用戶的環(huán)境變量里設(shè)置的是 ORACLE_HOME=/opt/oracle/product/9ir2。這樣雖然兩個(gè)ORACLE_HOME指向了同一個(gè)目錄,但是Oracle會(huì)認(rèn)為這是兩個(gè)不同的ORACLE_HOME,從而報(bào)錯(cuò)。?將用戶環(huán)境變量和listener.ora里的ORACLE_HOME設(shè)成完全一樣的就可以避免這個(gè)error ????ORA-27101: shared memory realm does not exist??
2010-12-01 15:18:00|??分類:oracle問題|??標(biāo)簽:|字號(hào)大中小?訂閱
csdn網(wǎng)友,求助
引用:
SQL> conn?
請(qǐng)輸入用戶名: gzdw?
輸入口令:?
ERROR:?
ORA-01034: ORACLE not available?
ORA-27101: shared memory realm does not exist?
SQL> conn /as sydba?
已連接到空閑例程。?
SQL> select * from v$instance?
2 ;?
select * from v$instance?
*?
第 1 行出現(xiàn)錯(cuò)誤:?
ORA-01034: ORACLE not available
SQL> select * from v$instance?
這一句都出錯(cuò),是很顯然的問題,數(shù)據(jù)庫連第一步nomount都還沒有成功,
也就是load spfile文件還沒有成功,
oracle在啟動(dòng)的時(shí)候,分為三步,詳細(xì)可以參考帖子?
層層深入,步步探究-Oracle的啟動(dòng)模式詳探?
原因可能是?
1. spfile文件損壞,根據(jù)你的提示應(yīng)該不是?
2. 內(nèi)存設(shè)置過大,很有可能是這個(gè)問題。
解決方法?
SQL> create pfile='c:mypfile.ora' from spfile;?
File created.
把你的spfile文件導(dǎo)出到指定的pfile文件,打開pfile文件?
修改其中的內(nèi)存選項(xiàng)?
sga_target和sga_max_size選項(xiàng),選擇小一些,修改好后,保存
然后運(yùn)行?
SQL>startup pfile='c:mypfile.ora' nomount; 嘗試啟動(dòng)到nomount?
如果可以啟動(dòng)到nomount,表示我們已經(jīng)修改成功,
備份你的spfile文件,spfile文件在ORACLE_HOME/database下
備份后?
運(yùn)行?
SQL>create spfile from pfile='c:mypfile.ora';?
用pfile生成新的spfile文件。
現(xiàn)在可以shutdown immediate?
然后用?
SQL>startup q啟動(dòng)了
?
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/inthirties/archive/2009/09/17/4560897.aspx
?
?
今天正常啟動(dòng)Oracle服務(wù)后,打開SQL*Plus,用SCOTT登錄時(shí)提示:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist。
?
從網(wǎng)上搜了一下,原因肯定是哪個(gè)啟動(dòng)參數(shù)出了問題。于是按照如下的步驟解決:
1: 用SYS用戶登錄:conn / as sysdba
2:從SPFILE文件創(chuàng)建PFILE文件(因?yàn)镾PFILE文件是二進(jìn)制的,而PFILE是文本文件)
create pfile='d:\aa.ora' from spfile;
3: 打開aa.ora文件,適當(dāng)修改某些參數(shù)。
4:從修改后的PFILE文件創(chuàng)建SPFILE文件
create spfile from pfile='d:\aa.ora';
5: 打開數(shù)據(jù)庫
startup
?
注意:1:最好在修改修文件前先備份一下。
2:如何判斷哪個(gè)參數(shù)不正常呢?可以在修改前先STARTUP一下,應(yīng)該有提示
?
?
問題描述?
=======
在試圖啟動(dòng)或連接數(shù)據(jù)庫的時(shí)候 ,Oracle報(bào)告下列錯(cuò)誤:?
ERROR:?
ORA-27101 Shared memory realm does not exist?
ORA-01034 ORACLE not available
基本解釋?
=======?
Error: ORA-27101?
Text: shared memory realm does not exist?
-------------------------------------------?
Cause: Unable to locate shared memory realm?
Action: Verify that the realm is accessible
原因:?
機(jī)器加入了域,或者安裝了多個(gè)實(shí)例?
如何解決?
=======
這個(gè)問題其實(shí)用一句話就可以說清楚:
ORACLE_HOME或者ORACLE_SID設(shè)置不正確。
在以前的版本中,如果 ORACLE_SID不正確,一般都只提示ORA-01034。Oracle 8.1.7 給出一個(gè)額外的信息:ORA-27101。
->如果是Unix,在Shell里把ORACLE_SID設(shè)置正確即可(注意大小寫敏感的問題)。?
此外,檢查ORACLE_HOME環(huán)境變量。如何檢查參考如下的命令:
% echo $ORACLE_SID?
% ps -ef |grep smon
->如果是Windows,一般都是因?yàn)橄到y(tǒng)中有多個(gè)實(shí)例造成的。
可以在命令行下 C:\>set ORACLE_SID=DEMO
把這里的 DEMO換為你相應(yīng)的實(shí)例名。
如果還不行的話,檢查注冊(cè)表中的 ORACLE_HOME。
此外,在Windows環(huán)境下有的時(shí)候連接不上遠(yuǎn)程的數(shù)據(jù)庫,會(huì)報(bào)告如此的錯(cuò)誤。
解決辦法是把 sqlnet.ora文件中的?
SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS換為NONE.?
或者使用Net Assistant進(jìn)入后 本地->概要文件->Oracle Advanced Security選項(xiàng)卡把NTS從右邊刪除掉。?
最后重新啟動(dòng)數(shù)據(jù)庫或者重新啟Oracle的服務(wù)就OK了
總結(jié)
以上是生活随笔為你收集整理的Oracle 11g 中告警日志的位置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux VNC黑屏(转)
- 下一篇: jpeg6 安装问题!