1. 什么是数据字典
(1)Oracle 提供了⼤量的内部表,它们记录了数据库对象的更改和修正。
可以将这些内部表划 分为两种主要类型:
- 静态的数据字典表
- 动态的性能表
(2) 这些内部表是由oracle维护的,它们都是只读表。⽤户包括sys都不能修改,只能查看。
(3)Oracle 数据库字典通常是在创建和安装数据库时被创建的。
2. 数据字典内容
- 数据库中所有模式对象的信息,如表、视图、簇、及索引等
- 分配多少空间,当前使⽤了多少空间等。
- 列的缺省值
- 约束信息的完整性。
- Oracle ⽤户的名字。
- ⽤户及⻆⾊被授予的权限。
- ⽤户访问或使⽤的审计信息。
- 其它产⽣的数据库信息。
3. 数据字典表的类型
数据字典表:是 Oracle 存放系统数据的表。这些表属于 SYS ⽤户。⽤以存储表、索引、约束 以及其他数据库结构信息,通常以$结尾,如tab$,obj$,ts$,aud$等。
内部表(X$):Oracle 的核⼼,官网不做说明, Oracle 通过⼤量 X$建⽴起⼤量图,仅供⽤户 select
数据字典视图数据字典表上创建,通常分为三类 dba_、all_、 user_.
动态性能视图(v$)实时更新反应当前实例的状态,官⽹对 v$视图有详尽的说明。
4. 数据字典视图
4.1 静态视图
- dba_
存储所有⽤户对象的信息(默认只能有 sys/system ⽤户访问) - all_
存储当前⽤户有权限访问的对象的信息(包括⽤户所拥有和其他⽤户授权访问的) - user_
存储当前⽤户所拥有的对象的相关信息。
静态视图
SQL> startup mount
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> select tablespace_name from dba_tablespaces;
ORA-01219: database not open: queries allowed on fixed tables/views only
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
……
6 rows selected.
SQL> alter database open;
STATUS
------------
MOUNTED
SQL> select tablespace_name from dba_tablespaces;
NAME
------------------------------
SYSTEM
SYSAUX
……
6 rows selecte
4.2 动态性能视图
NOMOUNT状态
- v$parameter
- v$sparameter
- v$instance
- v$sga
- v$sgastat
- v$process
MONUT状态
- v$database
- v$controlfile
- v$datafile
- v$logfile
- v$tempfile
- v$tablespace
- v$log_history
- v$archived_log v$back