Oracle11g温习-第一章 3、ORACLE逻辑结构

2013年4月27日 星期六

10:27

Oracle逻辑结构的相关数据字典:


记录各个表空间的详细信息。

SYS @ prod > select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME      STATUS

-------------------- ---------

SYSTEM               ONLINE

UNDOTBS1             ONLINE

SYSAUX               ONLINE

TEMP                 ONLINE

USERS                ONLINE

EXAMPLE              ONLINE

TEST                 ONLINE


记录各个表空间的使用的百分比

SYS @ prod > select * from dba_tablespace_usage_metrics;

TABLESPACE_NAME      USED_SPACE TABLESPACE_SIZE USED_PERCENT

-------------------- ---------- --------------- ------------

EXAMPLE                    8736          215784   4.04849294

SYSAUX                    33840          237544   14.2457818

SYSTEM                    65552          269544   24.3195916

TEMP                          0          206953            0

TEST                          8          203624    .00392881

UNDOTBS1                    288          230505    .12494306

USERS                      1024          204104   .501705013


记录各个数据文件的详细信息。

SYS @ prod >col file_id for 99999

SYS @ prod >col file_name for a50

SYS @ prod >col tablespace for a15

SYS @ prod >set linesize 10000

SYS @ prod > select file_id,file_name,tablespace_name,status,autoextensible from dba_data_files;

FILE_ID FILE_NAME                                          TABLESPACE_NAME      STATUS    AUT

------- -------------------------------------------------- -------------------- --------- ---

6 /u01/app/oracle/oradata/prod/test01.dbf            TEST                 AVAILABLE YES

4 /u01/app/oracle/oradata/prod/users01.dbf           USERS                AVAILABLE YES

3 /u01/app/oracle/oradata/prod/sysaux01.dbf          SYSAUX               AVAILABLE YES

2 /u01/app/oracle/oradata/prod/undotbs01.dbf         UNDOTBS1             AVAILABLE YES

1 /u01/app/oracle/oradata/prod/system01.dbf          SYSTEM               AVAILABLE YES

5 /u01/app/oracle/oradata/prod/example01.dbf         EXAMPLE              AVAILABLE YES


记录各个段的详细信息,与 DBA_TABLES,DBA_INDEXES,DBA_LOBS,DBA_PART_TABLES,DBA_PART_INDEXES,

DBA_PART_LOBS,DBA_OBJECTS搭配使用。

SYS @ prod > select owner,segment_name,segment_type,tablespace_name,extents from dba_segments where segment_name=‘TEST‘; 

OWNER SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME         EXTENTS

----- --------------- ------------------ -------------------- ----------

SYS   TEST            TABLE              SYSTEM                        1

SCOTT TEST            TABLE              USERS                        18

SELECT * FROM DBA_LOBS    --BLOB字段所对应的字段名称。


分区索引需通过DBA_INDEXS来找到对应的表名

SYS @ prod > select owner,index_name from dba_indexes where rownum <2;

OWNER INDEX_NAME

----- ------------------------------

SYS   I_ICOL1


记录各个区间对象的详细信息。

SYS @ prod > select owner,segment_name,PARTITION_NAME,segment_type,tablespace_name,file_id from dba_extents where segment_name=‘TEST‘;

OWNER SEGMENT_NAME    PARTITION_NAME                 SEGMENT_TYPE       TABLESPACE_NAME      FILE_ID

----- --------------- ------------------------------ ------------------ -------------------- -------

SYS   TEST                                           TABLE              SYSTEM                     1

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4

SCOTT TEST                                           TABLE              USERS                      4


记录表空间的基本信息,对象ID,表空间名称。

SYS @ prod > select ts#,name from v$tablespace;

TS# NAME

---------- --------------------------------------------------

0 SYSTEM

1 UNDOTBS1

2 SYSAUX

4 USERS

3 TEMP

6 EXAMPLE

8 TEST


记录数据文件的基本信息,对象ID,表空间ID,文件名称以及状态、大小和相应的变化。

SYS @ prod > select file#,ts#,status,name from v$datafile;

