Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151335
  • 博文数量: 56
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 640
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-26 09:58
文章分类

全部博文(56)

文章存档

2009年(52)

2008年(4)

我的朋友

分类: Oracle

2009-02-17 15:44:11

为本机上oracle_sid为test1的数据库配置好了监听,

SQL> conn sys/kyll@test1 as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  281018368 bytes
Fixed Size                  1218944 bytes
Variable Size              88082048 bytes
Database Buffers          184549376 bytes
Redo Buffers                7168000 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

先去$ORACLE_HOME/dbs目录下查看了下lkTEST1
[oracle@edison dbs]$ /sbin/fuser -u lkTEST1
没有返回结果,
证明了该数据库并没有被锁定。

于是google下,
还是从metalink上找到的解决方法:
如下:

from metalink

ORA-01102: cannot mount database in EXCLUSIVE mode

Hello,

I get the error ORA-01102: cannot mount database in EXCLUSIVE mode when trying to startup second sid on my Windows NT server. The first sid comes up sucessfully. I tried the following ways but still not able to resolve the issue:
1. shutdown both the databases and do
set oracle_sid=sid1
startup pfile=
The first database comes up fine but the second database fails even though I follow the above said procedure.
2. startup force the first database and do a normal startup of the second. It still doesn't work.
Please let me know if there is any workaround for this.

Thanks in advance
nct



nirmala tammineni



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

From: Oracle, Kalpana Malligere 26-Dec-00 17:50
Subject: Re : ORA-01102: cannot mount database in EXCLUSIVE mode


Hello,

Please refer to the 'Oracle 8i Administrator's Guide for Windows NT', Chapter 3.

Did you set the ORACLE_SID =SID2 for the second database or you use a Net8 alias to specify which database you are connecting to? When you start your session SET ORACLE_SID = the second database SID to override the predefined reg entry for the first database. Are you issuing the right "startup pfile= " when starting up either database to make sure you are using the correct control file(s) for the desired database. This is almost always the cause of these types of problems because you are not starting the database you think are. Also have you looked in the alert.log for additional errors?

Are the database names unique? From Server Administrator's Guide: "A database's global database name...is created by setting both the DB_NAME and DB_DOMAIN parameters before database creation. ...The combination of the settings for these two parameters should form a database name that is unique within a network. You still get ORA-1102 if you try to mount two different databases with the same ORACLE_HOME and database name when the DB_DOMAIN's are different, but even so the documentation makes it clear that the intention is that the database name must be unique."

Where are the two databases located? You can have this second database in another Oracle_home if you want, either way it should work. The decision of having multiple databases is one Oracle_home is yours. At the security level concern is, if an unauthorized (disgruntled) user is able to login as the software owner (DBA) they can do whatever they want to ALL the databases in that ORACLE_HOME. However if you have multiple ORACLE_HOMEs with different software owners, you limit your risk of this happening because the person would need to have the capability to login as the "oracle" user for each ORACLE_HOME.





Thanks!
Kalpana
Oracle Technical Support


看了这一段,我恍然大悟,
[oracle@edison dbs]$ grep db_name $ORACLE_HOME/dbs/inittest1.ora
db_name=ora92

原来我startup的居然是ora92而非test1.
此时ora92已经open了,所以肯定不能再次被mount了,

最后修改$ORACLE_HOME/dbs/inittest1.ora中db_name=test1,
再startup就ok了

阅读(2603) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~