解决oracle数据库ORA

66次阅读
没有评论

共计 2701 个字符,预计需要花费 7 分钟才能阅读完成。

行业资讯    
数据库    
MySQL 数据库    
解决 oracle 数据库 ORA-01081: cannot start already-running ORACLE – shut it down first 的方法

解决 oracle 数据库 ORA-01081: cannot start already-running ORACLE – shut it down first 的方法
发布时间:2020-11-13 17:49:39
来源:丸趣 TV
阅读:5164
作者:小新
栏目:MySQL 数据库
自动写代码机器人,免费开通

这篇文章主要介绍解决 oracle 数据库 ORA-01081: cannot start already-running ORACLE – shut it down first 的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

当检查 oracle 实例后台进程不存在这时启动启动数据库报错:   

  ORA-01081: cannot start already-running ORACLE – shut it down first    

造成此种原因是  

Orphaned shared memory segments and semaphores did not get cleared properly   

from the last instance shutdown. 

在 oracle 实例最后一次 shutdown 时,某一个孤立的共享内存段和信号没有被清理干净  

解决方法  

可以利用 ipcs 来找出共享内存段或者信号,利用 ipcrm 来手动清除  

orphaned shared memory segments(孤立的共享内存段)和 semaphores(信号量) 

[root@wl ~]# ipcs -a   

—— Shared Memory Segments ——– 

key        shmid      owner      perms      bytes      nattch     status                 

0x00000000 688138     oracle    640        4096       0                       

0x00000000 720907     oracle    640        4096       0                     

—— Semaphore Arrays ——– 

key        semid      owner      perms      nsems       

0x000000a7 0          root      600        1           

0x00000000 688138     oracle    640        4096       0         

0x00000000 720907     oracle    640        4096       0     

[root@wl ~]# ipcs -m   

—— Shared Memory Segments ——– 

key        shmid      owner      perms      bytes      nattch     status               

0x00000000 688138     oracle    640        4096       0                     

0x00000000 720907     oracle    640        4096       0                       

         [root@wl ~]# ipcrm – m 720907 

ipcs:检查分配的共享内存  

ipcrm:手动释放共享内存段  

取得 ipc 信息: 

ipcs [-m|-q|-s] 

-m        输出有关共享内存 (shared memory) 的信息  

-q        输出有关信息队列 (message queue) 的信息  

-s        输出有关“信号量”(semaphore)的信息  

-a        使用所有打印选项. (针对 -b, -c, -o, -p, and - t 的速记符) 

Example:   

    ipcrm -m    shmid 号    – for shared memory   

    ipcrm -s    semid  号       – for semaphores     

OR 

Shutdown all the instances belonging to the user. Next, run ipcs -b to find the remaining IPC   

facilities, owned by the same user, and remove them.  However, if you re running multiple production   

instances, this may not be  acceptable.   

在多实例的情况下    

1. 运行    

     ipcs -a /tmp/ipcs_before.out     

2. 用 SQL*Plus 连接所有实例做一个简单的查询              

     select * from dual;     

3. 再次运行    

      ipcs -a /tmp/ipcs_after.out     

4. 对比 /tmp/ipcs_before.out 与 /tmp/ipcs_after.out   文件  

  查找 LPID 没有改变的共享内存段    

   These are the orphaned shared memory segments you are looking for:       

    LPID 显示最后过程中附加或者分立共享内存段的进程 ID 

      因为,通过在每一个活着的实例中执行查询,你会涉及到属于各自实例的共享内存段, 

    但是未涉及的共享内存段将变成孤立的一个    

5. After identifying the orphaned shared memory segments, you can find   

   the orphaned semaphores by locating the semaphores with the same   

   value of CTIME in ipcs -a output as the value of CTIME for the   

   orphaned shared memory segments: CTIME shows the time when the   

   associated entry was created or changed.   

    在识别孤立的共享内存段后,可以通过 ipcs - a 的输出确定具有相同 CTIME 值的信号找到孤立的共享内存段  

    作为相关孤立共享内存段的值  

   解决 oracle 数据库 ORA-01081: cannot start already-running ORACLE - shut it down first 的方法

以上是解决 oracle 数据库 ORA-01081: cannot start already-running ORACLE – shut it down first 的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计2701字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)