名称 | 分类 | 说明 |
EXAMPLE | 非系统表空间 | 示例表空间,存放示例数据库的方案对象信息及其培训资料 |
SYSAUX | 系统表空间 | 辅助系统表空间,用于减少system表空间的负荷,提高系统的工作效率。是oracle 10g新增加的表空间 |
SYSTEM | 系统表空间 | 系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,存放着方案对象(如表,索引,同义词,序列)的定义信息,存放着所有pl/sql 程序(如过程,函数,包,触发器)的源代码, 是oracle数据库中最重要的表空间。它属于SYS和SYSTEM方案,仅被SYS和SYSTEM或其他具有足够权限的用户使用。即使是SYS 和SYSTEM用户也不能删除或重命名该空间。他是用户的默认表空间,即当用户在创建一个对象时,如果没有指定特定的表空间,该对象的数据也会被保存在 SYSTEM表空间中。 |
TEMP | 系统表空间 | 临时表空间,存放临时表和临时数据,用于排序。每个数据库都应该有一个(或创建一个)临时表空间,以便在创建用户时将其分配给用户,否则就会将TEMP表空间作为临时表空间。 |
UNDOTBS1 | 非系统表空间 | 重做表空间,存放数据库的有关重做的相关信息和数据 |
USERS | 非系统表空间 | 用户表空间, 存放永久性的用户对象的数据和私有信息,因此也被称为数据表空间。每个数据库都应该有一个(或创建一个)用户表空间,以便在创建用户时将其分配给用户,否 则将会使用SYSTEM表空间来保存数据,而这种做法是不好的。一般讲,系统用户使用SYSTEM表空间,而非系统用户使用USERS表空间 |
默认的表空间
system,sysaux,temp,undotbsl,user
查看数据库的表空间
select tablespace_name from dba_tablespaces;
查看表空间数据文件路径
select * from dba_data_files
1、创建表空间
语法:create tablespace 表间名 datafile '数据文件名' size 表空间大小......
create temporary(临时表空间)tempfile '数据文件名' size 表空间大小......
创建数据表空间
create tablespace text_temp datafile '/oracle/oradata/DATAFILE/text_temp.dbf' (路径根据实际配置修改)
size 4096M autoextend on next 50M ---自动扩展为50M
maxsize unlimited ---大小不受限制
创建临时表空间
create temporary tablespace text_temp tempfile '/oracle/oradata/DATAFILE/text_temp01.dbf' size 800M
autoextend on next 50M ---自动扩展为50M maxsize 1000M
2、表空间管理
1、增加新的数据文件来增加表空间大小:
alter tablespace text_temp add datafile '/oracle/oradata/DATAFILE/text_temp02.dbf' size 2048M autoextend on next 50M maxsize unlimited;
2、手动增加数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf ' RESIZE 4000M;
3、设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf AUTOEXTEND ON NEXT 100M MAXSIZE 10000M; ---autoextend off
设置默认表空间
alter database default temporary tablespace myspace; --修改默认的临时表空间为myspace
alter database default tablespace myspace; --修改默认的普通表空间为myspace
select default_tablespace from user_users; --查询当前用户的默认表空间
Select a.property_name,a.property_value from database_properties a where a.property_name like ‘%DEFAULT%’;--查询默认表空间和临时表空间
3、删除表空间
drop tablespace tablespace_name including contents and datafiles; ---删除表空间连视图等对象一起删除并将数据文件一起删除
4、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;
5、查看表空间物理文件的名称及大小
select tablespace_name, file_id, file_name, round(bytes/(1024*1024*1024),0) total_space from dba_data_files order by tablespace_name;
6、查看表空间的使用情况
SELECT Upper(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)" FROM (SELECT TABLESPACE_NAME,
Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME, Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1
希望这次分享对大家有帮助,在下文凯,感谢老铁的三连,术之尽头,一零化流。