暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Oracle中,如何判定实例是否运行?

DB宝 2021-03-23
1136


问题

在Oracle中,如何判定实例是否运行?


     





答案


在启动Oracle实例之前,必须定义ORACLE_SIDOracle根据SIDHASH值来唯一确定一个实例的地址。当打开SQL*Plus工具,输入“sqlplus as sysdba”以后,系统根据SID进行HASH,查找在共享内存中是否有相应的共享内存段(SHMID)存在,如果有,那么返回connected,否则返回connect to an idle instance,这个实例名是存放在SGA中的variable size中。

通过ORADEBUG IPC可以得到variable所存放的SHMSHMID号,在OS下使用ipcrm -m SHMID可以删掉这一段共享内存。另外,在OS级别也可以使用sysresv命令来获取SHMID号。

ORADEBUG IPC命令如下所示:

1SQL> ORADEBUG SETMYPID
2SQL> ORADEBUG IPC
3SQL> ORADEBUG TRACFILE_NAME

复制

sysresv命令如下所示:

1[ZFLHRDB2:oracle]:/oracle>ORACLE_SID=raclhr2
2[ZFLHRDB2:oracle]:/oracle>sysresv
3IPC Resources for ORACLE_SID "raclhr2" :
4Shared Memory:
5ID              KEY
65242886         0xffffffff
75242883         0xffffffff
81048583         0xd92489e0
9Oracle Instance alive for sid "raclhr2"

复制


& 说明:

有关数据库是否启动的问题的更多内容可以参考我的BLOGhttp://blog.itpub.net/26736162/viewspace-2112518/http://blog.itpub.net/26736162/viewspace-2147273/

 

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗


    DB宝分享的IT资料:https://mp.weixin.qq.com/s/Iwsy-zkzwgs8nYkcMz29ag
    复制

     本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

    ● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

     本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

     版权所有,欢迎分享本文,转载请保留出处

     QQ:646634621  QQ群:230161599、618766405

     微信:lhrbestxh

     微信公众号:DB宝

     提供Oracle OCP、OCM、高可用(rac+dg+ogg)和MySQL最实用的技能培训

    ● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

    长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:DB宝,学习最实用的数据库技术。


    文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论