这就实现了数据库的引导,类似于操作系统的初始化。
(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