前缀

  • X$:基表
  • V_$:基于X$表创建的动态性能视图。只有sys用户可以访问。
  • V$: V$视图(前缀为V_$)的同义词,数据库管理员和其他用户通过同义词访问 V$视图,而不是直接访问V_$对象

补充一下老师问的问题

  • 物理结构有哪些,分别查看一下
  • 逻辑结构有哪些,分别查看一下
  • 还有一个关于用户的,我忘了hh

1. 简单了解Oracle数据库具有哪些数据字典和动态性能视图。

  • 数据字典:数据字典是Oracle数据管理系统的核心,它存储整个Oracle数据库的所有数据定义信息,如数据库的物理存储结构和逻辑存储结构,存储空间的分配使用情况数据库内的对象及其约束,以及用户、角色、权限设置等。Oracle数据字典由以下两种对象类型组成:

    • 基表:大部分数据是以加密格式存储的,用户不应该直接访问基表。
    • 用户访问视图:这些视图基于数据字典基表而创建,它们汇总数据字典基表内的信息,以可读的方式提供给用户使用。
  • SYS用户拥有所有数据字典基表和用户访问视图,为了便于访问,Oracle为大部分视图创建了同名的public同义词。数据字典存储在system表空间内。
  • 三组常用的数据字典视图:USER_,ALL_,DBA_
SQL> desc dict # 查看数据字典的结构名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------TABLE_NAME                                         VARCHAR2(128)COMMENTS                                           VARCHAR2(4000)SQL> select * from dict; # 查看数组字典中所有用户视图的名称及其描述
# 修改格式
SQL> column TABLE_NAME format a35
SQL> column COMMENTS format a35
# 很多,只截取了一点点
TABLE_NAME                          COMMENTS
----------------------------------- -----------------------------------ional tablesUSER_OBJECT_TABLES                  Description of the user’s own object tablesUSER_ALL_TABLES                     Description of all object and relational tables owned by the user‘sALL_TABLES                          Description of relational tables accessible to the user
  • 动态性能视图:Oracle数据库运行过程中维护了一套动态性能视图,用于记录数据库的当前活动,管理员在进行会话管理、备份操作和性能调优时必须要使用它们。这些视图之所以被称之为动态性能视图,是因为在实例运行和数据库使用过程中,它们的内容不断地更新,而且其内容也主要与性能有关。与动态性能视图相关的对象分为以下三种:

    • 基表:名称前缀为X$。它们不存储在数据库中,而是构建在0racle实例的内存结构内,所以又被称作虚拟表。普通用户不能直接访问X$表;
    • 视图:基于X$表创建的动态性能视图,它们的名称前缀是V_$,又被称作V$视图。只有sys用户才能访问该视图。动态性能视图的结构定义及其基表中的数据都不能由用户修改,因此动态性能视图又被称作固定表;
    • 同义词:Oracle为V$视图创建了public同义词,这些同义词的名称前缀为V$。数据库管理员和其他用户应该通过这些同义词访问V$视图,而不是直接访问V_$对象。
SQL> desc v$fixed_table # 查看动态性能视图名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------NAME                                               VARCHAR2(128)OBJECT_ID                                          NUMBERTYPE                                               VARCHAR2(5)TABLE_NUM                                          NUMBERCON_ID                                             NUMBERSQL> select NAME,TYPE from v$fixed_table;# where rownum <= 10;NAME       TYPE
---------- ----------
X$KQFTA    TABLE
X$KQFVI    TABLE
X$KQFVT    TABLE
X$KQFDT    TABLE
X$KQFCO    TABLE
X$KQFOPT   TABLE
X$KYWMPCTA TABLE
BX$KYWMWRCT TABLE
ABNAME       TYPE
---------- ----------X$KYWMCLTA TABLE
BX$KYWMNF   TABLE

2. 使用数据字典或性能视图查询数据库的物理存储结构。

物理存储结构:控制文件,数据文件,重做日志文件。

  • 控制文件:Oracle为了管理数据库的状态而维护的一个文件,记录了数据库的物理存储结构和其他控制信息。
