ORA-01102: 不能加载数据库到EXCLUSIVE模式

    在本地建Standby时会遇到下面这个错误. 有几个库是从同一个源库拷贝出来, 今天在为他们在同一台机器上建Standby也遇到了这个问题, 这几个库拷出来后就没有改更过DB_NAME, 因此他们都是相同的, 只是实例名不同而已.

SQL> alter database mount standby database;
alter database mount standby database
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode

    其实这个问题和一个文件有关, Oracle数据库在运行着时会锁定生成或锁定一个文件. 发现在数据库运行着时, 用fuser可以看到有Oracle的进程在打开这个文件, 而在Windows中则不能删除这个文件. 如数据库PROD.

C:\oracle\product\10.2.0\database\hc_PROD.dat
/app/oracle/product/10.2.0/dbs/lkPROD

    这个文件默认是从DB_NAME来生成的, 但是如果设了LOCK_NAME_SPACE值, 如改成PRODSTBY, 则这个文件名就变成了从LOCK NAME SPACE的值来生成. 如:

C:\oracle\product\10.2.0\database\hc_PRODSTBY.dat
/app/oracle/product/10.2.0/dbs/lkPRODSTBY

    另外一个猜测想, 如果我们用一个Perl角本或其他程序锁定这个文件名, 也可以模拟出这个错误的, 还没有去验证这一点.

留言 (2)

遇到过一次,这个文件丢失导致数据库挂起。

这个文件丢失以后, 怎么修复的, 比如 如何重新生成一个.

还是简单的restart 就行了?

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • She has a particular interest in painting.
  • 她特别爱好绘画.
  • I often take my mind off my work by reading an interesting novel.
  • 通常我通过阅读小说使我的注意力从工作上转移过来.
  • He plays violin just for enjoyment.
  • 他拉小提琴只是为了自娱自乐.
  • Photography is an expensive hobby.
  • 摄影是门花费很多的爱好.
  • What's your favorite sport?
  • 你最喜欢什么活动?