文章目录
表空间
表空间是数据库中最大的逻辑单元,oracle数据库采用表空间将相关的逻辑组件组合在一起,一个Oracle数据库至少包含一个表空间,每个表空间由一个或者多个数据文件组成,一个数据文件只能和一个表空间相关
在每一个数据库中都有一个SYSTEM表空间,即系统表空间,该表空间是在创建数据库或者数据库安装时候自动创建的,用于存储系统的数据字典、程序单元、过程、函数、包和触发器等
表空间类型:
1、永久表空间:一般保存表、视图、过程、索引等数据
2、临时表空间:只用于保存系统中短期活动的数据
3、撤销表空间:用于帮助回退未提交的数据
表空间管理
1、创建表空间:
CREATE TABLESPACE 表空间名
DATAFILE '数据文件路径' SIZE 大小
[AUTOEXTEND ON] [NEXT 大小]
[MAXSIZE 大小];
2、查询表空间:
SELECT file_name,tablespace_name,bytes,autoextensible
FROM dba_data_files
WHERE tablespace_name='';
3、修改表空间:
ALTER TABLESPACE 表空间名
ADD DATAFILE '文件路径' SIZE 大小
[AUTOEXTEND ON] [NEXT 大小]
[MAXSIZE 大小];
3、删除表空间::
DROP TABLESPACE 表空间名;
DROP TABLESPACE 表空间名 INCLUDING CONTENTS AND DATAFILES cascade constraint;
oracle表空间增加大小(扩容)
第一步:查看表空间的名字及文件所在位置:
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name
第二步:增大所需表空间大小:
方法一:(手动增加在原有表空间上增加表空间容量)
alter database datafile '表空间位置'resize 新的尺寸
例如:
alter database datafile '\oracle\oradata\anita_2024.dbf' resize 3000m
对于oracle数据库的表空间,除了用手动增加大小外,还可以增加数据文件等方式扩展表空间大小。
方法二:增加数据文件个数(手动在原有得表空间文件基础上继续增加表空间文件数量)
alter tablespace 表空间名称add datafile '新的数据文件地址' size 数据文件大小
例如:
alter tablespace ESPS_2024 add datafile '\oracle\oradata\anita_2025.dbf' size 1000m
方法三:设置表空间自动扩展。(表空间自动扩容)
alter database datafile '数据文件位置' autoextend on next 自动扩展大小maxsize 最大扩展大小
例如:
alter database datafile '\oracle\oradata\anita_2024.dbf' autoextend on next 100m maxsize 10000m
第三步:查询表空间使用情况:
select a.tablespace_name,a.bytes/1024/1024 "sum MB", (a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",
round (((a.bytes-b.bytes)/a.bytes)*100,2) "used%" from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name)b where a.tablespace_name=b.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc;