前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试856】在Oracle中,如何判定实例是否运行?

【DB笔试面试856】在Oracle中,如何判定实例是否运行?

作者头像
小麦苗DBA宝典
发布2020-08-13 09:43:24
8950
发布2020-08-13 09:43:24
举报

问题

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

答案

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

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

ORADEBUG IPC命令如下所示:

代码语言:javascript
复制
SQL> ORADEBUG SETMYPID
SQL> ORADEBUG IPC
SQL> ORADEBUG TRACFILE_NAME

sysresv命令如下所示:

代码语言:javascript
复制
[ZFLHRDB2:oracle]:/oracle>ORACLE_SID=raclhr2
[ZFLHRDB2:oracle]:/oracle>sysresv
IPC Resources for ORACLE_SID "raclhr2" :
Shared Memory:
ID              KEY
5242886         0xffffffff
5242883         0xffffffff
1048583         0xd92489e0
Oracle Instance alive for sid "raclhr2"

& 说明:

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

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

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

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档