oracle数据库数据字典应用

oracle数据字典

数据字典是由oracle服务器创建和维护的一组只读的系统表。数据字典分为两类:一是基表,二是数据字典视图。

数据字典视图包括用户名、用户权限、对象名、约束和审计等信息,是通过运行catalog.sql脚本文件来产生的。

 

数据字典存储了如下信息:

  ü 数据库的逻辑结构和物理结构,如表空间和数据文件的信息。

  ü 所有数据库对象定义的信息。这些对象包括表、索引、视图、序列号、同义词、过程、函数、软件包和触发器等。

  ü 所有数据库对象的磁盘空间分配的信息,如对象所分配的磁盘空间和当前正在使用的磁盘空间。

  ü Oracle用户名。

  ü 每个用户所授予的权限和角色。

  ü 完整性约束的信息。

  ü 列的默认值。

  ü 审计信息等。

 

当数据管理员或用户发了DDLDCL语句时,oracle服务器都要将相关的信息记录到数据字典中。其中DML语句有;插入(insert)、修改(update

 

数据字典表:存储在系统表空间,信息来源于以$结尾的基表。

   user_xxxs:显示当前用户所拥有的对象信息。

   all_xxxs:显示当前用户所拥有的以及有权利查看的对象信息。

   dba_xxxs:显示数据库所有的对象信息,只有管理员用户才能访问。

  xxx可以为tablesindexesobjects等。

 

动态性能视:结构在内存中初始化,信息来源于内存和控制文件,数据库在mount状态可以访问的

是基于x$结尾的视图。

   v$xxx 当前实例 (v$instance   v$database   v$version)

   gv$xxx 所有实例

nomount阶段就有,open阶段有表空间视图

 

可使用模糊查询找到需要的数据字典视图 ,数据库处于open状态 。

SYS@openlab> select table_name from dict where lower(table_name) like 'dba%user%';

 

 SYS@openlab>desc dict

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 TABLE_NAME                                         VARCHAR2(30)

 COMMENTS                                           VARCHAR2(4000)

在数据库处于nomount状态下可以查询动态性能视图。

SYS@openlab> select count(*) from v$fixed_table;

 

  COUNT(*)

----------

      2062

 

数据字典应用实例:

SQL> connect sys/oracle as sysdba

Connected.

数据库名字、创建日期

SQL> select name,created,log_mode,open_mode

  2  from v$database;

NAME   CREATED      LOG_MODE     OPEN_MODE

--------- ------------ ------------ --------------------

OCP   14-JAN-18    NOARCHIVELOG     READ WRITE

查询版本信息

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE 11.2.0.4.0 Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

查看控制文件

SQL> col name for a60

SQL> select name from v$controlfile;

NAME

------------------------------------------------------------

/u01/app/oracle/oradata/ocp/control01.ctl

/u01/app/oracle/oradata/ocp/control02.ctl

查看重做日志组成员等信息

SQL> select group#,members,bytes,status,archived

  2  from v$log;

 

    GROUP#    MEMBERS    BYTES STATUS   ARC

---------- ---------- ---------- ---------------- ---

 1     1  104857600 INACTIVE   NO

 2     1  104857600 INACTIVE   NO

 3     1  104857600 CURRENT   NO

重做日志存放位置

SQL> col member for a60

SQL> select group#,member

  2  from v$logfile;

    GROUP# MEMBER

---------- ------------------------------------------------------------

 3 /u01/app/oracle/oradata/ocp/redo03.log

 2 /u01/app/oracle/oradata/ocp/redo02.log

 1 /u01/app/oracle/oradata/ocp/redo01.log

数据库备份和恢复策略,归档文件位置

SQL> archive log list

Database log mode        No Archive Mode

Automatic archival        Disabled

Archive destination        USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     4

Current log sequence        6

 

posted @ 2018-04-09 20:39  Sebastiane  阅读(1221)  评论(0编辑  收藏  举报