一、創建表空間
創建語句:
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表(數據庫數據文件信息表),看看這兩張表的一些字段:
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
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 ;