oracle表空间管理常用命令

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.查看所有表空间的碎片程度(值在30以下表示碎片很多)
select tablespace_name,sum(bytes),sum(free),sum(free)*100/sum(bytes) from (select
b.file_id file_ID,
b.tablespace_name tablespace_name,
b.bytes Bytes,
(b.bytes-sum(nvl(a.bytes,0))) used,
sum(nvl(a.bytes,0)) free,
sum(nvl(a.bytes,0))/(b.bytes)*100 Percent
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id) group by tablespace_name order by sum(free)*100/sum(bytes);
查看表空间是否自动扩展
select file_name,autoextensible,increment_by from dba_data_files;
表空间自动扩展
alter database datafile 'path:\datafile name' autoextend on next 1M maxsize 100M;

表空间大小
select tablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024
from dba_data_files
group by tablespace_name;
使用情况
select df.tablespace_name "表空间名",totalspace "总空间M",freespace "剩余空间M",round((1-freespace/totalspace)*100,2) "使用率%"
from
(select tablespace_name,round(sum(bytes)/1024/1024) totalspace
from dba_data_files
group by tablespace_name) df,
(select tablespace_name,round(sum(bytes)/1024/1024) freespace
from dba_free_space
group by tablespace_name) fs
where df.tablespace_name=fs.tablespace_name;



oracle 数据库里查看表空间使用状况;
oracle表空间的事情状况要经常查看,一般空闲比例过低的时候就应该考虑增大表看空间了。查看方法如下SQL:

方法一:

select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)

方法二:

SELECT "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select , sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by
) Total
WHERE Free.Tablespace_name =

当发现有的表空间不够的错误时,处理如下:
1:找出该表空间对应的数据文件及路径

select * from dba_data_files t
where t.tablespace_name = 'ARD'

2:增大数据文件

alter database datafile '全路径的数据文件名称' resize ***M

3:增加数据文件

alter tablespace 表空间名



add datafile '全路径的数据文件名称' ***M

注解:表空间尽量让free百分比保持在10%以上,如果低于10%就增加datafile或者resizedatafile,一般数据文件不要超过2G


/archives/2006/04/oracle9i_default_temporary_tablespace.html







--更改表空间大小
alter database datafile 'D:\ORACLE\ORADATA\ORADB\USERS01.DBF' resize 2000M
--增加表空间
alter tablespace USERS add datafile 'D:\ORACLE\ORADATA\ORADB\USERS02.DBF' size 2000M

--更改临时表空间

alter database tempfile 'D:\ORACLE\ORADATA\SRV150\TEMP01.DBF' resize 2000M
--增加临时表空间
alter tablespace temp add tempfile 'D:\ORACLE\ORADATA\ORADB\TEMP03.DBF' size 2000M;

select * from v$tempfile



alter database default temporary tablespace temp;
drop tablespace temp2 including contents and datafiles;



create temporary tablespace TEMP37 tempfile '\u01\app\oracle\oradata\oradb\TEMP37.DBF' size 2000M;
alter database default temporary tablespace TEMP37;

alter temporary tablespace TEMP add tempfile 'TEMP001.DBF' size 2000MB autoextend on maxsize 100000M;

drop tablespace TEMP0707


select username,temporary_tablespace from dba_users;
select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible from dba_temp_files

相关文档
最新文档