一、数据字典简介

有关数据字典介绍详见官网Concepts-part II Oracle Database Architecture-7 The Data Dictionary(10g)。

归纳总结有以下特点:
数据字典是由基表(x$)、视图、同义词构成,由$ORACLE_HOME/rdbms/admincatalog.sql脚本生成。其中基表是存储有关数据库的底层表,我们无法直接访问。
下面主要介绍视图。
所有视图可通过查询dictionary表获取,如查询控制文件相应视图:
SQL> select table_name from dictionary where table_name like '%CONTROLFILE%';
TABLE_NAME
------------------------------
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
GV$CONTROLFILE
GV$CONTROLFILE_RECORD_SECTION
V$BACKUP_CONTROLFILE_DETAILS
V$BACKUP_CONTROLFILE_SUMMARY
6 rows selected.
注:以上查询结果中V$与GV$一一对应,其中v$代表单实例环境下视图,GV$代表集群环境下视图。
二、视图分类
视图可分为静态视图与动态视图,其主要区别如下:
静态视图:
1、在数据库open状态下访问,用于了解数据库的物理结构信息。
2、大部分以dba,all,user打头,并多用于复数形式,其中
user_:存储当前用户所拥有的对象的相关信息;
all_:存储当前用户能够访问的对象(包括用户所拥有的对象和别的用户授权访问的对象)的信息;
dba_:存储所有用户对象的信息(默认只能有sys/system用户访问);
动态视图:
1、大部分在mount下就可以访问,反映数据库实时的状态。
2、大部分以v$开头,多用单数形式,从控制文件或内存中读出。
3、从v$fixed_table这个视图查到所有的动态视图的名称。
4、用于调优和数据监控。
例1:mount状态访问静态、动态视图
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 419430400 bytes
Fixed Size 1219760 bytes
Variable Size 121635664 bytes
Database Buffers 293601280 bytes
Redo Buffers 2973696 bytes
Database mounted.
--未开库状态访问静态视图失败
SQL> select tablespace_name,contents,status from dba_tablespaces;
select tablespace_name,contents,status from dba_tablespaces
*
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only
----未开库状态访问动态视图成功(动态视图信息来自控制文件或内存,mount状态控制文件是打开的)
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS
SYSAUX
TEMPTS
USERS
SQL> alter database open;
Database altered.
--开库状态,可访问静态视图
SQL> select tablespace_name,contents,status from dba_tablespaces;
TABLESPACE_NAME CONTENTS STATUS
------------------------------ --------- ---------
SYSTEM PERMANENT ONLINE
UNDOTBS UNDO ONLINE
SYSAUX PERMANENT ONLINE
TEMPTS TEMPORARY ONLINE
USERS PERMANENT ONLINE
例2:scott用户访问不同静态视图
SQL> conn scott/tiger
Connected.
--非sysdba权限无法访问dba_tables
SQL> select table_name,tablespace_name,blocks from dba_tables;
select table_name,tablespace_name,blocks from dba_tables
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select table_name,tablespace_name,blocks from user_tables;
TABLE_NAME TABLESPACE_NAME BLOCKS
------------------------------ ------------------------------ ----------
SALGRADE USERS 5
BONUS USERS 0
EMP USERS 5
DEPT USERS 5
SQL> select table_name,tablespace_name,blocks from all_tables;
TABLE_NAME TABLESPACE_NAME BLOCKS
------------------------------ ------------------------------ ----------
PLAN_TABLE SYSTEM 1
PLAN_TABLE$
IMPDP_STATS
KU$NOEXP_TAB
OL$NODES
OL$HINTS
OL$
DEF$_TEMP$LOB SYSTEM 0
ODCI_WARNINGS$
ODCI_SECOBJ$
WRI$_ADV_ASA_RECO_DATA
TABLE_NAME TABLESPACE_NAME BLOCKS
------------------------------ ------------------------------ ----------
PSTUBTBL
AUDIT_ACTIONS SYSTEM 1
STMT_AUDIT_OPTION_MAP SYSTEM 1
TABLE_PRIVILEGE_MAP SYSTEM 1
SYSTEM_PRIVILEGE_MAP SYSTEM 1
DUAL SYSTEM 1
SALGRADE USERS 5
BONUS USERS 0
EMP USERS 5
DEPT USERS 5
21 rows selected.
三、常用静态视图
SQL> conn /as sysdba
Connected.
--查询控制文件信息
SQL> col name for a50;
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 /u01/app/oracle/oradata/PROD/disk3/system01.dbf
2 /u01/app/oracle/oradata/PROD/disk4/undotbs01.dbf
3 /u01/app/oracle/oradata/PROD/disk4/sysaux01.dbf
4 /u01/app/oracle/oradata/PROD/disk3/users01.dbf
--查询表空间信息
SQL> select name from v$tablespace;
NAME
--------------------------------------------------
SYSTEM
UNDOTBS
SYSAUX
TEMPTS
USERS
--查询日志信息
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 10 104857600 2 NO INACTIVE 355469 03-MAY-13
2 1 11 104857600 2 NO INACTIVE 377693 02-APR-14
3 1 12 104857600 2 NO CURRENT 399207 02-APR-14
--查询日志文件信息
SQL> col member for a50 
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
1 ONLINE /u01/app/oracle/oradata/PROD/disk1/redo01.log NO
1 ONLINE /u01/app/oracle/oradata/PROD/disk2/redo01.log NO
2 STALE ONLINE /u01/app/oracle/oradata/PROD/disk1/redo02.log NO
2 STALE ONLINE /u01/app/oracle/oradata/PROD/disk2/redo02.log NO
3 ONLINE /u01/app/oracle/oradata/PROD/disk1/redo03.log NO
3 ONLINE /u01/app/oracle/oradata/PROD/disk2/redo03.log NO
6 rows selected.
--查询归档信息
SQL> select name from v$archived_log;
no rows selected

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21251711/viewspace-1139019/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21251711/viewspace-1139019/