FILE#        TS# STATUS  NAME

---------- ---------- ------- --------------------------------------------------

1          0 SYSTEM  /u01/app/oracle/oradata/prod/system01.dbf

2          1 ONLINE  /u01/app/oracle/oradata/prod/undotbs01.dbf

3          2 ONLINE  /u01/app/oracle/oradata/prod/sysaux01.dbf

4          4 ONLINE  /u01/app/oracle/oradata/prod/users01.dbf

5          6 ONLINE  /u01/app/oracle/oradata/prod/example01.dbf

6          8 ONLINE  /u01/app/oracle/oradata/prod/test01.dbf


实时监控数据库段级对象的统计信息。

SYS @ prod >  select ts#,obj#,dataobj#,statistic_name,statistic#,value from v$segstat where rownum <5;

TS#       OBJ#   DATAOBJ# STATISTIC_NAME       STATISTIC#      VALUE

---------- ---------- ---------- -------------------- ---------- ----------

0        255        255 logical reads                 0       1808

0        255        255 buffer busy waits             1          0

0        255        255 gc buffer busy                2          0

0        255        255 db block changes              3          0


段级对象的统计项目。

SYS @ prod > select statistic#,name from v$segstat_name where rownum <5;

STATISTIC# NAME

---------- --------------------------------------------------

0 logical reads

1 buffer busy waits

2 gc buffer busy

3 db block changes


实时监控段级对象的性能,说穿了和V$SEGSTAT有点像,统计信息更丰富一些。

SYS @ prod > select owner,object_name,tablespace_name,statistic_name from v$segment_statistics where rownum <5;

OWNER OBJECT_NAM TABLESPACE_NAME      STATISTIC_NAME

----- ---------- -------------------- --------------------

SYS   HIST_HEAD$ SYSTEM               logical reads

SYS   HIST_HEAD$ SYSTEM               buffer busy waits

SYS   HIST_HEAD$ SYSTEM               gc buffer busy

SYS   HIST_HEAD$ SYSTEM               db block changes

  1. 表空间(tablespace)

表空间是数据库中的基本逻辑结构,一系列数据文件的集合。一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。


查询表空间:

SYS @ prod >select file_name,file_id,tablespace_name,bytes,status from dba_data_files;

FILE_NAME                                          FILE_ID TABLESPACE_NAME      BYTES STATUS

-------------------------------------------------- ------- ------------------------------ ----------/u01/app/oracle/oradata/prod/users01.dbf                 4 USERS               5242880 AVAILABLE

/u01/app/oracle/oradata/prod/sysaux01.dbf                3 SYSAUX              241172480 AVAILABLE

/u01/app/oracle/oradata/prod/undotbs01.dbf               2 UNDOTBS1            26214400 AVAILABLE

/u01/app/oracle/oradata/prod/system01.dbf                1 SYSTEM              503316480 AVAILABLE

/u01/app/oracle/oradata/prod/example01.dbf               5 EXAMPLE             104857600 AVAILABLE


查询表空间的空闲信息:

SYS @ prod >select tablespace_name,file_id from dba_free_space;

TABLESPACE_NAME                FILE_ID

------------------------------ -------

SYSTEM                               1

SYSTEM                               1

UNDOTBS1                             2

UNDOTBS1                             2

UNDOTBS1                             2

UNDOTBS1                             2

UNDOTBS1                             2

SYSAUX                               3

SYSAUX                               3

SYSAUX                               3

SYSAUX                               3

使表空间 offline

SQL>alter tablespace ***  offline;


指定用户在 该表空间下的限额

SYS @ prod >alter user scott quota 100m on users;

User altered.


临时表空间用于为用户排序的ORDER BY语句使用。创建数据库时可以指定数据库的默认临时表空间。在创建用户的时候可以指定用户的默认临时表空间。例如下句就指定temp为用户的临时表空间。

SYS @ prod >create user test identified by test temporary tablespace temp;

User created.

2、段(Segment)


段是对象在数据库中占用的空间,虽然段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有多个段。

表空间和数据文件是物理存储上的一对多的关系,表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件发生关系。一个段可以属于多个数据文件