SQL> desc v$controlfile # 查看控制文件结构信息名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------STATUS                                             VARCHAR2(7)NAME                                               VARCHAR2(513)IS_RECOVERY_DEST_FILE                              VARCHAR2(3)BLOCK_SIZE                                         NUMBERFILE_SIZE_BLKS                                     NUMBERCON_ID                                             NUMBERSQL> select name from v$controlfile;# 查看控制文件名
NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\ORCL\CONTROL01.CTL
D:\ORACLE\ORADATA\ORCL\CONTROL02.CTLSQL> show parameter control_files; # 通过初始化参数查询控制文件。是show parameter的一个小技巧,可以用于模糊查询NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
control_files                        string     D:\ORACLE\ORADATA\ORCL\CONTROL01.CTL, D:\ORACLE\ORADATA\ORCL\CONTROL02.CTL
SQL> select name from v$controlfile; # 和上面一样
NAME
----------------------------------------
D:\ORACLE\ORADATA\ORCL\CONTROL01.CTL
D:\ORACLE\ORADATA\ORCL\CONTROL02.CTL
  • 数据文件:存储表和索引数据,已经排序和散列等操作的中间结果。一个数据库包含一个或多个数据文件,一个数据文件只属于一个数据库。
SQL> desc dba_data_files # 查看数据文件结构信息名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------FILE_NAME                                          VARCHAR2(513)FILE_ID                                            NUMBERTABLESPACE_NAME                                    VARCHAR2(30)BYTES                                              NUMBERBLOCKS                                             NUMBERSTATUS                                             VARCHAR2(9)RELATIVE_FNO                                       NUMBERAUTOEXTENSIBLE                                     VARCHAR2(3)MAXBYTES                                           NUMBERMAXBLOCKS                                          NUMBERINCREMENT_BY                                       NUMBERUSER_BYTES                                         NUMBERUSER_BLOCKS                                        NUMBERONLINE_STATUS                                      VARCHAR2(7)LOST_WRITE_PROTECT                                 VARCHAR2(7)SQL> select FILE_NAME from dba_data_files;# 查看数据文件名FILE_NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
D:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
D:\ORACLE\ORADATA\ORCL\USERS01.DBF
  • 重做日志文件:存储数据库的重做日志信息,记录数据库所产生的所有变化信息。

    • v$log详细说明了重做日志文件的结构、属性以及动态变化情况。

      • status是group的状态,current:正在使用,inactive:没有使用
    • v$logfile说明了重做日志文件的物理地址和当前在线状态
      • status指的是member的状态 ,blank:整除都是空,不管是否背斜,stale:备用状态
SQL> desc v$log名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------GROUP#                                             NUMBERTHREAD#                                            NUMBERSEQUENCE#                                          NUMBERBYTES                                              NUMBERBLOCKSIZE                                          NUMBERMEMBERS                                            NUMBERARCHIVED                                           VARCHAR2(3)STATUS                                             VARCHAR2(16)FIRST_CHANGE#                                      NUMBERFIRST_TIME                                         DATENEXT_CHANGE#                                       NUMBERNEXT_TIME                                          DATECON_ID                                             NUMBERSQL> select GROUP#,MEMBERS,status from v$log;GROUP#    MEMBERS STATUS
---------- ---------- --------------------------------1          1 INACTIVE2          1 INACTIVE3          1 CURRENTSQL> select GROUP#,MEMBER,status from v$logfile;GROUP# MEMBER                                   STATUS
---------- ---------------------------------------- --------------3 D:\ORACLE\ORADATA\ORCL\REDO03.LOG2 D:\ORACLE\ORADATA\ORCL\REDO02.LOG1 D:\ORACLE\ORADATA\ORCL\REDO01.LOG

3. 用数据字典查询数据库的逻辑存储结构。

逻辑结构包括:表空间,段,区,数据块

  • 表空间:它位于逻辑存储结构的顶层,用于存储数据库中的所有数据,表空间内的数据被物理存放在数据文件中,一个表空间可以包含一个或多个数据文件。

    • V$_是动态性能视图,存在于controlfile中,数据库在mount状态下可以查询,
    • dba_是静态视图,存在于数据库中,只能在open时查询.
