一、概述
Oracle通过数据字典来管理和展现数据库信息,数据字典储存数据库的元数据,是数据库的“数据库”。数据字典由4部分组成:内部RDBMS(X
)
表
、
数
据
字
典
表
、
动
态
性
能
视
图
(
V
)表、数据字典表、动态性能视图(V
)表、数据字典表、动态性能视图(V)和(静态)数据字典视图。
数据字典系统表,保存在system表空间中。执行以下语句可以查询所有数据字典:
select * from dictionary;
二、内部RDBMS(X$)表
X 表 示 O r a c l e 数 据 库 的 核 心 部 分 , 这 些 表 用 于 跟 踪 数 据 库 内 部 信 息 , 维 持 数 据 库 的 正 常 运 行 。 X 表示Oracle数据库的核心部分,这些表用于跟踪数据库内部信息,维持数据库的正常运行。X 表示Oracle数据库的核心部分,这些表用于跟踪数据库内部信息,维持数据库的正常运行。X表是加密命名的,而且Oracle不做文档说明,也不允许sysdba以外的用户直接访问,显示授权不被允许。X$表是Oracle数据库的运行基础,在数据库启动时由Oracle应用程序动态***
创建。 三、动态性能视图***
动态性能视图记录了数据库运行时信息和统计数据,大部分动态性能视图被实时更新以及反映数据库当前状态。在数据库启动时,Oracle动态创建X
表
,
在
此
基
础
上
,
O
r
a
c
l
e
创
建
了
G
V
表,在此基础上,Oracle创建了GV
表,在此基础上,Oracle创建了GV和V
视
图
,
G
V
视图,GV
视图,GV即Global V
,
除
了
一
些
特
例
外
,
每
个
V
,除了一些特例外,每个V
,除了一些特例外,每个V都对应一个GV
。
G
V
。GV
。GV产生是为了OPS/RAC环境的需要,每个V
都
是
基
于
G
V
都是基于GV
都是基于GV的,只是GV
多
了
I
N
S
T
I
D
列
来
显
示
实
例
I
D
。
v
多了INST_ID列来显示实例ID。 v
多了INSTID列来显示实例ID。vdatabase 数据库信息
v
d
a
t
a
f
i
l
e
数
据
文
件
信
息
v
datafile 数据文件信息 v
datafile数据文件信息vcontrolfile 控制文件信息
v
l
o
g
f
i
l
e
重
做
日
志
信
息
v
logfile 重做日志信息 v
logfile重做日志信息vinstance 数据库实例信息
v
l
o
g
日
志
组
信
息
v
log 日志组信息 v
log日志组信息vloghist 日志历史信息
v
s
g
a
数
据
库
S
G
A
信
息
v
sga数据库 SGA信息 v
sga数据库SGA信息vparameter 初始化参数信息
v
p
r
o
c
e
s
s
数
据
库
服
务
器
进
程
信
息
v
process 数据库服务器进程信息 v
process数据库服务器进程信息vbgprocess 数据库后台进程信息
v
c
o
n
t
r
o
l
f
i
l
e
r
e
c
o
r
d
s
e
c
t
i
o
n
控
制
文
件
记
载
的
各
部
分
信
息
v
controlfile_record_section 控制文件记载的各部分信息 v
controlfilerecordsection控制文件记载的各部分信息vthread 线程信息
v
d
a
t
a
f
i
l
e
h
e
a
d
e
r
数
据
文
件
头
所
记
载
的
信
息
v
datafile_header 数据文件头所记载的信息 v
datafileheader数据文件头所记载的信息varchived_log 归档日志信息
v
a
r
c
h
i
v
e
d
e
s
t
归
档
日
志
的
设
置
信
息
v
archive_dest 归档日志的设置信息 v
archivedest归档日志的设置信息vlogmnr_contents 归档日志分析的DMLDDL结果信息
v
l
o
g
m
n
r
d
i
c
t
i
o
n
a
r
y
日
志
分
析
的
字
典
文
件
信
息
v
logmnr_dictionary 日志分析的字典文件信息 v
logmnrdictionary日志分析的字典文件信息vlogmnr_logs 日志分析的日志列表信息
v
t
a
b
l
e
s
p
a
c
e
表
空
间
信
息
v
tablespace 表空间信息 v
tablespace表空间信息vtempfile 临时文件信息
v
f
i
l
e
s
t
a
t
数
据
文
件
的
I
/
O
统
计
信
息
v
filestat数据文件的I/O统计信息 v
filestat数据文件的I/O统计信息vundostatUndo数据信息
v
r
o
l
l
n
a
m
e
在
线
回
滚
段
信
息
v
rollname在线回滚段信息 v
rollname在线回滚段信息vsession会话信息
v
t
r
a
n
s
a
c
t
i
o
n
事
务
信
息
v
transaction事务信息 v
transaction事务信息vrollstat回滚段统计信息
v
p
w
f
i
l
e
u
s
e
r
s
特
权
用
户
信
息
v
pwfile_users特权用户信息 v
pwfileusers特权用户信息vsqlarea当前查询过的sql语句访问过的资源及相关的信息
v
s
q
l
与
v
sql与v
sql与vsqlarea基本相同的相关信息
v$sysstat数据库系统状态信息
四、数据字典表
数据字典表(Data dictionary
table)用以存储表、索引、约束以及其它数据库结构的信息,这些对象通常以“
”
结
尾
(
例
如
:
T
A
B
”结尾(例如:TAB
”结尾(例如:TAB、OBJ
、
T
S
、TS
、TS等),在创建数据库的时候通过运行
O
R
A
C
L
E
H
O
M
E
/
r
d
b
m
s
/
a
d
m
i
n
/
s
q
l
.
b
s
q
脚
本
来
创
建
。
五
、
静
态
数
据
字
典
视
图
由
于
X
ORACLE_HOME/rdbms/admin/sql.bsq脚本来创建。 五、静态数据字典视图 由于X
ORACLEHOME/rdbms/admin/sql.bsq脚本来创建。五、静态数据字典视图由于X表和数据字典表通常不能直接被用户访问,Oracle创建了静态数据字典视图来提供用户对于数据字典信息的访问,由于这些信息通常相对稳定,不能直接修改,所以又被称为静态数据字典视图。静态数据字典视图在创建数据库时由$ORACLE_HOME/rdbms/admin/catagory.sql脚本创建。
静态数据字典视图按照前缀的不同通常分成三类,在本质上是为了实现权限控制。在Oracle数据库中,每个用户与方案(Schema)是对应的,Schema是用户所拥有的对象的集合。数据库通过Schema将不同用户的对象隔离开来,用户可以自由的访问自己的对象,但是要访问其他Schema对象就需要相关的授权。
1、USER_(用户所拥有的相关对象信息)
user_objects用户对象信息
user_source数据库用户的所有资源对象信息
user_segments用户的表段信息
user_tables用户的表对象信息
user_tab_columns用户的表列信息
user_constraints用户的对象约束信息
user_sys_privs当前用户的系统权限信息
user_tab_privs当前用户的对象权限信息
user_col_privs当前用户的表列权限信息
user_role_privs当前用户的角色权限信息
user_indexes用户的索引信息
user_ind_columns用户的索引对应的表列信息
user_cons_columns用户的约束对应的表列信息
user_clusters用户的所有簇信息
user_clu_columns用户的簇所包含的内容信息
user_cluster_hash_expressions散列簇的信息
2、ALL_(用于有权限访问的所有对象的信息)
all_users数据库所有用户的信息
all_objects数据库所有的对象的信息
all_def_audit_opts所有默认的审计设置信息
all_tables所有的表对象信息
all_indexes所有的数据库对象索引的信息
3、DBA_(数据库所有相关对象的信息)
dba_users数据库用户信息
dba_segments表段信息
dba_extents数据区信息
dba_objects数据库对象信息
dba_tablespaces数据库表空间信息
dba_data_files数据文件设置信息
dba_temp_files临时数据文件信息
dba_rollback_segs回滚段信息
dba_ts_quotas用户表空间配额信息
dba_free_space数据库空闲空间信息
dba_profiles数据库用户资源限制信息
dba_sys_privs用户的系统权限信息
dba_tab_privs用户具有的对象权限信息
dba_col_privs用户具有的列对象权限信息
dba_role_privs用户具有的角色信息
dba_audit_trail审计跟踪记录信息
dba_stmt_audit_opts审计设置信息
dba_audit_object对象审计结果信息
dba_audit_session会话审计结果信息
dba_indexes用户模式的索引信息