【问题标题】:The magic of DUALDUAL 的魔力
【发布时间】:2012-09-12 08:55:58
【问题描述】:

在正常情况下(不使用SYS或者可能使用它)-

SQL> select * from dual;

D
-
X

在不太正常的情况下(连接为SYS)-

SQL> alter database close;
Statement processed.

SQL> select * from dual;
ADDR     INDX       INST_ID    D
-------- ---------- ---------- -
00FA6E50          0          1 X

我知道DUAL 是一个特殊的魔法表(等等)但是

当数据库处于待机状态时,DUAL 有什么不同?如果ADDRINDXINST_ID处于待机状态,有什么相关性?

【问题讨论】:

  • 最好在dba.stackexchange.com上提问
  • 好吧,我不确定 DBA 是否会知道这些列的相关性,还是程序员会知道!!

标签: oracle dual-table


【解决方案1】:

几年前,Tom Kyte 很好地回答了这个问题,在这里:

http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1562813956388

希望对您有所帮助。

【讨论】:

  • 我看过这篇文章,但我没有看到他在哪里解释了 ADDRINDXINST_ID 列及其相关性,以及为什么这些列只会出现在 DB Standby 上.我猜这只是甲骨文“黑匣子”中的一件事。
  • 这些都是任何 X$ 表中的标准列。 ADDR 是地址,字面意思是该特定行在 SGA 中映射的内存地址。 INST_ID 是实例 ID。对于单实例(非 RAC)数据库,它始终为 1。对于 RAC 数据库,它从 1 到 n 不等,其中 n 是 RAC 集群中的节点数。而INDX,我认为是一个索引所有X$表的内部数组。因此,如果系统中有 n 个 X$ 表,每个 X$ 将有一个唯一的值,从 1 到 n。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多