Oracle数据库基础及应用第10章管理表空间和文件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

管理表空间和文件本章内容10.1表空间概述10.2管理表空间10.3管理数据文件10.4控制文件的管理10.5日志文件的管理10.1表空间概述•表空间是Oracle数据库中最大的逻辑结构。Oracle数据库是由一个或多个表空间组成。•表空间和数据库物理结构联系密切。它在物理上与磁盘上的数据文件相对应。数据逻辑上存放在表空间中;物理上存放在数据文件中。Oracle数据库的存储结构表空间的作用•控制数据库所占用的磁盘空间。•控制用户所占用的表空间配额。•通过表空间管理数据流向,提高I/O性能。•将表空间设置为只读状态从而保持静态数据。•表空间提供了一个备份和恢复单位。表空间的类型•按是否存放的是系统数据分:•按表空间的存放内容分:•按表空间中文件的大小及最多个数分:表空间的类型I按是否存放的是系统数据分:•系统表空间:SYSTEM:存储Oracle的系统数据(如数据字典表)。创建数据库时,SYSTEM第一个被创建,具有较高的管理权限,不能被脱机。SYSAUX:是Oracle新引入的辅助系统表空间。存放其他可选组件的系统数据。两者都不可以被删除和更改。•非系统表空间:分离不同类型数据信息,便于管理表空间。表空间的类型II•按表空间内容分:永久性表空间、临时表空间、撤销表空间selecttablespace_name,contentsfromdba_tablespaces;永久性表空间:存放永久性数据。临时表空间:存储的是临时性数据。(orderby等SQL语句会产生大量的临时数据。在创建用户时,要给其指定一个临时表空间,存放其操作产生的临时数据,如果没有指定,就会增用系统表空间,影响服务器效率。)撤销表空间:存放回滚段的数据信息。表空间的类型III•大文件表空间、小文件表空间select*fromv$tablespace;selecttablespace_name,bigfilefromdba_tablespaces;大文件表空间:是Oracle引入的表空间,为超大数据库设计的。大文件表空间只能放置一个数据文件,数据文件可以包括4G个数据块。最大可以达到32TB。小文件表空间:可以放置1022个数据文件。表空间的区、段管理方式•区(Extent)的管理方式•段(Segment)的管理方式表空间的区管理方式针对区的分配方式的不同,表空间的管理有两种管理方式:•数据字典管理方式(DMT)传统管理方式。10g已经不再使用该方式。Oracle通过对数据字典中相关的基础表进行更新来分配新区、回收旧区。•本地管理方式(LMT)11g默认的管理方式。表空间中所有数据文件头均有一个位图(bitmap),用于记录表空间所有区的分配情况。更新该位图来实现区的分配和回收。不对任何表作更新操作。在本地管理方式下,可以用关键字来指定表空间区的分配方式:•UNIFORM:统一分配,所有区大小都相同。•AUTOALLOCATE:自动分配,指定由Oracle来自动管理区大小,Oracle会自动选择合适的大小。表空间的段管理方式在本地管理方式中,还可以指定段的管理方式:段的管理主要是Oracle管理段中已用数据块和空闲数据块的机制。•MANUAL(手工):通过空闲列表管理。•AUTO(自动):使用位图管理。根据位图中取值来判断数据块是否可用。效率高。表空间的状态一、读写(readwrite)二、只读(Readonly)三、脱机状态(Offline)•正常(Normal):执行检查点,不需要恢复。•临时(Temporary):执行检查点,但不必保证所有数据文件都联机可用;如脱机时,有文件不可用,忽略错误。可能需要恢复。•立即(Immediate):不执行检查点。需要恢复。•用于恢复(ForRecover):用于恢复的关闭方式。10.2管理表空间•10.2.1管理表空间原则1.使用多重表空间。–将用户数据与数据字典数据分离,并将不同表空间的数据文件分别存储在不同磁盘上可以降低I/O竞争;–将一个应用的数据与其他应用分离,可以避免表空间脱机时多个应用受到影响;–可根据需要将单个表空间脱机,从而获得较好的可用性;–通过为不同类型的数据库预留表空间,以达到优化表空间的目的,如更新较高的或只读、或临时段存储等;–备份单个表空间。•2.为用户指定表空间限额。–要创建、管理与使用表空间,必须首先以Sys用户并以assysdba身份登录数据库。–启动SQL*Plus时的帐户和口令不需要加引号。–命令格式:sqlplussys/syspasswordassysdba10.2.2创建表空间•用户必须拥有Createtablespace权限才能创建表空间。•所有的表空间都应有sys用户来创建。•在表空间的创建中,Oracle完成几个工作:–在数据字典、控制文件中记录该表空间。–在操作系统中指定相应的物理文件对应数据文件。–在预警文件中记录下创建表空间的信息。1.创建永久性的表空间1.要指定表空间名;2.指定表空间的类型;3.指定和表空间物理对应的数据文件及属性;4.指定区的管理参数;5.指定段的管理参数;6.指定其他属性logging/nologging等命令格式:SQLCREATE[undo]TABLESPACEtablespace_name[datafilefilespec[autoextend_clause][,filespec[autoextend_clause]]…][{minimumextentinteger[k|m]|blocksizeinteger[k]|{logging|nologging}|defaultstorage_clause|{online|offline}|{permanent|temporary}|extent_management_clause|segment_management_clause};•Createundotablespace:创建还原表空间,用于存入重做日志文件•Createtemporarytablespace:创建临时表空间,用于临时数据的存放;•Createtablespace:创建存放用户数据表空间•Tablespacename:表空间名•datafilefilespec…:指定数据文件的具体位置和大小•如果有多个文件时,用逗号“,”隔开•文件名必须为绝对地址,而不能是相对地址•Logging|nologging:是否创建重做日志•Extentmanagementlocal:存储区管理方法•本地管理(LOCAL):用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘.同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。•UNIFORMSEGMENTSPACEMANAGEMENT:指定区大小,也可使用默认值(1MB)•segmentmanagementlocal:磁盘扩展管理方法•使用该选项时区大小由系统自动确定。•AUTO:只能使用在本地管理的表空间中.使用LOCAL管理表空间时,数据块中的空闲空间增加或减少后,其新状态都会在位图中反映出来。例:创建一个名为tbspace的表空间:SQLCREATETABLESPACEtbspacenologgingdatafile‘D:\app\Administrator\oradata\tbspace\tbspace01.ora’size50mblocksize8192extentmanagementlocaluniformsize256ksegmentspacemanagementauto;•2.使一个表空间脱机命令格式:SQLALTERTABLESPACEtablespace_nameoffline;例:将表空间tbspace脱机:SQLALTERTABLESPACEtbspaceoffline;注意:SYSTEM表空间不能脱机•3.使一个表空间联机命令格式:SQLALTERTABLESPACEtablespace_nameonline;例:将表空间tbspace联机:SQLALTERTABLESPACEtbspaceonline;•4.使表空间只读命令格式:SQLALTERTABLESPACEtablespace_namereadonly;例:将表空间tbspace只读:SQLALTERTABLESPACEtbspacereadonly;•5.使表空间可读可写命令格式:SQLALTERTABLESPACEtablespace_namereadwrite;例:将表空间tbspace脱机:SQLALTERTABLESPACEtbspacereadwrite;•6.创建临时表空间命令格式:SQLCREATETEMPORARYTABLESPACEtablespace_nametemfile‘data_file_path_andfile_name’sizemegabytesmautoextenon|offextentmanagementlocaluniformsizeextent_size;例:创建临时表空间tempSQLCREATETEMPORARYTABLESPACEtemptempfile‘D:\app\Administrator\oradata\temp\temp01.ora’size500mautoextendoffextentmanagementlocaluniformsize512k;•7.添加临时表空间的数据文件命令格式:SQLALTERTABLESPACEtablespace_nameaddtempfile‘path_and_file_name’sizenm;例:为临时表空间temp_ren添加数据文件:SQLALTERTABLESPACEtemp_renaddtempfile‘D:\app\Administrator\oradata\temp\temp.dbf’size100m;•8.调整临时表空间的数据文件命令格式:SQLALTERDATABASEtempfile‘path_and_file_name’resizemega_bytem;例:调整临时表空间的数据文件大小SQLALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’resize20m;•9.将表空间的数据文件或临时文件脱机命令格式:SQLALTERDATABASEdatafile‘path_and_file_name’offline;或SQLALTERDATABASEtempfile‘path_and_file_name’offline;示例:SQLALTERDATABASEdatafile‘D:\app\Administrator\oradata\temp\temp.ora’offline;•10.将临时表空间联机命令格式:SQLALTERDATABASEtempfile‘path_and_file_name’online;例:SQLALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’online;•11.删除表空间,但不删除其文件命令格式:SQLDROPTABLESPACEtablespace_name;例:删除表空间tbspace,但不删除其文件SQLDROPTABLESPACEtbspace;•12.删除包含目录内容的表空间命令格式:SQLDROPTABLESPACEtablespace_nameincludingcontents;例:删除表空间tbspace及其包含的内容:SQLDROPTABLESPACEtbspaceincludingcontents;•13.删除包含目录内容和数据文件在内的表空间命令格式:SQLDROPTABLESPACEtablespace_nameincl

1 / 80
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功