关于段可以指定扩展到哪个数据文件上面。

可以分为以下四种

数据段(Data Segment)

索引段(Index Segment)

回滚段(Rollback Segment)

临时段(Temporary Segment)

3区间(Extent)


关于Extent的翻译有多种解释,有的译作扩展,有的译作盘区,我这里通常译为区间。在一个段中可以存在多个区间,区间是为数据一次性预留的一个较大的存储空间,直到那个区间被用满,数据库会继续申请一个新的预留存储空间,即新的区间,一直到段的最大区间数(Max Extent)或没有可用的磁盘空间可以申请。 在ORACLE8i以上版本,理论上一个段可以无穷个区间,但是多个区间对ORACLE却是有性能影响的,ORACLE建议把数据分布在尽量少的区间上,以减少ORACLE的管理与磁头的移动。

 4、Oracle数据块(Block)


ORACLE最基本的存储单位,它是OS数据块的整数倍。ORACLE的操作都是以块为基本单位,一个区间可以包含多个块(如果区间大小不是块大小的整数倍,ORACLE实际也扩展到块的整数倍)。

5、基本表空间介绍

a. 系统表空间

主要存放数据字典和内部系统表基表

查看数据数据字典的SQL

select * from dict

查看内部系统表的SQL

select * from v$fixed_view_definition

DBA对系统的系统表中的数据字典必须有一个很深刻的了解,他们必须准备一些基础的SQL语句,通过这些SQL可以立即了解系统的状况和数据库的状态,这些基本的SQL包括:

系统的剩余空间

系统的SGA

状态系统的等待

用户的权限

当前的用户锁

缓冲区的使用状况等

大量的读少量的写是该表空间的一个显著的特点。

b. 临时表空间.

临时表空间顾名思义是用来存放临时数据的,例如排序操作的临时空间,他的空间会在下次系统启动的时候全部被释放。

c. 回滚段表空间

i. 回滚段在系统中的作用


当数据库进行更新插入删除等操作的时候,新的数据被更新到原来的数据文件,而旧的数据(Before Image)就被放到回滚段中,如果数据需要回滚,那么可以从回滚段将数据再复制到数据文件中。来完成数据的回滚。在系统恢复的时候, 回滚段可以用来回滚没有被commit 的数据,解决系统的一致性。

回滚段在任何情况下都是大量的写,一般是少量读,因此建议把回滚段单独出来放在一个单独的设备(如单独的磁盘或RAID),以减少磁盘的IO争用

ii. 回滚段的工作方式

一个回滚表空间可以被划分成多个回滚段.

一个回滚段可以保存多个会话的数据.

回滚段是一个圆形的数据模型

假设回滚段由4 个区间组成,他们的使用顺序就是区间1  区间2  区间3  区间4  区间1。也就是说,区间是可以循环使用的,当区间4到区间1的时候,区间1里面的会话还没有结束, 区间4用完后就不能再用区间1,这时系统必须分配区间5,来继续为其他会话服务。

我们分析一个Update 语句的完成

①. 用户提交一个Update 语句

②. Server Process 检查内存缓冲.

如果没有该数据块的缓冲,则从磁盘读入

i. 如果没有内存的有效空间,DBWR被启动将未写入磁盘的脏缓冲写入磁盘。

ii. 如果有有效空间,则读入。

③. 在缓冲内更新数据

i. 申请一个回滚段入口,将旧数据写入回滚段。

ii. 加锁并更新数据。

iii. 并在同时将修改记录在Redo log buffer中。

时间: 2024-08-28 10:20:45

Oracle11g温习-第一章 3、ORACLE逻辑结构的相关文章

Oracle11g温习-第一章:Oracle 体系架构

2013年4月27日 星期六 10:20 1.oracle 网络架构及应用环境 1. ORACLE 实例--包括内存结构与后台进程 2. ORACLE 数据库--物理操作系统文件的集合 3. 了解内存结构的组成 4. 了解后台进程的作用 5. 了解数据库的物理结构 6. 了解数据库的逻辑结构 2.oracle 体系结构   1)oracle server :database + instance 2)database:data file .control file . redolog file

