第7章表空间和数据文件管理主要内容7.1表空间和数据文件7.2创建表空间7.3表空间维护7.4删除表空间7.1表空间和数据文件表空间和数据文件的信息v$tablespace或dba_tablespacesv$datafile或dba_data_filesdba_temp_files返回本章7.2创建表空间种类:本地表空间(local)√数据字典表空间(dictionary)方法:命令√图形界面返回本章1创建表空间语法createtablespace表空间名datafile‘路径\文件名’size大小extentmanagementlocalautoallocate|uniform大小例7-1createtablespacets1datafile'e:\oracle\oradata\student\my1.dbf'size10mextentmanagementlocaluniformsize1m;例7-2createtablespacets2datafile'e:\oracle\oradata\student\my2.dbf'size10mextentmanagementlocalautoallocate;•作用•语法结构•设置默认临时表空间•临时表空间特点2创建临时表空间•用来支持排序•不能存储永久数据对象•使用本地管理例:select*fromemporderbysalarydesc;产生的结果先存排序区,不够就会找到临时表空间。排序区(SortArea)为有排序要求的SQL语句提供内存空间。系统使用专用的内存区域进行数据排序,这部分空间就是排序区。在Oracle数据库中,用户数据的排序可使用两个区域,一个是内存排序区,一个是磁盘临时段,系统优先使用内存排序区进行排序。如果内存不够,Orcle自动使用磁盘临时表空间进行排序。为提高数据排序的速度,建议尽量使用内存排序区,而不要使用临时段。临时表空间作用Createtemporarytablespacetemp1tempfile‘D:\oracle\oradata\student\user4.dbf’Size5m;例7-3语法结构alterdatabasedefaulttemporarytablespacetemp1;例7-4设置默认临时表空间•除非有了新的可用临时表空间,否则不能删除。•不能离线使用•不能改临时表空间为永久表空间•不能为只读状态临时表空间特点返回本章返回本节7.3.1改变表空间的状态7.3.2监控表空间的使用7.3.3改变表空间大小7.3.4移动数据文件7.3表空间维护返回本章•脱机(离线)•联机(在线)•只读•可读写7.3.1改变表空间的状态脱机状态•不能进行数据存取•一些表空间必须联机–SYSTEM–回滚表空间–缺省的临时表空间•变为脱机altertablespaceuser2offline;•变为联机alterdatabaseuser2online;只读状态altertablespaceuser2readonly;表空间只能读不能操作;可以从表空间删除数据对象;不能对undo表空间做该操作;altertablespaceuser2readwrite;返回本节查看表空间的状态selecttablespace_name,statusfromdba_tablespaces;返回本节•表空间的总大小selecttablespace_name,sum(bytes)fromdba_data_filesgroupbytablespace_name;•表空间的空闲情况selecttablespace_name,sum(bytes)fromdba_free_spacegroupbytablespace_name;•表空间的空闲百分比7.3.2监控表空间的使用7.3.3改变表空间大小•增加数据文件•改变数据文件大小–自动–手动返回本节添加数据文件altertablespacemyadddatafile'e:\oracle\oradata\student1\my1.dbf‘size10m;例7-5数据文件扩展自动:alterdatabasedatafile'e:\oracle\oradata\student1\my.dbf'autoextendon;手动alterdatabasedatafile'e:\oracle\oradata\student1\my.dbf'resize500m;返回本节7.3.4移动数据文件对于可以脱机的表空间对于不可以脱机的表空间对于可以脱机的表空间•表空间脱机•移动os文件•altertablespace•表空间联机•altertablespacemyoffline;•改os文件hostcopy•altertablespacemyrenamedatafile'e:\oracle\oradata\student1\my.dbf'toe:\oracle\oradata\student1\my2.dbf';’•altertablespacemyonline;•启动数据库到mount状态(关闭数据库)•移动os文件•执行alterdatabase命令•打开数据库对于不可以脱机的表空间•Shutdownimmediate/startupmount;•改os文件•alterdatabaserenamefile'e:\oracle\oradata\student1\my2.dbf'to'e:\oracle\oradata\student1\my.dbf‘•alterdatabaseopen返回本节7.4删除表空间Droptablespaceuser2Includingcontents(表空间非空)anddatafiles(连同OS文件)Cascadeconstraints;注意该表空间此时不能打开,比如在OEM。9i新增获得表空间信息•表空间–dba_tablespaces–v$tablespace•数据文件信息–dba_data_files–v$datafile•临时表信息–dba_temp_files–v$tempfille