设为首页 收藏本站
查看: 764|回复: 0

[经验分享] Oracle 数据库字典 视图 基表

[复制链接]

尚未签到

发表于 2016-7-22 09:22:58 | 显示全部楼层 |阅读模式
1.数据字典 (存放在sys方案里面)
1.是oracle数据库中重要的组成部,提供了数据库的一些系统信息。
2.它是只读表(数据字典基表)和视图(数据字典视图)的集合,数据库字典的所有者为sys用户。
3.用户只能在数据库字典上执行查询的操作,而其他的维护和修改都是由系统自动完成的

2.数据字典基表  
1.数据字典基表存储数据库的基本信息
2.只有Oracle才能写和读取这些表。用户很少能够直接访问这些表,因为它们是非标准的,大多数数据以加密格式存储。
3.但是,用户可访问视图:总结和显示数据字典基表的信息的视图。这些视图将基表的信息解密成有用的信息,如用户或者表名。大多数用户能够访问这些视图,但不能访问基表
3.数据字典视图

1.数据字典视图是基于数据字典基表建立的视图
2.普通用户可以通过查询系统数据字典视图获取系统信息
3.数据字典视图主要包括
A.静态数据字典视图:user_xxx,all_xxx,dba_xxx 三种类型
B.动态数据字典视图:动态性能视图
4.常用静态数据库字典视图
dba_data_files:通常用来查询关于数据库文件的信息   
dba_db_links:包括数据库中的所有数据库链路,也就是databaselinks。
dba_extents:数据库中所有分区的信息                     
dba_free_space:所有表空间中的自由分区
dba_indexs:关于数据库中所有索引的描述                 
dba_ind_columns:在所有表及聚集上压缩索引的列
dba_objects:数据库中所有的对象                             
dba_rollback_segs:回滚段的描述
dba_segments:所有数据库段分段的存储空间            
dba_synonyms:关于同义词的信息查询
dba_tables:数据库中所有数据表的描述                     
dba_tabespaces:关于表空间的信息
dba_tab_columns:所有表描述、视图以及聚集的列      
dba_tab_grants/privs:对象所授予的权限
dba_ts_quotas:所有用户表空间限额                        
dba_users:关于数据的所有用户的信息
dba_views:数据库中所有视图的文本
4.动态性能视图
1.记载了数据库例程启动后的相关信息
2.当启动oracle service时 系统会建立动态性能试图
3.当停止oracle service的时候,系统会删除动态性能视图
4.ORACLE 的所有动态性能视图都是以 v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且同义词都是以V$开始的 例如 v_$datafile 的同义词是v$datafile;
5. 动态性能的所有者是sys,一般情况下,由dba和特权用户来查询动态性能视图。
6.常用动态性能视图  
v$thread:从控制文件中获取的线程的信息;
v$tablespace:从控制文件中获取的表空间的信息;
v$spparameter:显示SPFILE文件中的参数信息,如果SPFILE没有被用来启动实例,则视图中的所有ISSPECIFIED列将会是FALSE;
v$sga:显示SGA的信息;
v$instance:显示当前实例的状态;
v$controlfile:显示控制文件列表;  
v$database:从控制文件中获取的数据库的信息;
v$datafile:数据库使用的数据文件信息                    
v$librarycache:共享池中SQL语句的管理信息
v$lock:通过访问数据库会话,设置对象锁的所有信息  
v$log:从控制文件中提取有关重做日志组的信息
v$logfile有关实例重置日志组文件名及其位置的信息     
v$parameter:初始化参数文件中所有项的值
v$process:当前进程的信息                                 
v$rollname:回滚段信息  
v$rollstat:联机回滚段统计信息                              
v$rowcache:内存中数据字典活动/性能信息
v$session:有关会话的信息                                    
v$sesstat:在v$session前会话的统计信息  
v$sqlarea:共享池中使用当前光标的统计信息,光标是一块内存区域,有OracSQL语句时打开。
v$statname:在v$sesstat个统计的含义   
v$sysstat:基于当前操作会话进行的系统统计

5.数据库不同状态的时候视图的变化
1.动态性能视图一般来说,大部分用户是不能够访问的,特别是数据库系统的终端用户。一般情况下,只有数据库管理员角色的用户才能够访问。而且,当数据库其状态不同时,可以访问的数据字典动态性能视图也不同
数据库不同状态:
A:Nomount状态时
  当我们连接到数据库服务器,启动某个例程的时候,数据库本身还没有被加载,此时,就叫做Nomount状态。在这个状态下,即使是数据库管理员,其可以访问的数据字典动态性能视图也是非常有限的。当数据库某个例程启动之后,数据库会打开某些参数文件,并且会在内存中分配SGA区并启动相关的后台进程。由于此时没有加载数据库,所以,数据库管理员之能够访问从SGA区获得信息的动态性能视图。
B:Mount状态时
当我们去加载某个数据库的时候,Oracle会打开其参数文件中指定的控制文件,以实现加载数据库的过程。此时,数据库管理员访问的数据字典性能视图就会多一点,除了可以访问从SGA区获得信息的动态性能视图,还可以访问从控制文件中获得信息的动态性能视图。也就是说,当数据库出于Mount状态时,其动态性能数据视图的数据来源有两个部分,一是来自于SGA区的,二是来自于控制文件中的
C:Open状态时
当数据库打开的时候,数据库系统会根据控制文件中所定义的信息,打开所有的数据文件以及对应的重做日至文件。这个时候,我们数据库管理员可以访问的动态性能视图就包括三个部分,一是来自与SGA区的信息;二是来自于控制文件中的信息,三是Oracle数据库性能的相关动态性能视图
6.举例:查询用户自己拥有多少张表(自己的表)
1.select table_name from user_tables //查询权限属于自己的表
7.查询当前用户可以访问的所有表 (其中 有别人授权的表)
select table_name from all_tables; //查询当前用户可以访问的所有表 (别人授权访问的表
8.显示所有方案拥有的数据库表
select table_name from dba_tables;//但是查询这种数据库字典视图,要求用户     必须用dba角色和select any table 系统权限
9.查询数据库中所有用户的详细信息
select * from dba_users;
10.查询表空间
select tablespace_name from dba_tablespaces;
11.显示当前用户可以查看的所有数据字典视图
select * from dict where comments like ‘%grant%’
12.显示当前数据库的全称
select * from global_name;
13.所以上面的查询结果中数量是 dba_tables > all_tables > user_tables;
14.oracle用户所拥有的权限和角色都存放在数据库字典中

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247647-1-1.html 上篇帖子: 关于Oracle优化的几点建议 下篇帖子: (转)ORACLE SQL_TRACE的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表