Oracle表空间详解
1.表空间的分类
Oracle数据库把表空间分为两类:系统表空间和非系统表空间。
1.1系统表空间指的是数据库系统创建时需要的表空间,这些表空间在数据库创建时自动创建,是每个数据库必须的表空间,满足数据库系统运行的最低要求,如系统表空间中存放的数据字典、还原段。在用户没有创建非系统表空间时,系统表空间可以存放用户数据或索引等,但是这样做会增加系统表空间的I/O,影响系统效率。
1.2非系统表空间是用户根据业务需求而创建的表空间,非系统表空间可以按照数据多少、使用频度、需求数量等方面灵活设置,这些表空间可以存储还原段或者临时段,可以有效的提高系统的效率。
2.创建表空间
2.1创建常用表空间
create tablespace user_data001 datafile 'd:user_data001.dbf' size 100M;
2.2创建本地管理的表空间
create tablespace bendi_data datafile 'd:endi_data.dbf' size 100M
extent management local uniform size 1M;
2.3创建还原表空间
create undo tablespace user_undo datafile 'd:user_undo.dbf' size 10M;
2.4创建临时表空间
create temporary tablespace user_temp tempfile 'd:user_temp.dbf' size 20M
extent management local
uniform size 1M;
2.5创建默认临时表空间
默认临时表空间指的是一旦数据库启动则默认使用该表空间作为默认的临时表空间,用于存放用户会话数如排序操作。默认临时表空间可以在创建数据库时创建,指令为default temporary tablespace ,也可以在数据库创建后创建,此时需要先建立一个临时表空间,再使用alter database default temporory tablespace 指令更改临时表空间。
2.6创建大文件表空间
create bigfile tablespace bigfiletbs datafile 'd:igfiletbs001.dbf' size 2G;
大文件表空间由一个大文件组成,而不是由多个传统的小文件组成,这使得Oracle有能力创建和管理大文件。正是大文件表空间和大文件的一一对应特性,使得表空间成为磁盘空间管理、备份和恢复的操作对象。
3.表空间管理
3.1只读管理就是把表空间设置为只读状态,这样的表空间中的数据只能被用户读取,而不能做任何修改或插入操作,只读表空间不被重做日志保护,减少重做日志的大小。将表空间设置为只读状态:alter tablespace user_tas read only;
3.2修改表空间大小:
第一种是在创建表空间时,使用AUTOEXTEND ON字句使得表空间在需要的时候可以自动扩展
create tablespace manager_tbs1 datafile 'd:/tbs_manager1/tbs1.dbf' size 100M autoextend on;
第二种是在创建表空间后使用ALTER DATABASE DATAFILE file_name(完整路径) AUTOEXTEND ON
第三种是在表空间中增加数据文件
alter tablespace manage_tbs add datafile 'd: bs_manager bs002.dbf' size 50M;
第四种方法是修改数据文件的大小
alter database datafile 'd: bs_manager bs002.dbf' resize 100M;
4.删除表空间
当不需要一个表空间时,可以删除该表空间以释放磁盘空间。
DROP TABLESPACE tablespace_name
[INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]
including contents:删除表空间中的所有区段
and datafiles:删除表空间中的数据文件,该文件时一个Oracle格式的操作系统文件
cascade constraints:删除和该表空间中表相关的引用完整性约束,外部表会引用该表空间的表的唯一键等作为外部表的引用。
-------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!