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 |
- 表空间(tablespace)
表空间是数据库中的基本逻辑结构,一系列数据文件的集合。一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。
使表空间 offline SQL>alter tablespace *** offline;
|
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中。
Oracle11g温习-第一章 3、ORACLE逻辑结构的更多相关文章
- Oracle11g温习-第一章:Oracle 体系架构
2013年4月27日 星期六 10:20 1.oracle 网络架构及应用环境 1. ORACLE 实例——包括内存结构与后台进程 2. ORACLE 数据库——物理操作系统文件的集合 3. 了解内存 ...
- Oracle11g温习-第一章 2、ORACLE 物理结构
2013年4月27日 星期六 10:26 物理操作系统文件的集合.主要包括: 控制文件(参数文件init$ORACLE_SID.ora记录了控制文件的位置) 二进制文件,控制文件由参数control_ ...
- Oracle11g温习-第一章 1、ORACLE实例
2013年4月27日 星期六 10:23 1.ORACLE 实例 System Global Area(SGA) 和 Background Process(后台进程) 称为数据库的实例. 2.ORAC ...
- Oracle入门《Oracle介绍》第一章1-4 Oracle 用户管理
1.Oracle 默认用户 只有用合法的用户帐号才能访问Oracle数据库 Oracle 有几个默认的数据库用户 数据库中所有数据字典表和视图都存储在 SYS 模式中.SYS用户主要用来维护系统信息和 ...
- Oracle入门《Oracle介绍》第一章1-2 Oracle 实例
Oracle实例:是后台进程和内存结构的集合 一.内存结构 1.Oracle 实例启动时分配系统全局区 a.数据库信息存储于SGA,由多个数据库进程共享 1.共享池是对SQL.PL/SQL程序进行语法 ...
- Oracle入门《Oracle介绍》第一章1-3 Oracle 逻辑组件
一.数据库的逻辑结构是从逻辑的角度分析数据库的组成.Oracle 的逻辑组件包括: 1.表空间 表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统 ...
- Oracle11g温习-第九章:表空间和数据文件管理
2013年4月27日 星期六 10:37 1.tablespace 功能:从逻辑上简化数据库的管理 2.tablespace 概述 一个database 对应多个tablespace ,一个table ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第一章
Asp.Net MVC4 + Oracle + EasyUI 第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 文章集合 ...
- 第一章 oracle数据库基础
第一章 oracle数据库基础 1.oracle简介-->数据库管理系统 1.1:数据库 1.2:全局数据库名 1.3:数据库实例 1.4:表空间 1.5:数据 ...
随机推荐
- cojs 二分图计数问题1-3 题解报告
OwO 良心的FFT练手题,包含了所有的多项式基本运算呢 其中一部分解法参考了myy的uoj的blog 二分图计数 1: 实际是求所有图的二分图染色方案和 我们不妨枚举这个图中有多少个黑点 在n个点中 ...
- Python中模块(Module)和包(Package)的区别
本文绝大部分内容转载至:廖雪峰官方网站 1. 模块(Module) 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函 ...
- 冒泡排序法原理讲解及PHP代码示例
冒泡排序原理 冒泡排序对一个数组里的数字进行排序,把数组里两个相邻的数比较大小,将值小的数放在前面,把大的数往后面放,当然这种排序是升序,即从小到大.举例说明$array = [64, 56, 31, ...
- MySQL按中文拼音排序
好多时候,我们希望查询出来的记录能够按照汉语拼音即英文的26个字母排序,但是utf字符集是外国人弄的,不是按照汉语拼音的顺序排列的,因此,我们需要将要排序的字段把编码设定为GBK或者BG2312再进行 ...
- Window系统远程连接Linux服务器(非桌面系统)
Window系统远程连接Linux服务器(非桌面系统) Window系统远程连接Linux服务器(非桌面系统),步骤: 第一步:下载Xshell远程登录软件:第二步:设置Linux服务器的IP.端口. ...
- PHP-Iterator迭代器(遍历)接口详讲
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> "; class ...
- 20145122《Android开发基础》实验四实验报告
实验名称 Android开发基础 实验内容 1.Windows环境下Android Studio 2.能够运行安卓AVD模拟器 3.使用安卓虚拟手机显示HelloWorld以及自己的学号 统计的PSP ...
- JAVA I/O(二)文件NIO
一.Unix五种I/O模型 读取和写入文件I/O操作都是调用操作系统提高的接口,对磁盘I/O来说,一般是将数据从磁盘拷贝到内核空间,然后从内核空间拷贝到用户空间.为了减小I/O时间,一般内核空间存在高 ...
- Python3基础 str split 用指定的字符将字符串分割
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Python3基础 os listdir curdir pardir 查看工作目录及其上一级目录的所有文件名
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...