您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle表空间的管理
Oracle表空间的管理教学目标•1.理解表空间的逻辑结构和物理结构。•2.熟练掌握创建(基本)表空间。•3.掌握设置表空间的状态。•4.掌握表空间中数据文件的管理。•5.了解临时表空间。•6.掌握创建与管理临时表空间。•7.理解回滚表空间的作用。•8.掌握创建与管理回滚表空间。教学内容1认识Oracle表空间2实践案例:创建一个表空间3维护表空间4实践案例:设置默认表空间5临时表空间6回滚表空间认识Oracle表空间1Oracle的逻辑和物理结构2表空间的分类3表空间的状态Oracle的逻辑和物理结构在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成。如下图所示,一个数据库由对应一个或多个表空间,表空间逻辑上有一个或多个段(Segment)组成,物理上由一个或多个osfile组成。Oracle的逻辑和物理结构表空间的概念–表空间是用户可以在Oracle系统中使用的最大的逻辑存储结构。用户在数据库中建立的所有内容都会存储在表空间中。–从物理上说数据库的数据存放在数据文件中,从逻辑上说数据是被存放在表空间中的。–一个表空间可以有多个数据文件。一个数据文件只能属于一个表空间。数据库、表空间、数据文件、磁盘之间关系数据库表空间1表空间3表空间2数据文件1数据文件3数据文件2磁盘1磁盘2逻辑存储结构物理存储结构大楼数据库公司A公司BRoom601Room603Room1101Room101RoomA01表空间A表空间B数据文件1数据文件2数据文件3数据文件4数据文件5Oracle的逻辑和物理结构1.物理结构在物理结构中,一个表空间由一个或者多个数据文件组成,一个数据文件在物理上由操作系统块组成。(1)数据文件(DataFile)Oracle格式的操作系统文件,如.dbf文件。数据文件的大小决定了表空间的大小。(2)操作系统块(OSBlock)依赖操作系统平台,系统操作数据文件的最小单位。一个或者多个操作系统块组成了一个数据块。Oracle的逻辑和物理结构2.逻辑结构逻辑结构从上到下是包含关系,也是一对多的关系。(1)表空间(TableSpace)(2)段(Segment):段不能跨越表空间,可以跨越数据文件。(3)区段(Extent):由连续的Oracle数据库块组成,一个区段只能存在于一个数据文件中。(4)数据库块(OracleBlock):OracleDBMSI/O最小单位。OB=n*OSB。初始化参数DB_BLOCK_SIZE,一般为4KB或者8KB。表空间的分类(1)系统表空间OracleDBS创建时需要的表空间,自动创建,必需的表空间,满足DBS运行的最低要求。如system、sysaux、temp、undotbs1等。(2)非系统表空间用户创建的表空间,依据情况灵活设置。表空间的功能就相对独立,提高系统的效率。永久表空间存放永久性数据,如表,索引等。临时表空间不能存放永久性对象,用于保存数据库排序,分组时产生的临时数据。UNDO表空间保存数据修改前的镜像。基本的表空间系统中默认创建的几个表空间:SYSTEMSYSAUXUNDOTBS1TEMPUSERSEXAMPLE系统中必须的表空间有那几个?答案:SYSTEM、SYSAUX、TEMP、UNDO,像USERS、EXAMPLE等表空间是可有可无的。表空间相关信息select*fromuser_tablespaces;selecttablespace_name,contents,statusfromdba_tablespacesSELECT*FROMV$TABLESPACE;select*fromdba_data_files;selecttablespace_name,file_namefromdba_data_files;select*fromdba_temp_files;select*fromv$datafile;SELECT*FROMV$TEMPFILE--查询数据文件的读写统计信息v$filestat和v$tempstatshowparameterundo_tablespace;showparameterundo_retention;showparameterundo_management;查询表空间中数据文件的信息SQLselecttablespace_name,file_name,bytes/(1024*1024)MBfromdba_data_files;查询表空间中空闲空间大小SQLselecttablespace_name,sum(bytes/(1024*1024))free_MBfromdba_free_spacegroupbytablespace_name;--查询数据库的默认表空间select*fromdatabase_propertieswhereproperty_namelike'%TABLESPACE%';--查询用户的默认表空间selectusername,default_tablespace,temporary_tablespacefromdba_users;--永久表空间SQLALTERDATABASEDEFAULTTABLESPACEUSER;--临时表空间SQLALTERDATABASEDEFAULTTEMPORARYTABLESPACETEMP;--用户级别SQLALTERUSERUSERNAMDEFAULTTABLESPACENEW_TABLESPACE_NAME查询数据文件的信息1、查询数据文件的信息数据字典视图dba_data_files或动态数据字典视图V$datafile2、查询临时文件的信息数据字典视图dba_temp_files3、查询数据文件的使用信息可以在OEM中查看4、查询数据文件的读写统计信息动态视图v$filestat和v$tempstat表空间的状态•表空间状态属性,通过它可以对表空间的使用进行管理。离线(OFFLINE)在线(ONLINE)只读(READONLY)读写(READWRITE)•4种状态:表空间的状态•1.在线(ONLINE)•状态为ONLINE,允许访问该表空间中的数据。•设置ONLINE状态语法:•ALTERTABLESPACEtablespace_nameONLINE;表空间的状态•2.离线(OFFLINE)•状态为OFFLINE,不允许访问该表空间中的数据。–对表空间脱机备份;对应用程序升级和维护等。•设置OFFLINE状态语法:•ALTERTABLSPACEtablespace_nameOFFLINEparameter;•Parameter:切换OFFLINE状态参数–NORMAL正常;TEMPORARY临时;–IMMEDIATE立即;FORRECOVER恢复。OFFLINEParameter参数•(1)NORMAL•默认方式。Oracle执行一次检查点,将SGA区中与该表空间相关的脏缓存块全部写入数据文件中,关闭与该表空间关联的所有数据文件。•(2)TEMPORARY•临时方式。Oracle执行检查点时不检查数据文件是否可用,使得切换回ONLINE状态时,可能需要对数据库进行恢复。•(3)IMMEDIATE•立即方式。Oracle不执行检查点,切换回ONLINE状态时,必须对数据库进行恢复。•(4)FORRECOVER•恢复方式。数据库管理员可以使用备份的数据文件覆盖原有的数据文件,然后再根据归档重做日志,将表空间恢复到某个时间点的状态。此方式经常用于对表空间进行基于时间的恢复。表空间的状态•3.只读(READONLY)•可访问数据,但而不能进行更新或删除操作。•ALTERTABLESPACEtablespace_nameREADONLY;•注意事项:–表空间必须处于ONLINE状态。–表空间不能包含任何事务的回滚段。–表空间不能正处于在线数据库备份期间。表空间的状态•4.读写(READWRITE)•对表空间进行正常访问和操作。•ALTERTABLESPACEtablespace_nameREADWRITE;•注意事项:–需要保证表空间处于ONLINE状态。–除user表空间之外,不允许将Oracle的其他系统表空间设置为OFFLINE或READONLY。表空间的状态•例:假设要将myspace表空间修改为READONLY。•SQLALTERTABLESPACEmyspaceREADONLY;•通过数据字典dba_tablespaces查看当前数据库中表空间的状态。语句如下:•SQLSELECTtablespace_name,statusFROMdba_tablespaces;表空间、数据文件创建创建数据文件的SQL语句及说明SQL语句说明createtablespace创建一个表空间和组成它的数据文件createtemporarytablespace创建一个临时表空间和组成它的临时文件(临时文件是一种特殊的数据文件,用于存放临时数据,不能永久存放用户数据)altertablespace…adddatafile创建一个数据文件,并将其添加到(永久)表空间altertablespace…addtempfile创建一个临时文件,并将其添加到临时表空间createdatabase创建一个数据库及其和system表空间关联的数据文件实践案例:创建一个表空间•CREATE[TEMPORARY|UNDO]TABLESPACEtablespace_name•[DATAFILE|TEMPFILE‘file_name’SIZEsizeK|M[REUSE]•[AUTOEXTENDOFF|ON•[NEXTnumberK|MMAXSIZEUNLIMITED|numberK|M]•][,…]]•[ONLINE|OFFLINE]•[LOGGING|NOLOGGING][FORCELOGGING]•[COMPRESS|NOCOMPRESS]•[EXTENTMANAGEMENTLOCAL•[AUTOALLOCATE|UNIFORMSIZEnumberK|M]]•[SEGMENTSPACEMANAGEMENTAUTO|MANUAL];实践案例:创建一个表空间•CREATE[TEMPORARY|UNDO]TABLESPACEtablespace_name•[DATAFILE|TEMPFILE‘file_name’SIZEsizeK|M[REUSE]•[AUTOEXTENDOFF|ON•[NEXTnumberK|MMAXSIZEUNLIMITED|numberK|M]•][,…]]•[ONLINE|OFFLINE]•[LOGGING|NOLOGGING]•[FORCELOGGING]•[DEFAULTSTORAGE存储子句]•[EXTENTMANAGEMENTDICTIONARY|LOCAL•[AUTOALLOCATE|UNIFORMSIZEnumberK|M]]•[SEGMENTSPACEMANAGEMENTAUTO|MANUAL];实践案例:创建一个表空间•(1)创建表空间orclspace,设置数据文件初始大小20MB,每次自动增长5MB,最大容量为100MB。•SQLCREATETABLESPACEorclspace•DATAFILE'D:\oracle\files\orclspace.dbf'•SIZE20M•AUTOEXTENDONNEXT5M•MAXSIZE100M;•提示:如果数据文件自动扩展,则最好为该文件设置最大容量的限制。否则,数据文件的容量将会无限增大。SQLcreatetablespacemytbs01datafile‘c:\mytbs01.dbf’size500m;SQLcreatetablespacemytbs02datafile‘c:\mytbs02_1.dbf’size500m,‘c:\mytbs02_2.dbf’size500maut
本文标题:Oracle表空间的管理
链接地址:https://www.777doc.com/doc-3375577 .html