8. Oracle数据字典
数据字典是元数据(metadata)的存储地点
Oracle使用数据字典记录和管理对象信息和安全信息
包括如下内容:
1. 所有数据库schema对象的定义(表、视图、索引、聚族、同义词、序列、过程、函数、包、触发器等)
2. 数据库的空间分配和使用情况
3. 字段缺省值、完整性约束信息
4. 用户名、角色、权限
5. 审计信息
6. ...
数据字典是数据库的核心,一般情况下是只读的!oracle不建议修改,因为这样可能会导致数据库紊乱而无法恢复!
oracle对这类操作不负责任!
组成:
内部RDBMS(X$表)
数据字典表
动态性能视图(V$)
数据字典视图
8.1 X$是数据库的核心,加密命名,是oracle公司的技术机密
记录oracle数据库内部信息,是数据库运行的基础,启动时由oracle应用程序动态创建
不允许sysdba之外的用户直接访问
8.2 数据字典表
data dictionary table
用以存储表、索引、约束以及其他数据库结构的信息,通常以$结尾
如:tab$,obj$,ts$,在创建数据库的时候通过运行sql.gsq脚本创建
sql.bsq包含了数据字典表的定义以及注释说明,位于$ORACLE_HOME/dbms/admin目录下,可以多阅读
8.3 动态性能视图
V$开头,在启动时,创建了X$之后,oracle基于x$创建了GV$和V$视图,GV$视图是global v$
基本上每个v$都有一个GV$存在,当然也有例外
GV$是为了满足ops环境,GV$是所有实例信息,而每个v$是基于GV$视图,增加了inst_id列的where条件限制
每个v$都有where inst_id=userenv('Instance');在orc环境下,gv$和V$输出有不同
随后,oracle又创建了gv_$/v_$视图,通过gv$、v$创建了gv_$/v_$视图,然后再创建公用同义词gv$/v$
通过catalog.sql脚本创建
创建gv_$和v_$视图是为了授权,因为授权不能直接在gv$/v$上进行
所以我们看到的gv$/v$都不是真正的gv$/v$
我们常用的v$ 是v_$的同义词,v_$是基于真正的视图v$,而真正的v$视图是在gv$的基础上限制inst_id得到;
我们常用的gv$是gv_$的同义词,gv_$基于真正的视图gv$,而真正的gv$视图基于系统表X$
8.4 数据字典视图
数据字典视图是建立在x$/数据字典表上创建的视图,由catalog.sql负责
根据前缀不同,分为常见的三类:
user_:包含了用户所拥有的相关对象信息
all_:包含了用户有权限访问的所有对象信息
dba_:包含了数据库所有对象的信息
[笔记]---oracle数据字典
原创justforqdj 博主文章分类:oracle相关 ©著作权
文章标签 oracle oracle数据字典 oracle 数据自带年关系 v$ gv$ v_$ gv_$ x$ 文章分类 数据库
-
PowerDesigner用Connection profile导出Mysql数据字典常见问题
PowerDesigner 导出数据字典时,连接数据库会提示错误,本文针对自己遇到的问题,总结处理方法。
java mysql PowerDesigner -
解读MySQL 8.0数据字典的初始化与启动
MySQL 8.0新设计实现的数据字典,解决了之前版本的数据字典冗余,DDL原子性、crash safe等问题。
数据字典 System MySQL 索引 GaussDB -
走近Oracle数据字典--数据字典表
作者: 三十而立时间:2009年11月08日
oracle dictionary 数据库 comments sql -
数据字典笔记
数据字典笔记
笔记 数据库 字段 前后台 -
Oracle数据字典视图
本文大部分内容参考eygle的《深入浅出Oracle:DBA入门、进阶与诊断案例》
Oracle 数据字典视图表