在数据库的运维管理中,熟悉数据库系统视图的使用可以帮助我们了解数据库各方面的状态信息。一般数据库的系统视图分为数据字典视图和动态性能视图,数据字典视图用于显示数据库的元数据信息和系统状态信息包括各种数据库对象、用户、角色、权限等;动态性能视图用于显示数据库的性能统计信息和监控信息,主要与性能有关。
一、数据字典视图
ORACLE的静态数据字典视图按照前缀的不同通常被分为三类:USER_类视图包含了用户所拥有的相关对象信息,用户可以通过这个视图查询自己拥有的对象信息;ALL_类视图包含了用户有权限访问的所有对象的信息;DBA_类视图包含了数据库所有相关对象的信息,一般是SYS用户才可以访问。下图描述了三种视图的关系:
ORACLE的数据字典视图是由以$结尾的数据字典表创建而来。作为DBA,一般使用最多的就是DBA_类视图,以下列举了一些常用的数据字典视图:
dba_extents 存储分配信息 包括数据段名,表空间名和分区编号,分区大小 dba_indexes 索引信息 包含索引类型, 唯一性, 索引作用等表的信息 dba_ind_columns 索引列信息 包括索引上的列的排序方式等信息 dba_object 对象信息, 包括对象名称,类型 ,创建时间等信息 dba_segments 表和索引的数据段信息,包括表空间,存储设置等信息 dba_sequences 序列信息 包含序列名称 ,循环性,最大值等信息 dba_source 除触发器之外的所有存储过程,函数,包的源代码信息 dba_synonyms 同义词信息 包括引用的对象等信息 dba_tab_columns 表和视图的列信息 ,包括列的数据类型等信息 dba_tables 表信息 包括表所属的表空间 ,存储参数 ,数据行数量等信息。 dba_users 用户信息 包括用户临时和默认的表空间的类型 dba_views 视图信息
二、动态性能视图
在数据库启动时,Oracle动态创建X$表,在此基础之上,Oracle创建了GV$和V$视图,这就是Oracle的动态性能视图。GV$视图的产生是为了满足RAC环境的需要,在RAC环境中,查询GV$视图,返回的是所有实例信息,而每个V$视图是基于GV$视图,增加了INST_ID列的WHERE条件限制而建立,只包含当前连接实例信息。一般只有sys用户和拥有DBA角色的用户可以访问,其他用户访问需要授予该对象的select权限或SELECT_CATALOG_ROLE角色。
实际上通常大部分用户访问的V$对象,并不是视图,而是指向V_$视图的同义词;而V_$视图是基于真正的V$视图(这个视图是基于X$表建立的)创建的。查询数据字典表dba_objects可以看到存在V_$INSTANCE视图和V$INSTANCE同义词。
通过查询v$fixed_view_definition视图查看视图的定义,可以看到GV$视图基于X$表创建,然后V$视图基于GV$视图创建。其实,Oracle的GV$视图和V$视图是无法访问的,他们是在数据库创建过程中建立起来的,内置于数据库中,Oracle通过v$fixed_view_definition视图为我们展现这些定义。我们访问都是他们的同义词。v$fixed_view_definition视图是我们研究Oracle动态性能视图的一个入口。
在ORACLE中,重要的动态性能视图很多,这是需要在日常运维过程中逐渐熟悉和积累的,下面也列举几个常用的:
v$access 包含当前被锁定的数据库对象及正在访问他们的会话 v$archive 包含归档所需的重做日志文件中的信息 v$archived_log 包含从控制文件中获取的归档日志信息。 v$bgprocess 包含数据库后台进程信息 v$buffer_pool 包含当前实例中所有可用缓冲池的信息 v$controlfile 包含控制文件信息 v$database 包含数据库信息 v$datafile 包含数据文件信息 v$dlm_all_locks 包含当前所有锁 v$fixed_table 包含所有可用的动态性能视图和动态性能表的信息 v$sysstat 包含当前实例的性能统计信息 v$instance 包含当前实例的详细信息 v$sga 包含 SGA 区的主要组成部分的信息 v$sgainfo 包含 SGA 区的详细消息 v$parameter 包含参数信息 v$session 包含当前所有会话信息 v$process 包含当前系统所有进程信息 v$bgprocess 包含数据库所有后台进程信息 v$lock 包含锁的信息 v$locked_object 包含被加锁的数据库对象信息
标签:GV,包含,DBA,数据库,信息,dba,视图,MySQL From: https://www.cnblogs.com/coygfly/p/18223280