您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 09-表空间和数据文件的管理
Oracle存储管理之第九章表空间和数据文件的管理第九章表空间和数据文件的管理【教学导航】知识技能目标和要求–理解表空间和数据文件等各种存储概念–理解数据库、表空间、数据文件三者的关系–掌握使用SQL命令和OEM有效地管理表空间和数据文件的方法本章重点–理解表空间各种存储概念–掌握对表空间管理方法本章难点表空间和数据文件的管理策略课时建议4课时第九章表空间和数据文件的管理9.1表空间和数据文件概述9.2表空间磁盘空间管理–9.2.1表空间管理的策略–9.2.2创建表空间–9.2.3修改表空间–9.2.4删除表空间–9.2.5查看表空间9.3管理数据文件–9.3.1数据文件管理的策略–9.3.2创建数据文件–9.3.3修改数据文件–9.3.4删除数据文件–9.3.5查看数据文件9.4在OEM中管理表空间和数据文件【内容纲要】第九章管理表空间和数据文件–使用不同的系统视图命令查看表空间和数据文件信息–使用SQL*PLUS和OEM工具管理表空间和数据文件–能根据实际情况操作表空间和数据文件包括:创建、修改、删除等【任务描述】数据库逻辑结构物理结构表空间OS块Oracle块段区数据文件Oracle将数据物理地存在数据文件中,而逻辑地存在表空间中数据库存储体系结构9.1概述【知识讲解与操作指导】为什么引入如此复杂的存储体系结构9.1概述–主要描述oracle数据库的外部存储结构–在操作系统中如何组织、管理数据。–与操作系统平台有关。是逻辑存储结构在物理上的、可见的、可操作的、具体的实现形式。–物理存储结构对应的操作系统文件存储在磁盘上。PasswordfileParameterfileArchivedLogfilesControlfilesDatafilesRedoLogfilesOracleDatabase物理结构用于描述在oracle内部组织和管理数据的方式指定数据库的物理空间如何使用与操作系统平台无关,是由oracle数据库创建和管理的。为一层次结构(Hierarchy),由表空间(tablespaces),段(segments),分区(extents),和块(blocks)TablespaceDatafileSegmentBlocksExtentSegment逻辑结构(LogicalStructure)9.1概述数据库表空间Oracle块段区9.1概述•表空间(Tablespaces):–在任一时刻只能属于一个数据库–由一个或多个数据文件所组成–数据文件(Datafiles):–可以而且只能属于一个表空间和一个数据库–是存储模式对象数据的一个容器/仓库–任何方案对象(如表、索引)都被存储在表空间的数据文件中。表空间和数据文件TablespaceDatafileSegmentBlocksExtentSegment9.1概述(1)能够将数据字典与用户数据分离开来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的I/O冲突。(2)能够将回退数据与用户数据分离开来,避免由于硬盘损坏而导致永久性的数据丢失。(3)能够将表空间的数据文件分散保存到不同的硬盘上,平均分布物理I/O操作。(4)能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复。(5)能够将某个表空间设置为只读状态,从而将数据库的一部分设置为只读状态。(6)能够为某种特殊用途专门设置一个表空间,比如临时表空间等,以优化表空间的使用效率。(7)能够更加灵活地为用户设置表空间限额。表空间和数据文件的作用9.1概述•系统(SYSTEM)–与数据库一起建立–存储数据字典–包含了系统还原段•非系统(Non-SYSTEM)表空间–存储一些单独的段–方便磁盘空间管理–控制分配给用户磁盘空间的数量SYSTEMSYSAUXUsersToolsIndextempundo表空间的分类9.1概述oracle建议:不要将用户数据存储在系统表空间中。对于大部分数据库来说,至少应创建一个非SYSTEM表空间,用它们来存放用户数据,以实现用户数据和系统数据的完全隔离。9.1概述大文件(bigfile)表空间–它只能放置一个数据文件(或临时文件)–其数据文件可以包括4G个数据块。–大文件表空间是为超大型数据库而设计,以减少数据文件的数量,使更新数据文件头部信息的操作快得多。小文件(smallfile)表空间–以前的oracle表空间的新名称。可以放置多达1024个数据文件。–System,sysaux表空间总是被创建为小文件表空间大文件表空间与小文件表空间9.2表空间的磁盘空间管理Oracle10g的表空间按照区和段进行管理针对区的分配方式的不同,有两种管理方式:•数据字典管理的表空间:–空闲分区由数据字典来管理。–当分区被分配或收回时对应的(系统)表将被修改。•本地管理的表空间:–空闲分区在表空间中管理。–用位图(Bitmap)来记录空闲分区。–位图中的每一位对应于一块或一组块。–位值指示空闲或分配。注:在创建表空间时选择其中一种空间管理方法,在以后将无法改变该方法。HeaderFreespaceDataOracle数据块包含块头(header)、数据空间(data)、空闲空间(freespace)三个部分。块的结构9.2表空间的磁盘空间管理9.2表空间的磁盘空间管理两者比较•数据字典管理的表空间:–分区的管理是在数据字典中进行的。–每一个存储在同一表空间中的段可以具有不同的存储子句。–需要合并碎片。•本地管理的表空间:–减少数据字典表的竞争–当磁盘空间分配或收回时不会产生回滚(还原数据)–不需要合并碎片9.2表空间的磁盘空间管理一、区的分配方式:UNIFORM:统一分配,指定表空间中所有区的大小都相同。AUTOALLOCATE:自动分配,指定由ORACLE来自动管理区的大小,(默认设置)在AUTOALLOCATE方式下,区的大小随表的大小自动地动态改变,其对应关系如下表表大小区大小64KB64KB1MB1MB64MB8MB1000MB64MB本地管理方式9.2表空间的磁盘空间管理二、段管理方式oracle中用来管理段中已用数据块和空闲数据块的机制。表空间的段管理方式:–MANUAL方式:使用可用列表来管理段的空闲数据块,默认设置–AUTO方式:使用位图来管理段的已用数据块和空闲数据块。本地管理方式9.3创建表空间9.3.1创建表空间的准则9.3.2使用OEM创建表空间9.3.3使用SQL命令创建表空间9.3创建表空间–1.创建多个(非SYSTEM)表空间–2.设置表空间的默认存储参数(针对数据字典管理方式)–3.为用户设置表空间配额9.3.1创建表空间的准则1.创建多个(非system)表空间使用多个表空间以便在执行数据库操作时有更大的灵活性。需要考虑如下策略:–用户数据与数据字典分开存放;–将应用程序数据彼此分开存放;–将不同表空间的数据文件存储在不同的磁盘上以减少I/O争用;–将回退段数据与用户数据分开存放,以避免磁盘故障导致数据永久丢失;9.3创建表空间9.3.1创建表空间的准则1.创建多个(非system)表空间–使单独的表空间脱机,同时使其它的表空间联机;–保留表空间用于特定类型的数据库使用,如更快的更新操作,只读操作或者临时段存储;备份单独的表空间。–能够更加灵活地为用户设置存储限额,等等9.3创建表空间9.3.1创建表空间的准则2.设置表空间的默认存储参数当创建一个新的数据字典管理的表空间时,可以为该表空间中将要创建的方案对象指定默认的存储参数。–当创建一个新的本地管理的表空间时,不需要指定默认的存储参数。注:如果没有为一个新的表空间指定默认的存储参数,则oracle针对用户操作系统的默认存储参数就成为该表空间的默认存储参数。9.3创建表空间9.3.1创建表空间的准则3.为用户设置表空间配额–配额是指用户在某个指定的表空间中允许使用的存储空间的大小。当用户创建表、索引等具有独立段结构的数据库方案对象时,都必须在表空间中为这此方案对象分配存储空间。一旦该用户用完了在某个表空间中为他分配的配额,他将不能再在这个表空间中创建方案对象。9.3创建表空间9.3.1创建表空间的准则9.3创建表空间在表空间的创建中,oracle会完成如下两件工作:–一是在数据字典和控制文件中记录下新创建的表空间–二是在操作系统中按指定的位置和文件名创建指定大小的操作系统文件,作为该表空间对应的数据文件。9.3创建表空间创建表空间的方法–使用SQL命令创建表空间–使用OEM创建表空间SQL语句表类型CREATETABLESPACE创建(永久)表空间CREATEBIGFILETABLESPACE创建大文件表空间CREATETEMPORARYTABLESPACE创建临时表空间CREATEUNDOTABLESPACE创建撤销表空间以下以创建本地管理的表空间为例,介绍表空间的创建方法使用如下的命令创建表空间(需具有CREATETABLESPACE系统权限):9.3.2使用SQL命令创建表空间9.3创建表空间9.3创建表空间有三种创建(永久)表空间的方法1)使用uniform区分配方式–在这种方式下,oracle将为表空间中所有对象都分配指定的相同大小的区(默认为1MB)。–Uniform区分配方式的优点:在表空间中不会产生磁盘碎片,可以节约磁盘空间–条件:能预测到表空间中存放的大部分对象都要求使用相同大小的区1创建(永久)表空间SQLcreatetablespacepioneeruserts01Datafile’e:\oradata\examdb\pioneeruserts01_1.dbf’size10M,’e:\oradata\examdb\pioneeruserts01_2.dbf’size20MUniformsize128K;表空间已创建9.3创建表空间2)使用AUTOALLOCATE区分配方式–在这种方式下,oracle将自动为表空间中不同对象分配相应大小的区(最小为64KB)。–缺点:在表空间中会产生磁盘碎片,进而造成磁盘空间的浪费,但可以减少DBA的工作量。–条件:能预测到表空间中存放的对象所需要的区的大小会有很大不同SQLcreatetablespacepioneeruserts02Datafile’e:\oradata\examdb\pioneerts02_1.dbf’size2MAUTOALLOCATE;表空间已创建1创建(永久)表空间9.3创建表空间3)使用AUTO段管理方式–可用segmentspacemanagement子句来指定表空间的段管理方式,注:若不使用上述子句,由默认使用manual段管理方式SQLcreatetablespacepioneerindexts01Datafile’e:\oradata\examdb\pioneerindexts01_1.dbf’size2MUniformsize128KsegmentspacemanagementAUTO;表空间已创建1创建(永久)表空间9.3创建表空间大文件表空间只能用于oracle10g数据库,而且仅在本地管理的表空间中才支持大文件表空间。SQLcreatebigfiletablespacepioneerbigts05Datafile’e:\oradata\examdb\pioneerbigts05_1.dbf’size2M表空间已创建2创建大文件表空间9.3创建表空间•用做排序操作•可以由多个用户共享•不能包含任何永久对象•Oracle推荐使用本地管理的分区/区段(Extents)SQLcreatetemporarytablespacepioneertmpts01Tempfile’e:\oradata\examdb\pioneertmpts01_1.dbf’size4MEXTENTMANAGEMENTLOCALUniformsize1K;表空间已创建注:当建立临时表空间时,不能指定autoallocate选项指定为本地管理方式,可以省略3、创建临时表空间9.3创建表空间从oracle10
本文标题:09-表空间和数据文件的管理
链接地址:https://www.777doc.com/doc-1059309 .html