《Oracle逻辑存储结构幻灯片》由会员分享,可在线阅读,更多相关《Oracle逻辑存储结构幻灯片(91页珍藏版)》请在金锄头文库上搜索。
1、第二篇,体系结构篇,5.1 Oracle数据库系统结构,Oracle数据库的存储结构分为物理存储结构和逻辑存储结构物理存储结构主要用于描述Oracle数据库外部数据的存储,即在操作系统中如何组织和管理数据逻辑存储结构主要描述Oracle数据库内部数据的组织和管理方式。逻辑存储结构从用户角度描述数据的组织形式物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式,物理结构,Oracle数据库物理结构,逻辑结构,Oracle数据库逻辑结构,数据库,数据表,索引,存储过程,数据表,索引,存储过程,Oracle 数据库系统结构由数据库实例和物理存储结构组成。,7-12周 周二7-8节
2、上机 信息楼三楼 大软作业课本P93 第1题(1)(3)P94第2题 (1)(2)(3),复习 Oracle数据库系统结构,Oracle数据库的存储结构分为物理存储结构和逻辑存储结构物理存储结构主要用于描述在操作系统中如何组织和管理数据,逻辑存储结构从用户角度描述数据的组织形式,数据库,数据表,索引,存储过程,第6章 逻辑存储结构,本章内容,Oracle逻辑存储结构概述表空间数据块区段,6.1 逻辑存储结构概述,逻辑存储结构数据块:BLOCK 数据库中最小的I/O单元区:EXTENT 由若干连续的数据块组成,是数据库中最小的存储分配单元段:SEGMENT 由若干区组成,存储相同类型数据表空间:
3、TABLESPACE 由若干段组成,是最大的存储逻辑单元,所有表空间构成数据库,6.2 表空间,6.2.1 表空间概述1.表空间的概念Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。一个数据库由有一个或多个表空间构成,不同表空间用于存放不同应用的数据。一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。一个数据文件只能从属于一个表空间。,数据表,索引,存储过程,表空间是数据库对象的容器,一个数据库对象只能存储在一个表空间中,但可以存储在该表空间所对应的一个或多个数据文件中。数据库、表空间、数据文件、数据库对象之间的关系,数据库对象7,2.
4、表空间的分类(1)系统表空间 SYSTEM 表空间,主要存储:数据库的数据字典;PL/SQL程序的源代码和解释代码;数据库对象的定义等不应把用户数据放在SYSTEM表空间中SYSAUX表空间 辅助系统表空间在通常情况下,不允许删除、重命名及传输SYSAUX表空间。,(2)非系统表空间 撤销表空间 专门进行回滚信息的自动管理由回滚段构成,不包含其他信息由UNDO_TABLESPACE初始化参数设置临时表空间进行临时数据管理,会话结束时自动释放在创建用户时,为用户指定默认临时表空间,通常不使用SYSTEM表空间作为临时表空间用户表空间 保存用户数据建议为每个用户建立独立表空间,事务的结束方式,事务
5、:是一组数据库操作的集合,由一组相关的SQL语句组成事务结束方式1.提交:用户执行COMMIT命令或系统自动提交。 事务所作的修改写入数据库文件,释放占用资源2.回滚:用户执行ROLLBACK命令 事务中所有的操作被取消,数据库恢复到事务开始之前的状态,释放占用资源,(3)大文件表空间与小文件表空间 大文件表空间是指一个表空间只包含一个大数据文件,该文件的最大尺寸为128TB或32TB系统默认创建的表空间称为小文件表空间,可以包含最多1024个数据文件,3.表空间的管理方式根据表空间中数据区的管理方式不同,表空间分为字典管理方式和本地管理方式字典管理方式表空间使用数据字典来管理存储空间的分配当
6、进行区的分配与回收时,Oracle将对数据字典中的信息进行更新字典管理方式将渐渐被淘汰。,数据字典,数据字典是在数据库创建过程中创建的,保存了数据库的系统信息以及数据库中所有对象的信息,是数据库系统运行的基础数据字典由一系列表和视图构成,这些表和视图对于所有的用户都是只读的只有Oracle系统才可以对数据字典进行管理与维护在Oracle数据库中,所有数据字典表和视图都属于存储于SYSTEM表空间中,本地管理方式区的分配和管理信息都存储在表空间本身的数据文件中,而与数据字典无关。表空间在每个数据文件中维护一个“位图”结构,用于记录表空间中所有区的分配情况区在分配与回收时,Oracle将对数据文件
7、中的位图进行更新,不会产生回滚信息或重做信息。,表空间本地管理方式的优势: 由于在区分配与回收过程中不需要对数据字典进行访问能够避免表空间存储管理操作中的递归现象能够在保留可查询性同时,将整个数据库设置为只读状态。简化了表空间的存储管理降低了用户对数据字典的依赖性。不存在磁盘碎片问题,4.表空间管理策略系统表空间用于存储Oracle自身数据,建议将所有的用户数据保存到其他表空间中将数据字典与用户数据分离。将回滚数据与用户数据分离。将表空间的数据文件保存到不同的硬盘上为不同的应用创建独立的表空间。能够将表空间设置为脱机状态或联机状态。能够将表空间设置为只读状态。能够为某种特殊用途专门设置一个表空
8、间。能够更加灵活地为用户设置表空间配额。,6.2.2 表空间的管理(本地管理方式),创建表空间修改表空间表空间的备份删除表空间大文件表空间的管理 表空间信息查询利用OEM管理表空间,利用OEM创建表空间,管理属性页存储表空间,创建表空间,1 使用语句创建表空间,表空间名称不能超过30个字符,必须以字母开头,可以包含字母、数字以及一些特殊字符(如#、_、$)等;表空间的类型 普通表空间、临时表空间和撤销表空间;,(1).创建永久(普通)表空间,CREATE TABLESPACE语句,包含子句:设定表空间的数据文件DATAFILE表空间的管理方式 EXTENT MANAGEMENT 取值为LOCA
9、L(默认)或DICTIONARY。区的分配方式 AUTOALLOCATE(默认)或UNIFORM SIZE段的管理方式 SEGMENT SPACE MANAGEMENT 取值为MANUAL或AUTO (默认),本地管理,数据字典,自动分配,定制分配,手动管理,自动管理,语句形式:Create Tablespace 表空间名Datafile 文件名Size 整数K|MReuseExtent Management LocalAutoallocate|Uniform Size 整数K|MSegment Space Management Manual|Auto;,例2.为ORCL数据库创建一个本地管理
10、永久性的表空间ORCLTBS02 ,数据文件为E:ORACLEORCLTBS02_1.DBF大小为10M,区定制分配,每个区大小为512K,段采用手动管理方式。CREATE TABLESPACE ORCLTBS02 DATAFILEE:ORACLEORCLTBS02_1.DBF SIZE 10MEXTENT MANAGEMENT LOCAL UNIFORM SIZE 512KSEGMENT SPACE MANAGEMENT MANUAL;,例1.为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS01 ,数据文件为E:ORACLEORCLTBS01_1.DBF 大小为20M,区自动扩展
11、,段采用自动管理方式CREATE TABLESPACE ORCLTBS01 DATAFILE E:ORACLEORCLTBS01_1.DBF SIZE 20M;,例3.为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS03 ,数据文件为E:ORACLEORCLTBS03_1.DBF大小为50M,区自动扩展,段采用手动管理方式。CREATE TABLESPACE ORCLTBS03 DATAFILEE:ORACLEORCLTBS03_1.DBF SIZE 50M SEGMENT SPACE MANAGEMENT MANUAL;,(2) 创建临时表空间,使用CREATE TEMPORAR
12、Y TABLESPACE 语句创建临时表空间用TEMPFILE子句设置临时数据文件。需要注意的是临时表空间中区的分配方式只能是UNIFORM,而不能是AUTOALLOCATE,例5,为ORCL数据库创建一个本地管理临时表空间ORCLTEMP1,数据文件为D:ORACLEORCLTEMP1_1.DBF 大小20M,每个区大小为16M。CREATE TEMPORARY TABLESPACE ORCLTEMP1 TEMPFILE D:ORACLEORCLTEMP1_1.DBF SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;,临时表空间组将一个或多
13、个临时表空间构成一个表空间组。当将临时表空间组作为数据库或用户的默认临时表空间时,用户就可以同时使用该表空间组中所有的临时表空间。临时表空间组不需要显式创建,为临时表空间组指定第一个临时表空间时隐式创建,当临时表空间组中最后一个临时表空间删除时而隐式地删除。,(3) 创建撤销表空间,数据库回滚信息保存在回滚段中,撤销表空间专门用于回滚段的自动管理。如果数据库中没有创建撤销表空间,那么将使用SYSTEM表空间来自动管理回滚段。那么一个实例只能使用一个撤销表空间,可以通过参数UNDO_TABLESPACE来指定如果要使用撤销表空间对数据库回滚信息进行自动管理,则必须将初始化参数UNDO_MANAG
14、EMENT设为AUTO。,使用CREATE UNDO TABLESPACE语句创建撤销表空间在该语句中只能指定DATAFILE和EXTENT MANAGEMENT LOCAL两个子句。例7,为ORCL数据库创建一个撤销表空间ORCLUNDO01 ,数据文件为E:ORACLEORCLUNDO1_1.DBF大小为20MCREATE UNDO TABLESPACE ORCLUNDO01 DATAFILE E:ORACLEORCLUNDO1_1.DBF SIZE 20M;,2 . 修改表空间,可以对表空间进行下列修改操作:扩展表空间 修改表空间可用性 修改表空间读/写性 设置默认表空间 表空间重命名
15、注意不能将本地管理的永久性表空间转换为本地管理的临时表空间,也不能修改本地管理表空间中段的管理方式。,(1) 扩展表空间,为表空间添加新数据文件为永久表空间添加新的数据文件 ALTER TABLESPACEADD DATAFILE为临时表空间添加新的临时数据文件 ALTER TABLESPACE ADD TEMPFILE例8,为ORCL数据库的ORCLTBS01表空间添加一个大小为10 MB的新数据文件。ALTER TABLESPACE ADD DATAFILEE:ORACLEORCLTBS01_2.DBF SIZE 10M;,ORCLTBS01,改变已有数据文件的大小ALTER DATABASE DATAFILE RESIZE例10,将ORCL数据库的ORCLTBS01表空间的数据文件E:ORACLEORCLTBS01_2.DBF 大小增加到20 MB。ALTER DATABASE DATAFILEE:ORACLEORCLTBS01_2.DBF RESIZE 20M;,