zoukankan      html  css  js  c++  java
  • Oracle起动库时1102报错处置

    滥觞:网海拾贝




    一、提出效果

     理论进程中有时我们会遇到如许的效果,当你用startup试图启动数据库时会遇到ORA-01102的报错。我们可以在Unix下切换到Oracle的用户,执行一下oerr ora 1102便会看到有关1102的冗长的形貌,如下:

     rp2$[/home/ora2]oerr ora 1102

    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

    看了这个1102的冗长的诠释你一定有些迷惑,由于它有一些的误导性。如下我便来剖析一下效果发作的缘故起因,并给出处置的举措。

    二、剖析缘故起因

    当你启动数据库遇到1102报错时,之前的数据库的down利用一样泛泛都不是正常完成的,或由于一些异常使Oracle在利用体系中残留一些内存结构,Pmon等一几个进程依然存在等缘故起因使Oracle误觉得Instance依然在运转着,所以库就没有启动,注意说来大体缘故起因有如下几个:

     1、pmon、smon、lwgw及dbwr这些后台进程依然存在着

    2、Oracle开发的共享内存没有释放掉

    3、"lk<sid>" and "sgadef<sid>.dbf"这两个用于锁内存的文件存在着。

     三、处置效果

     晓得了缘故起因,处置起来就复杂多了,举措如下:

     1、看一下"lk<sid>" and "sgadef<sid>.dbf"这两个文件是不是存在着,假设存在将其删掉。

    oracle$cd $ORACLE_HOME/dbs oracle$ls -l sgadef<sid>.dbf假设存在删掉它oracle$rm sgadef<sid>.dbforacle$ls -l lk<sid>

    假设存在删掉它oracle$rm lk<sid>

     2、看是不是有后台进程存在了

     oracle$ps -ef | grep ora_ | grep $ORACLE_SID假设有pmon这些后台进程的残留,kill -9掉它oracle$kill -9 pid

     3、看一下oracle的共享内存段及旗帜记号集(semaphores)是不是还存在着

     1)清共享内存段

     oracle$ipcs -m   --表现一下,看owner是Oracle用户的oracle$ipcrm -m <Shared_Memory_ID>

     2)清旗帜记号集

     oracle$ipcs -s   --表现一下,看owner是Oracle用户的oracle$ipcrm -s <Semaphore_ID>





    版权声明: 原创作品,答理转载,转载时请务必以超链接要领标明文章 原始出处 、作者信息和本声明。不然将清查法律责任。

  • 相关阅读:
    java jmap,jstat等工具的使用
    jvm 参数配置
    python NameError: name 'false' is not defined
    aiflow Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
    TX 笔试题总结
    POJ 3140 Contestants Division
    POJ 1018 Communication System
    POJ 3260 The Fewest Coin
    Leetcode: Median of two sorted Array
    基础知识 (二)
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975927.html
Copyright © 2011-2022 走看看