ORA-01102:什么时候启动数据库
问题描述:
你正在尝试启动数据库并且你收到了以下错误:
ORA-01102:不能在专一的模式下启动数据库
原因:
一些其他的实例已经被数据库读取排斥或者分享
解决办法:
关闭其他的实例或者安装一个兼容模式
问题说明:
一个数据库在默认的情况下是以专一模式启动的。因此,the ORA-01102错误是误导的,可能是由于以下原因中的一个而发生的:
在ORACLE_HOME/DBS目录下一直有一个sgadef.dbf文件。
oracle的进程(如pmon,smon,lgwr and dbwr进程)一直存在。
尽管数据库已经关闭,但共享内存数据段和变量依然存在。
有一个ORACLE_HOME/DBS/LK 文件。
检索词
ORA-1102,崩溃,直接的,即刻的,中断,失败,故障,
移动,迁移
解决方案的描述:
确认数据库正确关闭是要做的以下操作:
1.确认在ORACLE_HOME/DBS目录下没有sgadef.dbf文件,如果有这个文件,则删除它,用以下的命令
% rm $ORACLE_HOME/dbs/sgadef.dbf
2.确认oracle本身没有后台进程,如果有后台进程存在,用unix命令kill 去停止它们
例如
% kill -9
3.确认oracle数据库在关闭时,没有共享的内存数据段和变量在运行,如果oracle数据库有共享的内存数据段和变量,则移除共享数据段和变量
注意:
这个例子解释了以上只有一个数据库在机器上的假设。
如果你有不止一个数据库,在第四步操作之前,你将需要关闭所有其他数据库。
4.确认oracle_home/dbs/lk文件不存在
5.启动实例
解决方案说明:
lk文件和sgadef.dbf文件用于锁定共享内存,看来即使没有分配内存,oracle认为内存依然是锁定的。
通过删除sgadef和lk文件,你可以删除关于甲骨文的任何文件和共享内存的使用。
现在你的数据库启动了
1052.doc (2012-04-25 16:32, 0.030 M) 该附件被下载的次数 1
|