SQL> desc dba_tablespaces # 查看表空间静态试图名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------TABLESPACE_NAME                           NOT NULL VARCHAR2(30)BLOCK_SIZE                                NOT NULL NUMBERINITIAL_EXTENT                                     NUMBERNEXT_EXTENT                                        NUMBERMIN_EXTENTS                               NOT NULL NUMBERMAX_EXTENTS                                        NUMBERMAX_SIZE                                           NUMBERPCT_INCREASE                                       NUMBERMIN_EXTLEN                                         NUMBERSTATUS                                             VARCHAR2(9)CONTENTS                                           VARCHAR2(21)LOGGING                                            VARCHAR2(9)FORCE_LOGGING                                      VARCHAR2(3)EXTENT_MANAGEMENT                                  VARCHAR2(10)ALLOCATION_TYPE                                    VARCHAR2(9)PLUGGED_IN                                         VARCHAR2(3)SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)DEF_TAB_COMPRESSION                                VARCHAR2(8)RETENTION                                          VARCHAR2(11)BIGFILE                                            VARCHAR2(3)PREDICATE_EVALUATION                               VARCHAR2(7)ENCRYPTED                                          VARCHAR2(3)COMPRESS_FOR                                       VARCHAR2(30)DEF_INMEMORY                                       VARCHAR2(8)DEF_INMEMORY_PRIORITY                              VARCHAR2(8)DEF_INMEMORY_DISTRIBUTE                            VARCHAR2(15)DEF_INMEMORY_COMPRESSION                           VARCHAR2(17)DEF_INMEMORY_DUPLICATE                             VARCHAR2(13)SHARED                                             VARCHAR2(13)DEF_INDEX_COMPRESSION                              VARCHAR2(8)INDEX_COMPRESS_FOR                                 VARCHAR2(13)DEF_CELLMEMORY                                     VARCHAR2(14)DEF_INMEMORY_SERVICE                               VARCHAR2(12)DEF_INMEMORY_SERVICE_NAME                          VARCHAR2(1000)LOST_WRITE_PROTECT                                 VARCHAR2(7)CHUNK_TABLESPACE                                   VARCHAR2(1)SQL> select TABLESPACE_NAME,block_size from dba_tablespaces; # 查看各表名和大小TABLESPACE_NAME                                              BLOCK_SIZE
------------------------------------------------------------ ----------
SYSTEM                                                             8192
SYSAUX                                                             8192
UNDOTBS1                                                           8192
TEMP                                                               8192
USERS                                                              8192SQL> desc v$tablespace # 查看表空间动态性能试图 名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------TS#                                                NUMBERNAME                                               VARCHAR2(30)INCLUDED_IN_DATABASE_BACKUP                        VARCHAR2(3)BIGFILE                                            VARCHAR2(3)FLASHBACK_ON                                       VARCHAR2(3)ENCRYPT_IN_BACKUP                                  VARCHAR2(3)CON_ID                                             NUMBERSQL> select name from v$tablespace;NAME
------------------------------------------------------------
SYSAUX
SYSTEM
UNDOTBS1
USERS
TEMP
SYSTEM
SYSAUX
UNDOTBS1
TEMP
SYSTEM
SYSAUXNAME
------------------------------------------------------------
UNDOTBS1
TEMP
USERS已选择 14 行。
  • 段:用于存储和隔离不同数据库对象的数据。Oracle数据库中的段分为表段、索引段、回滚段和临时段四种。
SQL> desc dba_segments名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------OWNER                                              VARCHAR2(128)SEGMENT_NAME                                       VARCHAR2(128)PARTITION_NAME                                     VARCHAR2(128)SEGMENT_TYPE                                       VARCHAR2(18)SEGMENT_SUBTYPE                                    VARCHAR2(10)TABLESPACE_NAME                                    VARCHAR2(30)HEADER_FILE                                        NUMBERHEADER_BLOCK                                       NUMBERBYTES                                              NUMBERBLOCKS                                             NUMBEREXTENTS                                            NUMBERINITIAL_EXTENT                                     NUMBERNEXT_EXTENT                                        NUMBERMIN_EXTENTS                                        NUMBERMAX_EXTENTS                                        NUMBERMAX_SIZE                                           NUMBERRETENTION                                          VARCHAR2(7)MINRETENTION                                       NUMBERPCT_INCREASE                                       NUMBERFREELISTS                                          NUMBERFREELIST_GROUPS                                    NUMBERRELATIVE_FNO                                       NUMBERBUFFER_POOL                                        VARCHAR2(7)FLASH_CACHE                                        VARCHAR2(7)CELL_FLASH_CACHE                                   VARCHAR2(7)INMEMORY                                           VARCHAR2(8)INMEMORY_PRIORITY                                  VARCHAR2(8)INMEMORY_DISTRIBUTE                                VARCHAR2(15)INMEMORY_DUPLICATE                                 VARCHAR2(13)INMEMORY_COMPRESSION                               VARCHAR2(17)CELLMEMORY                                         VARCHAR2(24)SQL> select owner,segment_name,segment_type from dba_segments where owner='SYS';
# 只获取前10行,加上条件rownum <= 10OWNER      SEGMENT_NAME         SEGMENT_TYPE
---------- -------------------- --------------------
SYS        PROXY_DATA$          TABLE
SYS        OBJ$                 TABLE
SYS        BOOTSTRAP$           TABLE
SYS        UNDO$                TABLE
SYS        CON$                 TABLE
SYS        FILE$                TABLE
SYS        PROXY_ROLE_DATA$     TABLE
SYS        OBJERROR$            TABLE
SYS        OBJAUTH$             TABLE
SYS        HIST_HEAD$           TABLE
  • 区:Oracle数据库内存储空间最小分配单位。每个区必须是一段连续的存储空间,他可以小到只有一个数据块,也可以大到2GB的空间。
