oracle 11g:創建表空間,查看錶空間的使用率,擴展表空間

一、創建表空間

創建語句:

create tablespace 表空間名稱 datefile '數據文件名(絕對路徑)' size 表空間大小 

autoextend on next xxxM 

extend management local uniform size xxxK

設置表空間自動擴展,表空間滿後每次自動擴展xxxM

autoextend on next xxxM

 在oracle數據庫中,表空間擴展方式(extend management)有兩種:本地管理(local)、數據字典管理(dictionary)。默認使用本地管理,對於本地管理,表空間有兩種空間分配方式:自動分配(autoallocate)、統一大小分配(uniform)。自動分配方式(autoallocate)是由系統自動決定區間(extent)大小,統一大小分配(uniform)由用戶指定區間(extent)大小。uniform默認爲1M大小,在temp表空間中是默認,但不能被應用在undo表空間。

設置表空間擴展方式爲本地管理方式,空間分配方式爲統一大小分配,指定每次分配區間時,按照等同大小進行,大小爲xxxK

extend management local uniform size xxxK

在本地創建好表空間,之後創建oracle賬戶,併爲賬戶指定表空間:

CREATE TABLESPACE EXAM_DATA01 DATAFILE 'F:\app\zwl\oradata\orcl\exam_data01.dbf' SIZE 500M 
AUTOEXTEND ON NEXT 50M 
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;

CREATE USER exam IDENTIFIED BY exam 
DEFAULT TABLESPACE EXAM_DATA01 
TEMPORARY TABLESPACE temp;
GRANT connect,resource,dba to exam;

--設置默認用戶表空間爲 EXAM_DATA01 

DEFAULT TABLESPACE EXAM_DATA01 

--臨時表空間爲temp
TEMPORARY TABLESPACE temp;

--授予權限:可以連接oracle、可以創建實體、擁有全部特權,可以創建數據庫結構

GRANT connect,resource,dba to exam;

 

二、查看錶空間的使用率

查詢表空間的大小、剩餘大小、使用率需要查詢dba_free_space表(記錄表空間剩餘空間的表)和dba_data_files表(數據庫數據文件信息表),看看這兩張表的一些字段:

dba_data_files
file_name 數據文件名稱
file_id 文件ID,整個數據庫中唯一
tablespace_name 文件所屬表空間名稱
bytes   文件字節數量

 通常表空間可能會有一個或一個以上的數據文件,這些數據文件的字節數總和就是這個表空間的大小:

--1GB=1024MB,1MB=1024KB,1KB=1024Bytes,1Bytes(字節)=8Bits(位)

select tablespace_name,sum(bytes)/(1024*1024)||'M' as total from dba_data_files group by tablespace_name 

dba_free_space
tablespace_name 文件所屬表空間名稱
file_id  文件ID,整個數據庫中唯一
bytes 文件剩餘字節數量

select tablespace_name,sum(bytes)/(1024*1024)||'M' as free from dba_free_space group by tablespace_name

連接兩張表查詢表空間使用率:

select 
	a.tablespace_name as 表空間名稱,
	a.total||'M' as 表空間大小,
	(a.total-b.FREE) as 已使用,
	b.FREE||'M' as 剩餘表空間大小,
	round((a.total - b.free) / a.total, 4)*100||'%' as 使用率
from (
select tablespace_name,sum(bytes)/(1024*1024) as total from dba_data_files group by tablespace_name
)a
left join (
select tablespace_name,sum(bytes)/(1024*1024) as free from dba_free_space group by tablespace_name
) b on a.tablespace_name = b.tablespace_name


三、擴展表空間

可通過增加數據文件的形式擴展表空間:

alter tablespace EXAM_DATA01 add datafile 'F:\app\zwl\oradata\orcl\EXAM_DATA02.DBF' size 524M;
alter database datafile 'F:\app\zwl\oradata\orcl\EXAM_DATA02.DBF' autoextend on next 50M ;

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