数据字典简介
数据字典简介
数据字典
由ORACLE服务器创建和维护的一组只读系统表。
存放了在数据库和数据库对象的信息,ORACLE依靠这些信息管理维护数据库。
ORACLE服务器在数据库创建时运行SQL.BSQ自动生成这些基表,通过运行catalog.sql脚本产生数据字典视图,系统运行期间,数据库结构发生的变化会及时的在相应数据字典中修改、记录。DDL、DCL、DML语句能引起变化
数据字典分两类:一种为基表,另一种为数据字典视图。
数据字典存储了如下数据库信息:
数据库逻辑结构和物理结构如表空间、数据文件信息
所有数据库对象定义的信息,包括表,索引,视图,序列号,同义词,过程,函数等
所有数据库对象的磁盘空间分配信息,如对象所分配的磁盘空间和当前正用的磁盘空间和当前正在使用的磁盘空间。ORACLE用户名,用户所授予的权限和角色,完整性约束的信息,列的默认值,审计信息。
数据字典视图是静态视图
即数据库发生变化时,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; SQL> select * from cat; 动态性能表 是一组虚表,以v$开头, 查看数据库名,创建时间,日志模式,打开模式 SQL> select name,created,log_mode,open_mode from v$database; NAME CREATED LOG_MODE OPEN_MODE ---------- ----------- ------------ -------------------- ORCL 2012-12-20 NOARCHIVELOG READ WRITE 查看操作系统主机名,实例名,软件版本 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:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL NO 16384 594 G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL NO 16384 594 G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL03.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:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG NO 2 ONLINE G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG NO 1 ONLINE G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.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:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF USERS AVAILABLE 5 3 G:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF UNDOTBS1 AVAILABLE 85 2 G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF SYSAUX AVAILABLE 710 1 G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF SYSTEM AVAILABLE 690 查看系统中用户的账户信息 SQL> select username,created,ACCOUNT_STATUS from dba_users;
3.系统表
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语句进行查询。