SQL> desc dba_extents名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------OWNER                                              VARCHAR2(128)SEGMENT_NAME                                       VARCHAR2(128)PARTITION_NAME                                     VARCHAR2(128)SEGMENT_TYPE                                       VARCHAR2(18)TABLESPACE_NAME                                    VARCHAR2(30)EXTENT_ID                                          NUMBERFILE_ID                                            NUMBERBLOCK_ID                                           NUMBERBYTES                                              NUMBERBLOCKS                                             NUMBERRELATIVE_FNO                                       NUMBERSQL> select extent_id from dba_extents where owner='SYS'; # and rownum <= 10;EXTENT_ID
----------0012345678已选择 10 行。
  • 数据块:是Oracle数据库的I/O单位,也就是说,在读写Oracle数据库中的数据时,每次读写的数据量至少为一个数据块大小。Oracle数据库支持的数据块大小包括2KB、4KB、BKB、16KB和32KB等。Oracle 数据块有一定的标准大小,其大小被写入到初始化参数DB_BLOCK_SIZE 中。另外, Oracle 支持在同一个数据库中使用多种大小的块,与标准块大小不同的块就是非标准块。
SQL> select name,value from v$parameter where name = 'db_block_size';NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
db_block_size
8192

4. 用动态性能视图查询Oracle实例当前状态。

SQL> select status from v$instance;OPEN

5. 以scott用户登录,查询该用户所具有的数据库对象。

SQL> conn sys/1234 as sysdba
已连接。
SQL> desc user_objects名称                                      是否为空? 类型----------------------------------------- -------- ----------------------------OBJECT_NAME                                        VARCHAR2(128)SUBOBJECT_NAME                                     VARCHAR2(128)OBJECT_ID                                          NUMBERDATA_OBJECT_ID                                     NUMBEROBJECT_TYPE                                        VARCHAR2(23)CREATED                                            DATELAST_DDL_TIME                                      DATETIMESTAMP                                          VARCHAR2(19)STATUS                                             VARCHAR2(7)TEMPORARY                                          VARCHAR2(1)GENERATED                                          VARCHAR2(1)SECONDARY                                          VARCHAR2(1)NAMESPACE                                          NUMBEREDITION_NAME                                       VARCHAR2(128)SHARING                                            VARCHAR2(18)EDITIONABLE                                        VARCHAR2(1)ORACLE_MAINTAINED                                  VARCHAR2(1)APPLICATION                                        VARCHAR2(1)DEFAULT_COLLATION                                  VARCHAR2(100)DUPLICATED                                         VARCHAR2(1)SHARDED                                            VARCHAR2(1)CREATED_APPID                                      NUMBERCREATED_VSNID                                      NUMBERMODIFIED_APPID                                     NUMBERMODIFIED_VSNID                                     NUMBERSQL> select OBJECT_TYPE,OBJECT_NAME from user_objects;# where cownum <= 10OBJECT_TYP OBJECT_NAME
---------- --------------------
TABLE      ACCESS$
TABLE      ACLMV$
VIEW       ACLMV$_BASE_VIEW
VIEW       ACLMV$_MVINFO
TABLE      ACLMV$_REFLOG
TABLE      ACLMVREFSTAT$
TABLE      ACLMVSUBTBL$
TABLE      ADMINAUTH$
SEQUENCE   ADO_IMCSEQ$
TABLE      ADO_IMPARAM$

创建表空间,分配给用户

SQL> create tablespace scott_tb_space datafile 'd:/Oracle_TableSpace/scott_tablespace.dbf' size 200M;表空间已创建。SQL> create user c##scott identified by 1234 default tablespace scott_tb_space;用户已创建。SQL> grant dba to c##scott;授权成功。SQL> exitSQL> sqlplus /nolog # 未登录开启实例
SQL>  conn c##scott/1234@orcl
已连接。SQL> select username, user_id, account_status from dba_users where username like '%SCOTT%';
USERNAME
--------------------------------------------------------------------------------USER_ID ACCOUNT_ST
---------- ----------
C##SCOTT
########## OPEN

