欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle数据库数据字典应用

程序员文章站 2022-04-19 18:17:35
oracle数据字典 数据字典是由oracle服务器创建和维护的一组只读的系统表。数据字典分为两类:一是基表,二是数据字典视图。 数据字典视图包括用户名、用户权限、对象名、约束和审计等信息,是通过运行catalog.sql脚本文件来产生的。 数据字典存储了如下信息: ü 数据库的逻辑结构和物理结构, ......

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