• 数据字典和动态性能视图(笔记一) 中庸


      最近开始学习oracle,现把笔记一分享如下.

     一.数据字典

         数据字典是oracle数据库的最重要的组成部分,它提供了数据库的一些系统信息。就如人的身高,体重,肤色等静态信息.它是只读表和视图的集合,数据字典的所有者是sys用户.

        数据字典信息是从数据文件中获取的

        用户只能在上面执行查询操作,其维护和修改是系统自动完成的.

        包含两个部分:数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能访问数据字典的基表,数据字典视图是基于数据字典基表所建立的视图,普通用户可以查询数据字典试图获取系统信息。

       数据字典试图主要包括三种类型:user_xxx,all_xxx和dba_xxx

       几个常用视图

              一.表

                 1.user_tables 记录当前用户所拥有的所有表,它只返回用户所对应方案的所有表

                   如:select table_name from user_tables;

                 2.all_tables 用于记录当前用户可以访问的所有表.它不仅包括当前用户所对应方案所拥有的所有表,而且包括当前

                    用户可以访问的其他方案的表

                    如:select table_name from all_tables;

           3.dba_tables 它会显示所有方案所拥有的所有表.查询这个试图,要求用户是dba角色或者拥有select any table的                  系统权限,会返回system,sys,scott....方案中的所有表.

               如:select table_name from dba_tables;

    二.用户,权限和角色

    当建立用户时,会把用户信息存放到数据字典里.当给用户赋予某角色或者某权限时,也会把权限和角色信息存放到数据字典中

    1.dba_users 显示数据库中所有用户的信息

    2.dba_sys_privs 显示用户所拥有的系统权限

    3.dba_tab_privs 显示用户所拥有的对象权限

    4.dba_role_privs 显示用户所拥有的角色权限

    5.dba_roles 显示数据库中所有角色信息

    6.dba_tablespaces 显示数据库中所有表空间信息

    7.role_sys_privs 显示角色的系统权限

    8.global_name 显示当前数据库的全称

    例子:查询scott用户所拥有的角色 select * from dba_role_privs where GRANTEE='SCOTT';

           查询某角色的系统权限 select * from dba_sys_privs where GRANTEE='CONNECT';

                                         select * from role_sys_privs where role='CONNECT';

           查询某用户拥有的角色 select * from dba_role_privs where GRANTEE='SCOTT';

      二.动态性能视图

            动态性能视图,用来记录当前例程的活动信息.

            动态性能视图中的信息是从SGA,控制文件和oracle数据库相关性能信息中获得的(当然数据库的状态不同时,

              能访问的视图不同,详细请见最下附注)

            oracle server启动时,系统就会建立动态性能视图.当oracle server停止时.系统就会删除动态性能视图.

           oracle的所有动态性能视图都是以v_$开始的.并且oracle为每个动态性能视图都提供了相应的同义词.并且

              同义词是以v$开始的.例如v_$datafile的同义词是v$datafile;

           动态性能视图的所有者为sys.一般是dba或者特权用户用来查询动态性能视图.

          常用动态性能视图

               1.v$fixed_table

                     用途:用于列出所有可用的动态性能视图和动态性能表

                     示例:select name from v$fixed_table where name like 'V$%';

               2.v$instance

                     用途:获取当前例程的详细信息

                     示例:select instance_name,host_name,status from   v$instance;

               3.v$SGA

                     用途:显示SGA主要组成部分

                     示例:select * from v$SGA;

               4.v$parameter

                      用途:取得初始化参数的详细信息

                     示例:select name,value,description from v$parameter;

               5.v$version

                     用途:获取ORACLE版本的详细信息 

                     示例:select * from v$version;

               6.v$option

                     用途:显示已经安装的ORACLE选项

                     示例:select * from v$option;

               7.v$session

                     用途:显示会话的详细信息

                     示例:select sid,username from v$session where username is not null;(null表示后台进程会话)

               8.v$process

                     用途:显示与ORACLE相关的所有进程信息(包括后台进程和服务器进程)

                     示例:select * from v$process;

               9.v$bgprocess

                     用途:显示后台进程详细信息

                     示例:select name,description from v$bgprocess;

               10. v$database

                     用途:取得当前数据库的详细信息 

                     示例:select name, log_mode,created from v$database;

               11.v$controlfile

                     用途:取得当前数据库所有控制文件的信息

                     示例:select name from v$controlfile;

               12.v$dbfile

                     用途:取得数据文件编号及名称 

                     示例:select * from v$dbfile;

               13.v$logfile              

                     用途:显示重做日志成员的信息

                     示例:select * from v$logfile;

               14.v$log              

                     用途:显示日志组的详细信息

                     示例:select group#,thread#,sequence#,bytes,members,status   from v$log;

               15.v$tablespace                

                     用途:显示表空间信息

                     示例:select * from v$tablespace;

               16.v$tempfile               

                     用途:显示数据库所包含的临时文件

                     示例:select name from v$tempfile;

               17.v$locked_object                

                     用途:显示被加锁的数据库对象

                     示例:select * from v$locked_object; 

               18.v$lock               

                     用途:显示锁信息

                     示例:select * from v$lock;

           附注:

       oracle启动分为三步:
       nomount --根据参数文件启动实例(instance)只能访问SGA相关的视图.
       mount --加载控制文件,让实例和数据库相关联 能访问SGA和控制文件相关的视图.
       open --根据控制文件找到并打开数据文件和日志文件,从而打开数据库.能访问全部视图.

  • 相关阅读:
    Eclipse的Tomcat插件安装
    Struts1.2 struts-config.xml配置详解
    JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    dede 忘记密码在数据库中修改方法
    如何将XML文件中的数据传送并保存在关系数据库中
    lamp
    开发人员必读的11本最具影响力书籍
    org.apache.commons.lang.StringUtils类
    B. Jzzhu and Sequences
    线段树——习题、lazy解析
  • 原文地址:https://www.cnblogs.com/liangjie/p/2090667.html
Copyright © 2020-2023  润新知