【发布时间】:2020-09-24 16:59:18
【问题描述】:
我试图了解在GV$SESSION 中唯一标识会话的最小参数集是什么。我在网上看到了一些使用AUDSID、SID和INST_ID的例子,我想了解为什么?
【问题讨论】:
标签: sql oracle oracle-rac
我试图了解在GV$SESSION 中唯一标识会话的最小参数集是什么。我在网上看到了一些使用AUDSID、SID和INST_ID的例子,我想了解为什么?
【问题讨论】:
标签: sql oracle oracle-rac
对于给定实例,会话由其SID 和SERIAL# 唯一标识,如explained in the documentation:
SID:会话标识符
SERIAL#:会话序列号。用于唯一标识会话的对象。如果会话结束并且另一个会话以相同的会话 ID 开始,则保证会话级命令应用于正确的会话对象。
如果您运行的是 RAC 环境,您可以添加 INST_ID。
【讨论】:
这是一对值 SID 和 SERIAL#
docs 中对它们的描述解释了原因:
SID
序列号
【讨论】:
V$SESSION 中的 SID 和 SERIAL# 对于单实例数据库来说已经足够了。
SID、SERIAL#、INST_ID 对于 GV$SESSION 中的 RAC 集群数据库已经足够了。
注意:如果不是 RAC,则无需使用 GV$SESSION。
【讨论】:
GV$session vs V$session 用于独立数据库,gv$session (g=global) 主要用于 RAC 环境。
AUDSID 是会话的唯一标识符,在 sys.aud$ 中用作 SESSIONID 列。它是 sys.aud$ 上唯一索引的前导列
INST_ID列显示获取关联V$视图信息的实例号
了解它们的最佳方式是参考Oracle文档并了解每一列的作用,
https://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2088.htm#REFRN30223
【讨论】: