Oracle数据字典介绍,静态、动态视图

本文中所用到的实例用户为oracle的scott用户

怎么启用scott用户:https://blog.csdn.net/qq_38170766/article/details/105381500

数据字典的内容

数据字典是很重要的数据库对象,它在数据库创建时由数据库服务器创建,记录了数据库创建的信息,各种对象的信息等:

  1. 所有模式(用户)对象的定义,这些对象包括表、视图、索引、族、同义词、序列号、储存过程、函数触发器等。
  2. 数据库的逻辑结构和物理结构,如数据库文件和重做日志文件的信息等。
  3. 所有模式对象被分配多少的储存空间,以及当前的使用空间。
  4. 默认列的值。
  5. 对象完整性约束信息。
  6. 用户信息。
  7. 用户或角色的特权信息。
  8. 审计信息,如哪个用户有访问或修改某些模式对象的权限。

使用和操作数据字典视图

通过动态性能视图具有用户可以查看可读的数据字典基表中的信息。

当使用SQL语句使得某些数据库结构或对象发生变化时,这些都会引起数据库服务器对数据字典信息的修改,如:

  1. 使用GRANT语句对用户赋予一定权限的时候。
  2. 使用ALTER DATABASE移动了控制文件的存储目录。

访问数据字典信息需要一定的授权。

不同的用户对数据字典访问有一定的区别(例如:普通的用户就无法访问DBA查看的数据字典)。

数据字典的三个基本应用(在什么场合需要用到数据字典):

  1. Oracle数据库服务器用来寻找用户信息,模式对象信息和储存结构。
  2. 当使用DDL(数据定义语句)语句时,会触发oracle修改数据字典。
  3. 用户使用数据字典获取数据库信息时

数据字典视图分类

数据字典分为3类,这些视图都是静态视图(静态的含义就是这些视图在数据库运行期间不会发生变化,除非执行ANALYZE指令),这三类数据字典视图以不同的前缀区分彼此:

  1. DBA_***:该视图包含数据库中整个对象信息,以DBA为前缀的视图只能由管理员查询,不要再这些视图上创建同义词。
  2. ALL_***:该视图包含了某个用所能看到的全部数据库信息,包括当前用户所拥有的的模式对象和用户可以访问的其他公共对象,还有通过授权或授予角色可以访问的模式对象。
  3. USER_***:该视图包含了当前用户访问的数据库对象信息,它反映了数据库中某个用户的全部情况,该视图隐含了OWNER信息,其全部内容为以ALL为前缀的视图的子集。
  • 使用DBA用户连接数据库查看dba_object视图结构

通过下列操作确定了dba_objects视图中列的定义后,我们可以查看dba_objects的具体内容,但是由于有大量的结果输出,我们可以加一些限制条件

SQL> conn sys as sysdba
输入口令: 
已连接。
SQL> DESC dba_objects;
 名称                                                                                                                                             是否为空? 类型
 -------------------------------------------------------------------------------------------------------------------------------------------------- -------- ---------------------------------------------------------------------------------------------------
 OWNER                                                                                                                                                       VARCHAR2(30)
 OBJECT_NAME                                                                                                                                                 VARCHAR2(128)
 SUBOBJECT_NAME                                                                                                                                              VARCHAR2(30)
 OBJECT_ID                                                                                                                                                   NUMBER
 DATA_OBJECT_ID                                                                                                                                              NUMBER
 OBJECT_TYPE                                                                                                                                                 VARCHAR2(19)
 CREATED                                                                                                                                                     DATE
 LAST_DDL_TIME                                                                                                                                               DATE
 TIMESTAMP                                                                                                                                                   VARCHAR2(19)
 STATUS                                                                                                                                                      VARCHAR2(7)
 TEMPORARY                                                                                                                                                   VARCHAR2(1)
 GENERATED                                                                                                                                                   VARCHAR2(1)
 SECONDARY                                                                                                                                                   VARCHAR2(1)
 NAMESPACE                                                                                                                                                   NUMBER
 EDITION_NAME                                                                                                                                                VARCHAR2(30)
  • 查看dba_object中scott用户的数据库对象信息

SQL> col owner for a20;
SQL> col object_name for a40;
SQL> select owner,object_name,created from dba_objects where owner='SCOTT';

OWNER                OBJECT_NAME                              CREATED
-------------------- ---------------------------------------- --------------
SCOTT                PK_DEPT                                  24-8¿  -13
SCOTT                DEPT                                     24-8¿  -13
SCOTT                EMP                                      24-8¿  -13
SCOTT                PK_EMP                                   24-8¿  -13
SCOTT                BONUS                                    24-8¿  -13
SCOTT                SALGRADE                                 24-8¿  -13

已选择6行。
  • 使用DBA用户连接数据库查看all_object视图结构

从下面的例子可以看出来,两者输出都是一样的,也就是说DBA_***,ALL_***视图具有相同的列定义。

SQL> DESC all_objects;
 名称                                                                                                                                             是否为空? 类型
 -------------------------------------------------------------------------------------------------------------------------------------------------- -------- ---------------------------------------------------------------------------------------------------
 OWNER                                                                                                                                              NOT NULL VARCHAR2(30)
 OBJECT_NAME                                                                                                                                        NOT NULL VARCHAR2(30)
 SUBOBJECT_NAME                                                                                                                                              VARCHAR2(30)
 OBJECT_ID                                                                                                                                          NOT NULL NUMBER
 DATA_OBJECT_ID                                                                                                                                              NUMBER
 OBJECT_TYPE                                                                                                                                                 VARCHAR2(19)
 CREATED                                                                                                                                            NOT NULL DATE
 LAST_DDL_TIME                                                                                                                                      NOT NULL DATE
 TIMESTAMP                                                                                                                                                   VARCHAR2(19)
 STATUS                                                                                                                                                      VARCHAR2(7)
 TEMPORARY                                                                                                                                                   VARCHAR2(1)
 GENERATED                                                                                                                                                   VARCHAR2(1)
 SECONDARY                                                                                                                                                   VARCHAR2(1)
 NAMESPACE                                                                                                                                          NOT NULL NUMBER
 EDITION_NAME                                                                                                                                                VARCHAR2(30)
  • 使用SCOTT用户连接数据库查看all_object中owner的名字

SQL> conn scott/tiger;
已连接。
SQL> select DISTINCT owner from all_objects;

OWNER
--------------------
MDSYS
PUBLIC
CTXSYS
OLAPSYS
SYSTEM
EXFSYS
APEX_030200
SCOTT
ORDSYS
ORDPLUGINS
DBSNMP

OWNER
--------------------
XDB
ORDDATA
SYS
WMSYS

已选择15行。
  • 使用SCOTT用户连接数据库查看all_object中特定owner的部分信息

SQL> select owner,object_name,created from all_objects where owner='SCOTT';

OWNER                OBJECT_NAME                              CREATED
-------------------- ---------------------------------------- --------------
SCOTT                PK_DEPT                                  24-8¿  -13
SCOTT                DEPT                                     24-8¿  -13
SCOTT                EMP                                      24-8¿  -13
SCOTT                PK_EMP                                   24-8¿  -13
SCOTT                BONUS                                    24-8¿  -13
SCOTT                SALGRADE                                 24-8¿  -13

已选择6行。
  • 使用SCOTT用户连接数据库查看dba_object视图结构

SQL> DESC dba_objects;
ERROR:
ORA-04043: ¿¿ "SYS"."DBA_OBJECTS" ¿¿¿



SQL> select owner,object_name,created from dba_objects where owner='SCOTT';
select owner,object_name,created from dba_objects where owner='SCOTT'
                                      *
第 1 行出现错误:
ORA-00942: ¿¿¿¿¿¿¿
  • 查看静态数据字典USER_OBJECTS的定义

