解决方案:先检查实例状态,使用sqlplus / as sysdba连接,执行shutdown immediate;然后startup mount;alter database open;如果冲突,用srvctl stop instance -d dbname -i instname停止冲突实例,重启数据库。
来源1
ORA-01530: database or plist already open。遇到这个错误,通常是实例冲突或数据库已被挂载。远程处理方案:登录服务器,ps -ef | grep pmon 查看进程,kill掉多余进程,然后rm -f /u01/app/oracle/product/10.2.0/db_1/dbs/hc_*.dat文件,再startup。
来源2
今天远程帮朋友修Oracle数据库,报ORA-01530错误。直接ssh过去,su - oracle,sqlplus /nolog,conn /as sysdba,shutdown abort;startup restrict;alter database open;搞定。远程真方便,大家讨论下有没有更好方法。
来源3
实例冲突解决:rac环境下,srvctl status database -d orcl,查实例状态,用crsctl stop crs停止集群,再启动单实例。热议:远程用dcli命令批量操作多节点,避免物理登录。
来源4
故障修复步骤:1.检查alert.log日志,找ORA-01530位置。2.shutdown immediate。3.删除spfile备份或hc_dat文件。4.startup mount; alter database open resetlogs;远程用expect脚本自动化。
来源5
网友分享:实例已挂载,用alter system kill session 'sid,serial#';然后重启实例。讨论中有人说远程用RMAN connect target / backup,防止数据丢失。
来源6
技巧:lsnrctl status查监听,tnsnames.ora配置对不对。冲突时,pfile启动替换spfile。远程方案受欢迎,因为不用去机房。
FAQ
Q: ORA-01530怎么快速修复?
A: shutdown immediate后startup mount再open。
Q: 远程怎么处理实例冲突?
A: 用srvctl stop instance命令。
Q: 为什么会出现这个错误?
A: 数据库或实例已被打开。
Q: RAC环境怎么解决?
A: crsctl stop crs后单节点启动。