Oracle数据库被划分成称作为表空间的逻辑区域,形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
--查询表空间的数据文件句语
select b.file_name "数据文件",
b.tablespace_name "表空间",
b.bytes / 1024 / 1024 "大小M",
(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 "已使用M",
substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) "使用率%"
from dba_free_space a, dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name, b.file_name, b.bytes
order by b.tablespace_name;
--删除表空间及其关联的数据文件
drop tablespace tablespacename including contents and datafiles cascade constraints;
--对现有表空间追加新的数据文件
alter tablespace tablespacename add datafile 'datafile.dbf' size 1024m autoextend on next 500m maxsize unlimited;
--修改数据文件的大小及自增方式
alter database datafile 'datafile.dbf' size 1024m autoextend on next 100m maxsize unlimited;
--修改名字或移动数据文件位置
alter database rename datafile 'datafile.dbf' to 'datafile2.dbf';
--缩小数据文件大小
alter database datafile 'datafile.dbf' resize 100M;
注意:在缩小数据文件大小的操作,resize只能收回未分配或未使用的extent空间。
对于已经存在数据的情况,你需要先把存在该数据文件里的数据转移后清空才能删除。
如何把数据文件从C盘移动到D盘呢?
很简单,三个步骤就行了。
第一步:把表空间Offline,把表空间的数据文件移动到D盘指定的目录。
第二步:修改表空间文件路径alter database rename file '旧文件路径' to '新文件路径';
第三步:把表空间Online,这样就可以了。
--查询表空间的数据文件句语
select b.file_name "数据文件",
b.tablespace_name "表空间",
b.bytes / 1024 / 1024 "大小M",
(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 "已使用M",
substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) "使用率%"
from dba_free_space a, dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name, b.file_name, b.bytes
order by b.tablespace_name;
--删除表空间及其关联的数据文件
drop tablespace tablespacename including contents and datafiles cascade constraints;
--对现有表空间追加新的数据文件
alter tablespace tablespacename add datafile 'datafile.dbf' size 1024m autoextend on next 500m maxsize unlimited;
--修改数据文件的大小及自增方式
alter database datafile 'datafile.dbf' size 1024m autoextend on next 100m maxsize unlimited;
--修改名字或移动数据文件位置
alter database rename datafile 'datafile.dbf' to 'datafile2.dbf';
--缩小数据文件大小
alter database datafile 'datafile.dbf' resize 100M;
注意:在缩小数据文件大小的操作,resize只能收回未分配或未使用的extent空间。
对于已经存在数据的情况,你需要先把存在该数据文件里的数据转移后清空才能删除。
如何把数据文件从C盘移动到D盘呢?
很简单,三个步骤就行了。
第一步:把表空间Offline,把表空间的数据文件移动到D盘指定的目录。
第二步:修改表空间文件路径alter database rename file '旧文件路径' to '新文件路径';
第三步:把表空间Online,这样就可以了。