Oracle入门《Oracle介绍》第一章1-4 Oracle 用户管理

1.Oracle 默认用户 只有用合法的用户帐号才能访问Oracle数据库 Oracle 有几个默认的数据库用户 数据库中所有数据字典表和视图都存储在 SYS 模式中.SYS用户主要用来维护系统信息和管理实例. SYSTEM 是默认的系统管理员,该用户拥有Oracle管理工具使用的内部表和视图.通常通过SYSTEM用户管理数据库用户.权限和存储等 SCOTT用户是Oracle 数据库的一个示范帐户,在数据库安装时创建 2.创建新用户 要连接到Oracle数据库,就需要创建一个用户帐户 每个用户都

Oracle第一章——初识Oracle

(以下内容使用的系统和版本为Windows7系统和Oracle11g,Windows其他版本和Oracle其他版本基本差不多.) 一.Oracle简介 简介:Oracle是一个关系型数据库管理系统,是Oracle公司的核心产品. 主要特点: 1.支持多用户.大事务量的事务处理 2.在保持数据安全性和完整性方面性能优越 3.支持分布式数据处理 4.具有可移植性 二.Oracle基本概念 1.数据库 Oracle并不是数据库,而是数据库管理系统,数据库字面上理解,就是储存数据的仓库,而Oracle就

Oracle学习——第一章

Oracle数据库特点:安全性高,数据类型丰富 Oracle是由美国甲骨文公司开发的一款数据库产品 ---------------------------------------------------------------------- Oracle版本: oracle oracle8i-------------------- internet   支持通过网络访问 oracle9i oracle10G ------------------- Grid   支持网络运算 oracle11G

【Oracle】第一章创建授权

ORACLE 第一章创建授权 通过命令查看控制文件,数据文件,日志文件: 控制文件 : Desc v$controlfile; 数据文件 :desc v$datafile; 日志文件: desc v$logfile; 1. 执行导入  .sql文件 命令语法如下: directory_path\store_schema.sql 其中 directory_path 是保存 store_schema.sql 脚本的目录和路径 例如:以下代码演示了导入C盘下的 sql 脚本文件: @c:\sql\st

第一章 oracle数据库基础

第一章   oracle数据库基础 1.oracle简介-->数据库管理系统    1.1:数据库    1.2:全局数据库名    1.3:数据库实例    1.4:表空间    1.5:数据文件(扩展名:.dbf)    1.6:控制文件(扩展名:.ctl)    1.7:日志文件(扩展名:.log)    1.8:模式和模式对象2.连接oracle数据库    2.1 SQL*Plus工具    2.2 PL/SQL Developer工具3.配置oracle数据库    3.1 配置监听

Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第一章

Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 1.    关于HtmlHelper和UrlHelper 因为大部分的web请求的目标都是向客户端发送HTML代码.因此,Asp.Net MVC也是为我们创建HTML提供了各种帮助.除了Razor,另外还有两个最为重要的帮助类就是HtmlHelper和UrlHelper,他们作为控制器

数据库期末考试复习题 第一章

作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/27820507 一.单项选择题: 1. 位于用户和操作系统之间的一层数据管理软件是  C    . A.DBS  B.DB  C.DBMS  D.MIS 2. 数据库系统中的数据模型通常由    A     三部分组成. A.数据结构.数据操作和完整性约束 B.数据定义.数据操作和安全性约束 C.数据结构.数据管理和数据保护 D.数据定义.数据管理和运行控制 3. 

Java学习记录第一章

学习Java第一章的记录,这一章主要记录的是Java的最基础部分的了解知识,了解Java的特性和开发环境还有Java语言的优缺点. 计算机语言的发展大概过程:机器语言--->汇编语言--->高级语言(面向过程的语言和面向对象的语言)总而言之就是从人类比较难识别的字符串向人类自然语言靠近使代码的可读性越来越高. Java的发展过程:1991年Sun公司为了抢占市场先机,成立了一个称为Green的项目小组,帕特里克.詹姆斯·高斯林.麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