SQL> DESC user_objects;
 名称                                                                                                                                             是否为空? 类型
 -------------------------------------------------------------------------------------------------------------------------------------------------- -------- ---------------------------------------------------------------------------------------------------
 OBJECT_NAME                                                                                                                                                 VARCHAR2(128)
 SUBOBJECT_NAME                                                                                                                                              VARCHAR2(30)
 OBJECT_ID                                                                                                                                                   NUMBER
 DATA_OBJECT_ID                                                                                                                                              NUMBER
 OBJECT_TYPE                                                                                                                                                 VARCHAR2(19)
 CREATED                                                                                                                                                     DATE
 LAST_DDL_TIME                                                                                                                                               DATE
 TIMESTAMP                                                                                                                                                   VARCHAR2(19)
 STATUS                                                                                                                                                      VARCHAR2(7)
 TEMPORARY                                                                                                                                                   VARCHAR2(1)
 GENERATED                                                                                                                                                   VARCHAR2(1)
 SECONDARY                                                                                                                                                   VARCHAR2(1)
 NAMESPACE                                                                                                                                                   NUMBER
 EDITION_NAME                                                                                                                                                VARCHAR2(30)
  • 查看SCOTT用户的对象信息

SQL> select object_name,object_type,created from user_objects;

OBJECT_NAME                              OBJECT_TYPE                                               CREATED
---------------------------------------- --------------------------------------------------------- --------------
PK_DEPT                                  INDEX                                                     24-8¿  -13
DEPT                                     TABLE                                                     24-8¿  -13
EMP                                      TABLE                                                     24-8¿  -13
PK_EMP                                   INDEX                                                     24-8¿  -13
BONUS                                    TABLE                                                     24-8¿  -13
SALGRADE                                 TABLE                                                     24-8¿  -13

已选择6行。

使用数据字典视图

数据字典都是静态视图,在数据库重新启动之前,静态数据字典中的信息是不会发生变化的。

  • 查看当前用户所拥有的表

SQL> select table_name from user_tables;

TABLE_NAME
------------------------------------------------------------------------------------------
SALGRADE
BONUS
EMP
DEPT
  • 查看当前用户创建的索引

user_indexs数据字典视图,查看当前用户创建的索引,索引在某种程度上可以加快查询的速度。

SQL> select index_name from user_indexes;

INDEX_NAME
------------------------------------------------------------------------------------------
PK_EMP
PK_DEPT
  • 查看当前用户拥有的视图

user_views数据字典视图,查看当前用户拥有的视图

SQL> select view_name from user_views;

未选定行
  • 查看当前用户的所有表名和类型

SQL> select*from user_catalog;

TABLE_NAME                                                                                 TABLE_TYPE
------------------------------------------------------------------------------------------ ---------------------------------
BONUS                                                                                      TABLE
DEPT                                                                                       TABLE
EMP                                                                                        TABLE
SALGRADE                                                                                   TABLE
  • 查看数据库系统上创建的用户信息

SQL> conn sys as sysdba
输入口令: 
已连接。
SQL> select username,created from dba_users;

USERNAME                                                                                   CREATED
------------------------------------------------------------------------------------------ --------------
MGMT_VIEW                                                                                  24-8¿  -13
SYS                                                                                        24-8¿  -13
SYSTEM                                                                                     24-8¿  -13
DBSNMP                                                                                     24-8¿  -13
SYSMAN                                                                                     24-8¿  -13
SCOTT                                                                                      24-8¿  -13
TT                                                                                         05-4¿  -20
OUTLN                                                                                      24-8¿  -13
FLOWS_FILES                                                                                24-8¿  -13
MDSYS                                                                                      24-8¿  -13
ORDSYS                                                                                     24-8¿  -13

USERNAME                                                                                   CREATED
------------------------------------------------------------------------------------------ --------------
EXFSYS                                                                                     24-8¿  -13
WMSYS                                                                                      24-8¿  -13
APPQOSSYS                                                                                  24-8¿  -13
APEX_030200                                                                                24-8¿  -13
OWBSYS_AUDIT                                                                               24-8¿  -13
ORDDATA                                                                                    24-8¿  -13
CTXSYS                                                                                     24-8¿  -13
ANONYMOUS                                                                                  24-8¿  -13
XDB                                                                                        24-8¿  -13
ORDPLUGINS                                                                                 24-8¿  -13
OWBSYS                                                                                     24-8¿  -13

