概述
数据字典
由ORACLE服务器创建和维护的一组只读系统表。
存放了在数据库和数据库对象的信息,ORACLE依靠这些信息管理维护数据库。ORACLE服务器在数据库创建时运行SQL.BSQ自动生成这些基表,通过运行catalog.sql脚本产生数据字典视图,系统运行期间,数据库结构发生的变化会及时的在相应数据字典中修改、记录。DDL、DCL、DML语句能引起变化
数据字典分两类:一种为基表,另一种为数据字典视图。
数据字典存储了如下数据库信息:
数据库逻辑结构和物理结构如表空间、数据文件信息
所有数据库对象定义的信息,包括表,索引,视图,序列号,同义词,过程,函数等
所有数据库对象的磁盘空间分配信息,如对象所分配的磁盘空间和当前正用的磁盘空间和当前正在使用的磁盘空间。ORACLE用户名,用户所授予的权限和角色,完整性约束的信息,列的默认值,审计信息。
1.内部表--X$开头,描述内存结构 ---X$开头需要使用SYS用户查询,使用具有SYSDBA角色非SYS用户不可查。
x$bh,x$klbh,x$ksmp,x$kglob, 在$ORACLE_HOME/bin/oracle 程序内定义2.数据字典表-也叫基表-存放在system表空间--只能在数据库OPEN状态下能查
tab$,obj$,col$,con$ 约束,seg$,ts$,bootstrap$回滚分为:系统回滚,一般回滚。
系统回滚
SYS@ bys3>select * from v$rollname;
USN NAME
---------- ----------------------------------------
0 SYSTEM --DDL操作,对数据字典表的操作,产生少量REDO UNDO。
1 _SYSSMU1_3056155133$
2 _SYSSMU2_3692097322$
3.数据字典视图是静态视图--权限控制
即数据库发生变化时,ORACLE并不及时刷新这些视图中信息。数据字典视图分为三大类:
user_* 有关用户所拥有的对象的信息,即用户自己创建的对象的信息。all_* 有关用户可以访问的对象的信息,即用户自己创建的对象的信息再加上其它用户创建的对象但该用户有权访问的信息。
dba_* 有关整个数据库对象的信息。 只有DBA用户能使用。
数据字典视图包含以下信息:对象属主,用户拥有的权限,对象的创建时间,对象存储参数的设置,对象存储空间的使用情况。
SQL> select owner,object_name,object_id,created,status from all_objects where owner='SCOTT';
SQL> select table_name from user_tables where owner not like '%SYS%';
SQL> select * from user_catalog;
select * from cat;
select * from tab;
4.动态性能表 是一组虚表,以v$开头,v$dbfile;
查看数据库名,创建时间,日志模式,打开模式SQL> select name,created,log_mode,open_mode from v$database;
NAME CREATED LOG_MODE OPEN_MODE
---------- ----------- ------------ --------------------
ORCL 2012-12-20 NOARCHIVELOG READ WRITE
select * from v$log_history; 最近的日志切换记录
查看操作系统主机名,实例名,软件版本
SQL> select host_name,instance_name,version from v$instance;
HOST_NAME INSTANCE_NAME VERSION
---------- ---------------- -----------------
PC-17 orcl 11.2.0.1.0
查看软件版本详细信息
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
查看控制文件信息
SQL> select * from v$controlfile;
STATUS NAME IS_RECOVERY_DEST_FILE BLOCK_SIZE FILE_SIZE_BLKS
------- ------------------------------------------------------------ --------------------- ---------- --------------
G:APPADMINISTRATORORADATAORCLCONTROL01.CTL NO 16384 594
G:APPADMINISTRATORFLASH_RECOVERY_AREAORCLCONTROL02.CTL NO 16384 594
G:APPADMINISTRATORFLASH_RECOVERY_AREAORCLCONTROL03.CTL NO 16384 594
查看重做日志的配置信息。
SQL> select group#,members,bytes/1024/1024 M,status,archived from v$log;
GROUP# MEMBERS M STATUS ARCHIVED
---------- ---------- ---------- ---------------- --------
1 1 50 CURRENT NO
2 1 50 INACTIVE NO
3 1 50 INACTIVE NO
查看日志文件的位置。
SQL> select * from v$logfile;
GROUP STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE
----- ------- ------- -------------------------------------------------- ---------------------
3 ONLINE G:APPADMINISTRATORORADATAORCLREDO03.LOG NO
2 ONLINE G:APPADMINISTRATORORADATAORCLREDO02.LOG NO
1 ONLINE G:APPADMINISTRATORORADATAORCLREDO01.LOG NO
查看表空间名,区块大小,状,UNDO是还原表空间,TEMP临时表空间,排序用,
SQL> select tablespace_name,block_size,status,contents,logging from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE STATUS CONTENTS LOGGING
------------------------------ ---------- --------- --------- ---------
SYSTEM 8192 ONLINE PERMANENT LOGGING
SYSAUX 8192 ONLINE PERMANENT LOGGING
UNDOTBS1 8192 ONLINE UNDO LOGGING
TEMP 8192 ONLINE TEMPORARY NOLOGGING
USERS 8192 ONLINE PERMANENT LOGGING
查看数据文件的相关信息。
SQL> select file_id,file_name,tablespace_name,status,bytes/1024/1024 M from dba_data_files;
FILE_ FILE_NAME TABLESPACE STATUS M
----- -------------------------------------------------- ---------- --------- ----------
4 G:APPADMINISTRATORORADATAORCLUSERS01.DBF USERS AVAILABLE 5
3 G:APPADMINISTRATORORADATAORCLUNDOTBS01.DBF UNDOTBS1 AVAILABLE 85
2 G:APPADMINISTRATORORADATAORCLSYSAUX01.DBF SYSAUX AVAILABLE 710
1 G:APPADMINISTRATORORADATAORCLSYSTEM01.DBF SYSTEM AVAILABLE 690
查看系统中用户的账户信息
SQL> select username,created,ACCOUNT_STATUS from dba_users;
5.系统表
ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYSYTEM进行查询。几个重要的表或者视图如下:
v$controlfile:控制文件的信息;
v$datafile:数据文件的信息;
v$log:日志文件的信息;
v$process:处理器的信息;
v$session:会话信息;
v$transaction:事务信息;
v$resource:资源信息;
v$sga:系统全局区的信息。
上面的视图名中的‘v$’,只是视图名字中的字符。类似于上面的视图或表还有很多,位于:
$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL文件中。
这些视图或表可以在SQLPLUS中用SELECT语句进行查询。
最后
以上就是留胡子橘子为你收集整理的数据字典简介的全部内容,希望文章能够帮你解决数据字典简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复