天天看点

笔记之Oracle 数据字典视图:v$fixed_table里包含了三类对象:X$对象、基于X$表的GV$和V$视图

这就实现了数据库的引导,类似于操作系统的初始化。

(FAT)文件系统启动时的初始化也是如此,即从磁盘上加载FAT分配表到内存上。

总之,系统启动运行前要初始化,初始化即加载一些必要的数据结构(或其数据)到内存。

X$表由此建立。这一部分表可以从v$fixed_table中查到:

SQL> select count(*) from v$fixed_table where name like 'X$%';

  COUNT(*)

----------

       394 

共有394个X$对象被记录。

1.4.2    GV$和V$视图

X$表建立以后,基于X$表的GV$和V$视图得以创建。

这部分视图我们也可以通过查询V$FIXED_TABLE得到。

SQL> select count(*) from v$fixed_table where name like 'GV$%';

  COUNT(*)

----------

       259

这一部分共259个对象。

SQL> select count(*) from v$fixed_table where name like 'V$%';

  COUNT(*)

----------

       259 

同样是259个对象。

v$fixed_table共记录了:

394 + 259 + 259 共 912 个对象。

即v$fixed_table里包含了三类对象:X$对象、基于X$表的GV$和V$视图。

以$结尾的表,如obj$咋么查询到?

dba_tab_comments

dba_col_comments

oracle数据字典详解:内部RDBMS(X$)表、数据字典表、动态性能(v$)视图、数据字典视图

v$fixed_view_definition,即用于查看fixed view(固定视图,即基于X$表的GV$和V$视图)的定义。

在这里我们看到GV$PARAMETER来源于x$ksppi,x$ksppcv两个X$表。 x$ksppi,x$ksppcv 基本上包含所有数据库可调整参数,v$parameter展现的是不包含"_"开头的参数。以"_"开头的参数我们通常称为隐含参数,一般不建议修改,但 很多因为功能强大经常使用而广为人知。

-1219 ORA01219: database not open: queries allowed onfixed tables/views only

ORA-01219:数据库未打开: 仅允许在固定表/视图中查询

注释: fixed tables/views,即固定表(X$)和固定视图(即基于X$表的GV$和V$视图)

数据库未打开时,为什么可以查询固定表/视图?

在内存中创建了bootstrap$以后,Oracle就可以从file 1,block 377上读取其他信息(即固定表(X$)和固定视图(即基于X$表的GV$和V$视图)),创建重要的数据库对象(静态数据字典就是其中之一)。http://blog.csdn.net/kdnuggets/article/details/2076996

-2030 ORA02030: can only select from fixed tables/views

注释:

在fixed tables/views,即固定表(X$)和固定视图(即基于X$表的GV$和V$视图)上,只能执行select操作(且执行select操作的用户是有SYSDBA系统权限的),除此之外的其他操作都不可执行,如授权操作就不行:

Oracle不允许SYSDBA之外的用户直接访问,显示授权不被允许。

如果显示授权你会收到如下错误:

SQL> grant select on x$ksppi to eygle;

grant select on x$ksppi to eygle

               *

ERROR at line 1:

ORA-02030: can only select from fixed tables/views

http://blog.csdn.net/kdnuggets/article/details/2076996

继续阅读