USERNAME                                                                                   CREATED
------------------------------------------------------------------------------------------ --------------
SI_INFORMTN_SCHEMA                                                                         24-8¿  -13
OLAPSYS                                                                                    24-8¿  -13
ORACLE_OCM                                                                                 24-8¿  -13
XS$NULL                                                                                    24-8¿  -13
BI                                                                                         05-4¿  -20
PM                                                                                         05-4¿  -20
MDDATA                                                                                     24-8¿  -13
IX                                                                                         05-4¿  -20
SH                                                                                         05-4¿  -20
DIP                                                                                        24-8¿  -13
OE                                                                                         05-4¿  -20

USERNAME                                                                                   CREATED
------------------------------------------------------------------------------------------ --------------
APEX_PUBLIC_USER                                                                           24-8¿  -13
HR                                                                                         05-4¿  -20
SPATIAL_CSW_ADMIN_USR                                                                      24-8¿  -13
SPATIAL_WFS_ADMIN_USR                                                                      24-8¿  -13

已选择37行。

动态性能视图及使用

上面讲的是静态数据字典,oracle还维护了一类非常重要的数据字典视图:动态性能视图。

动态性能视图只能存在于运行的数据库中,它是一组虚表,通常也把这组表称为动态性能表

数据库动态性能视图只能由管理员用户查询。管理员可以在动态性能视图上创建视图,并将访问权限授予其他用户。

任何用户都无法修改或者删除动态性能视图。

sys用户拥有所有的动态性能视图,他们通常以V$开头,包含了一些如:

  1. v$controlfile:控制文件存储目录和文件名信息。

  2. v$datafile:包含了数据库文件信息。

  3. v$fixed_table:包含了当前所有动态性能视图。

  • 查询和日志文件相关的信息

下面的操作哟查询了所有和日志文件相关的动态性能视图,如果想要了解日志文件的详细信息我们可以使用v$log视图和v$logfile视图。

SQL> select * from v$fixed_table where name like '%V$LOG%';

NAME                                                                                        OBJECT_ID TYPE             TABLE_NUM
------------------------------------------------------------------------------------------ ---------- --------------- ----------
GV$LOGFILE                                                                                 4294951289 VIEW                 65537
V$LOGFILE                                                                                  4294950935 VIEW                 65537
GV$LOG                                                                                     4294951318 VIEW                 65537
V$LOG                                                                                      4294951049 VIEW                 65537
GV$LOGHIST                                                                                 4294951320 VIEW                 65537
V$LOGHIST                                                                                  4294951051 VIEW                 65537
GV$LOG_HISTORY                                                                             4294951332 VIEW                 65537
V$LOG_HISTORY                                                                              4294951077 VIEW                 65537
V$LOGMNR_CONTENTS                                                                          4294951541 VIEW                 65537
GV$LOGMNR_CONTENTS                                                                         4294951542 VIEW                 65537
V$LOGMNR_LOGS                                                                              4294951543 VIEW                 65537

NAME                                                                                        OBJECT_ID TYPE             TABLE_NUM
------------------------------------------------------------------------------------------ ---------- --------------- ----------
GV$LOGMNR_LOGS                                                                             4294951544 VIEW                 65537
V$LOGMNR_DICTIONARY                                                                        4294951545 VIEW                 65537
GV$LOGMNR_DICTIONARY                                                                       4294951546 VIEW                 65537
V$LOGMNR_PARAMETERS                                                                        4294951547 VIEW                 65537
GV$LOGMNR_PARAMETERS                                                                       4294951548 VIEW                 65537
GV$LOGMNR_LOGFILE                                                                          4294951642 VIEW                 65537
V$LOGMNR_LOGFILE                                                                           4294951643 VIEW                 65537
GV$LOGMNR_PROCESS                                                                          4294951645 VIEW                 65537
V$LOGMNR_PROCESS                                                                           4294951646 VIEW                 65537
GV$LOGMNR_TRANSACTION                                                                      4294951648 VIEW                 65537
V$LOGMNR_TRANSACTION                                                                       4294951649 VIEW                 65537

