各位大佬,在设置linux下oracle11g自动启动的时候,按照网上的设置,但是每次系统重启,实例都没有起来,然后直接startup,都会提示ORA-01102: cannot mount database in EXCLUSIVE mode?,每次都要手动删除dbs目录下lkxxx文件才能正常启动,请问如何解决。
数据库异常关机?感觉Oracle没有必要设置成自启动,难道数据库还需要定期关机?稳定运行才是根本。
评论
有用 0oerr ORA 01102
01102, 00000, "cannot mount database in EXCLUSIVE mode"
// *Cause: Some other instance has the database mounted exclusive or shared.
// *Action: Shutdown other instance or mount in a compatible mode
检查下是不是设置了多个开机自启脚本。或者把你的自启脚本发出来看下。
评论
有用 0没法帮你解答问题了。不过我也说说自启动,我感觉自启动不科学,可能你有时候要排查问题,需要先startup nomount,或者startup mount,结果你一开机就自启动了,怎整?
评论
有用 0已经解决,不是自启脚本的问题,是我的系统变量ORACLE_SID=xxx,设置大写,然后其他地方是小写,导致启动时启动不存在的实例。
评论
有用 2遇到这种情况,可能是由于在系统重启后,Oracle实例没有正确地关闭导致的。这可能导致数据库在启动时无法获取独占模式,因此出现了 "ORA-01102: cannot mount database in EXCLUSIVE mode" 错误。解决这个问题的步骤如下:
1. **确保正确关闭数据库:** 在系统重启前,请确保使用 `shutdown immediate` 命令或者 `shutdown abort` 命令来关闭Oracle实例。这样可以确保数据库正确地释放锁文件和其他资源。
2. **检查数据库启动脚本:** 检查Oracle数据库启动脚本是否正确配置。在Linux系统上,数据库启动脚本通常位于 `/etc/init.d` 目录下,名字类似于 `oracle` 或者 `ora`。确保脚本中的启动命令包含了正确的实例名和路径。
3. **检查系统日志:** 检查系统日志,特别是 `/var/log/messages` 或者 `/var/log/syslog` 文件,查看是否有有关数据库启动失败的错误消息。这可以帮助确定问题的具体原因。
4. **清理残留文件:** 在每次手动删除 `dbs` 目录下的 `lk` 文件后,使用 `lsnrctl status` 命令确认监听器是否已停止。如果监听器尚未停止,请使用 `lsnrctl stop` 命令停止监听器。然后再次尝试启动数据库。
5. **手动启动数据库:** 在确认监听器已停止的情况下,尝试手动启动数据库。使用 `sqlplus / as sysdba` 登录到数据库,然后使用 `startup` 命令尝试启动数据库。确保启动过程中没有任何错误。
6. **检查权限问题:** 确保数据库启动脚本和Oracle用户的权限设置正确,有足够的权限来访问数据库文件和目录。
7. **重启服务器:** 在执行上述步骤后,重新启动服务器,然后观察数据库是否能够自动启动。
如果遇到问题仍然无法解决,可能需要详细分析日志文件和数据库配置,或者考虑重新配置数据库启动脚本。最后,如果需要进一步的帮助,建议联系Oracle数据库管理员或专业支持团队寻求帮助。
评论
有用 0
墨值悬赏