data dictionary(数据字典)相关推荐

  1. 数据库的数据字典(Data dictionary)

    数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录.主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典.被动数据字典 ...

  2. MySQL 深潜 - 一文详解 MySQL Data Dictionary

    简介: 在 MySQL 8.0 之前,Server 层和存储引擎(比如 InnoDB)会各自保留一份元数据(schema name, table definition 等),不仅在信息存储上有着重复冗 ...

  3. knllgobjinfo: MISSING Streams multi-version data dictionary!!! 的一次处理 (二)

    配置好stream后,在使用中,传输DB_HQUEUE  表时,提示错误,这个表本来应该是不传输的. 处理方式,在捕获进程的否定规则里增加这个表的信息,以下是 1.停止源端的捕获进程. SQL> ...

  4. Mysql : InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!

    Mysql报错,是因为自己之前装的高版本然后再装低版本导致的, [FATAL] InnoDB: Table flags are 0 in the data dictionary but the fla ...

  5. /common/nlp/data/dictionary/CoreNatureDictionary.mini.txt加载失败

    核心词典/common/nlp/data/dictionary/CoreNatureDictionary.mini.txt加载失败 原因:配置文件中的hdfs路径未被识别 root=hdfs://my ...

  6. Docker安装mysql 报错 InnoDB: Table flags are 0 in the data dictionary but the flags in file

    docker 安装mysql5.7 docker run -d -p 3306:3306 -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/da ...

  7. 数据字典(Data Dictionary)

    字典顾名思义就像我们现实中用的字典一样,当某个字或词不懂时就去查字典.字典中装载着我们使用的语言信息.数据据也像一个字典一样装载着很多数据信息. 字典里存贮数据库结构信息.比如我们经常用到的关于数据库 ...

  8. Failed to find valid data directory.Data Dictionary initialization failed.

    用命令mysqld --console查看报错,如下: mysqld  --initialize 命令之后并没有建立data文件夹. 错误信息显示data目录没有创建, 查找小度,找到答案, [mys ...

  9. [InnoDB] [FATAL] Tablespace id is xx in the data dictionary but in file .\test\t3.ibd it is xx!

    这个错误字面意思看就是库名表名一致,但是表空间id已经不同了.通常innodb_file_per_table启用,当innodb表发生重建的时候,例如truncate.optimize table.r ...

最新文章

  1. 数据结构(十)栈的作用--大数的加法运算
  2. Linux里面的正则表达式!
  3. python官网怎么改中文-如何配置pycharm为中文?
  4. asp.net三层架构应用详解【收录】
  5. 前端学习(703):white小练习
  6. Android WiFi 经常掉线出现的几个原因分析!
  7. H5实例教学--ThreeJs 实现粒子动画飘花效果
  8. 由一个网站注册验证码带来的思考
  9. Protable 自定义添加搜索栏和toolbar
  10. libgsm.a relocation R_X86_64_PC32 can not be used when making a shared object; recompile with -fPIC
  11. 关于Jquery ajax调用一般处理程序Handler报500 错误(Internal Server Error)解决办法
  12. AI矢量绘图_Illustrator 2022矢量图形编辑制作
  13. 小刘同学的第一百五十五篇日记
  14. sublime主题配色
  15. 高分一号二号PMS数据处理
  16. Wince Battery driver
  17. i2c同时读取两个光敏传感数据思路
  18. html动画翻书特效,css3 做一个类似于翻书特效的3D动画
  19. ajax获取php页面数据,ajax如何取php页面的数据
  20. 美国中小学停课,20个优质在线学习平台推荐

热门文章

  1. 神州数码易拓TIOTOP ERP查询作业模板-上单头下单身查询作业
  2. 简述android源代码的编译过程,Android源码编译过程详述
  3. shopnc 实现手机、邮箱、用户名登录
  4. 5.19 英语单词小计
  5. 计算机也有了很大的发展英语,大学若是英语四六级没过,这些“福利”与你无缘,学生必须要重视...
  6. 数据结构-链表及相关算法
  7. 暴风影音笔试题 2014 武汉站
  8. 一种迪文屏软件在线升级方法
  9. error: identifier “AT_CHECK“ is undefined
  10. go 使用 mysql goup by报错