NAME                                                                                        OBJECT_ID TYPE             TABLE_NUM
------------------------------------------------------------------------------------------ ---------- --------------- ----------
GV$LOGMNR_REGION                                                                           4294951632 VIEW                 65537
V$LOGMNR_REGION                                                                            4294951633 VIEW                 65537
GV$LOGMNR_CALLBACK                                                                         4294951635 VIEW                 65537
V$LOGMNR_CALLBACK                                                                          4294951636 VIEW                 65537
GV$LOGMNR_SESSION                                                                          4294951639 VIEW                 65537
V$LOGMNR_SESSION                                                                           4294951640 VIEW                 65537
GV$LOGMNR_LATCH                                                                            4294952584 VIEW                 65537
V$LOGMNR_LATCH                                                                             4294952585 VIEW                 65537
GV$LOGMNR_DICTIONARY_LOAD                                                                  4294952587 VIEW                 65537
V$LOGMNR_DICTIONARY_LOAD                                                                   4294952588 VIEW                 65537
GV$LOGMNR_SYS_OBJECTS                                                                      4294952761 VIEW                 65537

NAME                                                                                        OBJECT_ID TYPE             TABLE_NUM
------------------------------------------------------------------------------------------ ---------- --------------- ----------
V$LOGMNR_SYS_OBJECTS                                                                       4294952762 VIEW                 65537
GV$LOGMNR_SYS_DBA_SEGS                                                                     4294952763 VIEW                 65537
V$LOGMNR_SYS_DBA_SEGS                                                                      4294952764 VIEW                 65537
GV$LOGMNR_EXTENTS                                                                          4294952765 VIEW                 65537
V$LOGMNR_EXTENTS                                                                           4294952766 VIEW                 65537
GV$LOGMNR_DBA_OBJECTS                                                                      4294952767 VIEW                 65537
V$LOGMNR_DBA_OBJECTS                                                                       4294952768 VIEW                 65537
GV$LOGMNR_OBJECT_SEGMENTS                                                                  4294952769 VIEW                 65537
V$LOGMNR_OBJECT_SEGMENTS                                                                   4294952770 VIEW                 65537
GV$LOGSTDBY                                                                                4294951710 VIEW                 65537
V$LOGSTDBY                                                                                 4294951711 VIEW                 65537

NAME                                                                                        OBJECT_ID TYPE             TABLE_NUM
------------------------------------------------------------------------------------------ ---------- --------------- ----------
GV$LOGSTDBY_STATS                                                                          4294951713 VIEW                 65537
V$LOGSTDBY_STATS                                                                           4294951714 VIEW                 65537
GV$LOGSTDBY_TRANSACTION                                                                    4294952180 VIEW                 65537
V$LOGSTDBY_TRANSACTION                                                                     4294952181 VIEW                 65537
GV$LOGSTDBY_PROCESS                                                                        4294952178 VIEW                 65537
V$LOGSTDBY_PROCESS                                                                         4294952179 VIEW                 65537
GV$LOGSTDBY_PROGRESS                                                                       4294952173 VIEW                 65537
V$LOGSTDBY_PROGRESS                                                                        4294952174 VIEW                 65537
GV$LOGSTDBY_STATE                                                                          4294952176 VIEW                 65537
V$LOGSTDBY_STATE                                                                           4294952177 VIEW                 65537
GV$LOGMNR_STATS                                                                            4294951833 VIEW                 65537

NAME                                                                                        OBJECT_ID TYPE             TABLE_NUM
------------------------------------------------------------------------------------------ ---------- --------------- ----------
V$LOGMNR_STATS                                                                             4294951834 VIEW                 65537

已选择56行。
  • 通过v$instance查看实例信息

SQL> select instance_name,host_name,version,startup_time,logins from v$instance;

INSTANCE_NAME                                    HOST_NAME
------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
VERSION                                             STARTUP_TIME   LOGINS
--------------------------------------------------- -------------- ------------------------------
tiqs                                             oracle
11.2.0.4.0                                          08-4¿  -20     ALLOWED
  • 通过v$database查看数据库的信息


SQL> select name,created,log_mode from v$database;

NAME                        CREATED        LOG_MODE
--------------------------- -------------- ------------------------------------
TIQS                        05-4¿  -20     ARCHIVELOG
发布了17 篇原创文章 · 获赞 1 · 访问量 2425

猜你喜欢

转载自blog.csdn.net/qq_38170766/article/details/105403925
今日推荐