JMU Oracle实验三相关推荐

  1. Oracle 实验三: SQL语句基础(复习)

    实验三: SQL语句基础(复习) 一.实验目的 1.oracle中常用数据字典的使用. 2.复习并掌握表管理(创建.修改.创建约束.删除等)操作 二.实验内容 1.利用数据字典完成以下操作,对运行过程 ...

  2. 常熟理工php实验三_常熟理工Oracle实验三_高燕教授

    1 实验三 表空间与数据文件 一.实验目的 从逻辑上说数据库由多个表空间组成. DBA 通过创建表空间为数据库建立存储空 间, 并且把各种类型的应用数据存放在不同的表空间中. 在数据库运行过程中, D ...

  3. JMU Oracle 实验一

    关于oracle的安装,数据库的创建略,从网络配置开始 我是直接改文件,建议用Net Configuration Assistance或者Net Manager (因为开始用NCA在测试连接那边一直卡 ...

  4. JMU Oracle 实验五

    问的问题 看了一下log和logfile,就是重做日志组和日志文件的地址信息 看了归档的地址 如何执行归档,就是switch那个语句 1. 查询Oracle数据库当前使用的联机重做日志文件组及成员信息 ...

  5. oracle实验六杨艳华_oracle实验报告总结

    Oracle 实验报告 姓名 学院: 年级: 班级: 指导老师: 实验一 了解 ... 学期 Oracle 数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师: 成绩: 史金余 2 ...

  6. 数据库实验三 SQL查询数据

    实验三 SQL查询数据 实验目的 熟练掌握使用SQL查询语言.完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询). 实验内容 现有一个单位内部的小型图书借阅系统,假设每本图书的数量无限制,并且 ...

  7. 2.oracle物理结构,oracle实验2oracle物理结构管理

    oracle实验2oracle物理结构管理 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 实验2 oracle物理存储结构管理.实验目 ...

  8. oracle实验报告2:: Oracle数据库物理存储结构管理(含实验小结)

    目录 实验目的 实验设备及器材 实验内容 实验步骤 实验过程 实验小结 实验目的 1.熟悉Oracle数据库物理存储结构: 2.掌握Oracle数据库数据文件的管理: 3.掌握Oracle数据库控制文 ...

  9. oracle实验和代码

    专业:网络工程本科 制 定 人: 郭东恩 教 研 室:数据库技术教研室 2011 年1 月 前言 大型数据库ORACLE是属于数据库开发软件及应用领域的专业课,是面向计算机专业本科生开设的一门数据库应 ...

最新文章

  1. 腾讯、阿里到底有多缺这类程序员?
  2. UVa10795 - A Different Task(递归)
  3. Windows下完成端口移植Linux下的epoll
  4. 牛客 - 汉诺塔(思维+dp)
  5. [转帖]AjaxControlToolkit.TabContainer 自定义样式续
  6. 设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称...
  7. 表主键自增长Mybatis插入数据报错
  8. 请求重定向与请求转发的区别
  9. 转自JavaEye --Oracle函数大全
  10. Linux socket等于0,Linux系统环境下的Socket编程详细解析
  11. C++对象模型——指向Data Members的指针(Pointer to Data Members)
  12. 计算机忘记密码WIN7,win7忘记密码强制重置方法
  13. 如何删除桌面右键菜单中的英特尔核心显卡选项
  14. Vue实现 TodoList
  15. android qq 功能,Android-类qq功能(一)
  16. 组装一台计算机需要哪些硬件(写出配置),电脑组装知识网组装电脑配置单中都有哪些配置组装电脑需要的电脑硬件...
  17. python加载图片的方法_python实现读取并显示图片的两种方法
  18. iOS_21团购_拼音搜索
  19. 前端动态生成随机图形验证码
  20. 生成Base64编码格式的二维码图片(添加url地址图片logo)

热门文章

  1. 什么是CISP-PTE认证?
  2. 哆啦A梦小程序技术文档
  3. mysql 实现rownum_MySQL 中实现 rownum
  4. mac terminal解压缩命令
  5. 国外LEAD:这几类人赚钱之路
  6. 2020-11-21 根据orthofinder的结果利用单拷贝直系基因建树
  7. g.SecurityException: UID 10471 does not have permission to content://包名.fileprovider/***照片名 [user 0]
  8. c语言strchr函数内容,c strchr函数_c语言strchr函数_strchr函数用法
  9. 685 什么叫“人生如戏”?(找到自己的人生角色,演好这场戏)
  10. vivado生成ltx文件命令_Xilinx Artix-7系列FPGA 高速采集卡开发例程使用手册.pdf