oracle關於表空間的一些操作

查看 xxx 表空間是否爲自動擴展:

select file_name,autoextensible,increment_by from dba_data_files;

select file_id,file_name,tablespace_name,autoextensible,increment_by from dba_data_files order by file_id desc; 


打開表空間自動擴展功能:

alter database datafile '/u01/app/oracle/oradata/testdb/test01.dbf' autoextend on;


查看數據文件大小:

select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 M from dba_data_files order by TABLESPACE_NAME;


查詢表空間的總容量: 

select tablespace_name, sum(bytes) / 1024 / 1024 as MB 

from dba_data_files 

group by tablespace_name; 


查詢表空間使用率:

select total.tablespace_name, 

round(total.MB, 2) as Total_MB, 

round(total.MB - free.MB, 2) as Used_MB, 

round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct 

from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB 

from dba_free_space 

group by tablespace_name) free, 

(select tablespace_name, sum(bytes) / 1024 / 1024 as MB 

from dba_data_files 

group by tablespace_name) total 

where free.tablespace_name = total.tablespace_name; 


擴展表空間:

#首先查看錶空間的名字和所屬文件及空間 

select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 

#三種擴展方法 

1.alter tablespace test add datafile '/u01/test02.dbf' size 10M(自動加一個datafile) 

2.alter database datafile '/u01/test.dbf' resize 20M; 

3.alter database datafile '/u01/test.dbf' autoextend on next 10M maxsize 1G; 


設定後查看錶空間信息:

select a.tablespace_name,a.bytes total,b.bytes used,c.bytes free,(b.bytes*100)/a.bytes "% used",(c.bytes*100)/a.bytes "% free" from sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free c where a.tablespace_name=b.tablespace_name and a.tablespace_name=c.tablespace_name; 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章