Oracle 中常用数据字典大总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 中常用数据字典大总结相关的知识,希望对你有一定的参考价值。
原文出处:小宝马的爸爸 - 梦想的家园
前面呢,也断断续续的介绍了一些诸如 Sql*Plus 等等关于 Oracle 的基本的内容,
对于 Oracle 这样的大型数据库呢,自身的运行和维护也是个不得了的事情,
所以在 Oracle 中存在 n 多的数据字典,数据字典作为一种元数据呢,
在 Oracle 中的作用就是存放整个数据库实例的基本信息,实质上也就是一组表,
这些数据字典呢,很多都是归 SYS 用户所有的。
这一篇博文呢就是针对 Oracle 的数据字典做一个比较全面的介绍,
介绍方法,就是列出一些常用的数据字典了,
下面列出的这些数据字典,本人均在 Oracle 11g R1 上,
通过 Oracle Sql Developer 进行过测试的,全部通过。
其中很多的数据字典都必须以 system 或者是 sysdba 用户登录才能够使用的。
---数据库实例的基本信息 desc v$instance; select * from v$instance; --数据文件的基本信息 desc v$datafile; select * from v$datafile; desc dba_data_files; select file_name,file_id,tablespace_name,bytes,blocks, status,online_status from dba_data_files; --临时文件的基本信息 desc dba_temp_files; select file_name,file_id,tablespace_name,status, bytes/1024/1024 大小MB from dba_temp_files; --控制文件的基本信息 desc v$controlfile; select name,status,is_recovery_dest_file, block_size,file_size_blks from v$controlfile; --日志文件的基本信息 desc v$logfile; select group#,status,type,member,is_recovery_dest_file from v$logfile; --数据库的基本信息 desc v$database; select * from v$database; select dbid,name,created,resetlogs_time,log_mode, open_mode,checkpoint_change#,archive_change#, controlfile_created,controlfile_type, controlfile_sequence#,controlfile_change#, controlfile_time,protection_mode,database_role from v$database; --日志文件参数信息 show parameter log_archive_dest; --访问参数文件 desc v$parameter; select num,name,type,value,display_value, isdefault,isses_modifiable, issys_modifiable,isinstance_modifiable from v$parameter; select * from v$parameter; select name,value,description from v$parameter; --后台进程信息 desc v$bgprocess; select paddr,pserial#,name,description,error from v$bgprocess; --DBA 用户的所有的表的基本信息 desc dba_tables; desc dba_tab_columns; select owner,table_name,column_name,data_type,data_length, global_stats,data_upgraded,histogram from dba_tab_columns; --DBA 用户的所有的视图的基本信息 desc dba_views; select owner,view_name,read_only from dba_views; --DBA 用户的所有的同义词的基本信息 desc dba_synonyms; select owner,synonym_name,table_owner, table_name,db_link from dba_synonyms; --DBA 用户的所有的序列的信息 desc dba_sequences; select sequence_owner,sequence_name,min_value,max_value, cycle_flag from dba_sequences; --DBA 用户的所有的约束的信息 desc dba_constraints; select owner,constraint_name,constraint_type, table_name,status from dba_constraints; --DBA 用户的所有的索引的基本信息 desc dba_indexes; select owner,index_name,index_type,table_owner,table_name, table_type,uniqueness,compression,logging,status from dba_indexes; --DBA 用户的所有的触发器的基本信息 desc dba_triggers; select owner,trigger_name,trigger_type, table_owner,table_name,column_name from dba_triggers; --DBA 用户的所有的存储过程的基本信息 desc dba_source; select owner,name,type,line,text from dba_source; --DBA 用户的所有的段的基本信息 desc dba_segments; select owner,segment_name,segment_type, tablespace_name,blocks,extents from dba_segments; --DBA 用户的所有的区的基本信息 desc dba_extents select owner,segment_name,segment_type, tablespace_name,extent_id,file_id,blocks from dba_extents; --DBA 用户的所有的对象的基本信息 desc dba_objects; select owner,object_name,subobject_name, object_id,data_object_id,object_type, created,status,namespace from dba_objects; --当前用户可以访问的所有的基表 desc cat; select table_name from cat; --当前用户可以访问的所有的基表,视图,同义词 desc system.tab; select tname,tabtype,clusterid from system.tab; --构成数据字典的所有的表信息 desc dict; select table_name,comments from dict; -- 查询关于表空间的一些基本的数据字典 desc dba_tablespaces; select tablespace_name,block_size,status, logging,extent_management from dba_tablespaces; desc dba_free_space; select tablespace_name,file_id,block_id, bytes/1024/1024 大小MB,blocks,relative_fno from dba_free_space; --归档状态的一些基本信息 desc v$archived_log; select name,dest_id,blocks,block_size, archived,status,backup_count from v$archived_log; --关于内存结构的一些信息 desc v$sga; select name,value/1024/1024 大小MB from v$sga; desc v$sgastat; select pool,name,bytes from v$sgastat; desc v$db_object_cache; select owner,name,db_link,type,namespace,locks from v$db_object_cache; desc v$sql; select sql_text,sql_id,cpu_time from v$sql;
上面的呢就是 Oracle 中较常使用的数据字典了,
需要提一下的是,上面有很多都是以 “dba_”开头的数据字典,
比如有 dba_tables ,其实呢,这个是列出了数据库中所有的数据,
比如使用 dba_tables 就会列出数据库中所有的数据表(n 多),
但是您可以使用 user_tables 或者 all_tables 来代替 dba_tables,当然有一些是没有与之对应的,
这样呢,就只会列出当前登录用户允许查看的数据表了,
对于以“dba_”基本上都是有与之相对应的“user_”和“all_”,
其中“user_”对应的是记录当前登陆用户的对象,
而“all_”则是记录当前登陆用户的对象信息以及被授权访问的对象信息,
而“dba_”是包含数据库实例的所有对象信息!!!
以上是关于Oracle 中常用数据字典大总结的主要内容,如果未能解决你的问题,请参考以下文章