Oracle資料庫 表空間 資料檔案

2021-06-19 21:46:16 字數 2910 閱讀 8088

資料檔案是資料庫的物理儲存單位,而表空間則是資料庫的邏輯組成部分。資料庫的資料是儲存在表空間中的,而乙個表空間可以由乙個或多個資料檔案組成,乙個資料檔案只能屬於乙個表空間。一旦資料檔案被加入到某個表空間後,就不能刪除這個檔案,如果要刪除某個資料檔案,只能刪除其所屬於的表空間才行。

資料庫,表空間,資料檔案,是緊密關聯的,但它們有著重要的區別:

資料庫和表空間

乙個oracle資料庫由乙個或多個叫做表空間的邏輯儲存單元組成,表空間儲存了所有資料庫的資料。

表空間和資料檔案

在oracle資料庫中的每乙個表空間由乙個或多個叫做資料檔案的檔案組成,檔案是遵守oracle執行的作業系統的物理結構,乙個資料檔案只能隸屬於乙個表空間。

資料庫和資料檔案

資料庫的資料是集中存放在組成資料庫的每個表空間的資料檔案中。

資料庫使用者和表空間

乙個資料庫使用者可以使用乙個或者多個表空間,乙個表空間也可以供多個使用者使用。使用者和表空間沒有隸屬關係。

查詢表空間和資料檔案

select  t .* from sys.dba_tablespaces t ;

select  t .* from sys.dba_data_files  t ;

實際工作中,發布資料量很大的工程時,建立表空間時有兩種方法

方法1,建立乙個表空間和乙個資料檔案,將表空間設定成自增長。這種方法的優點是建立一次表空間和資料檔案就行了,以後表空間不夠用,oracle會自動擴充套件資料檔案的大小。缺點就是,資料檔案會越來越大,以後存放和管理時,很麻煩。(ps:個人認為,這種不可控的檔案增長,越來越巨大的單個資料檔案,總之是很難受的,所有不建議這麼做。)

--建立表空間

create tablespace test_tablespace

logging 

datafile 'f

:\oracle\product\10.2.0\oradata\

test_tablespace.dbf

' --

資料檔案路徑

size 2048mautoextend on next 1023m 

maxsize unlimited 

extent management local 

segment space management auto;

方法2,建立多個資料檔案,將這些資料檔案賦給乙個表空間,表空間設定成固定大小。當表空間不足時,新建新的資料檔案,賦給表空間。這種方法,增長是可控的,個人比較喜歡這種方式。

--建立表空間

create tablespace test_tablespace

logging

datafile 'f:\oracle\product\10.2.0\oradata\

test_tablespace.dbf' 

size 1023m 

autoextend on 

next 1023m 

maxsize 2048m

extent management local

segment space management auto;

--給表空間新增資料檔案

alter tablespace test_tablespace add 

datafile 'f:\oracle\product\10.2.0\oradata\test_tablespace01.dbf' 

size 1023m  

autoextend on next 1023m 

maxsize 2048m; 

--表空間和資料檔案查詢語句

select  t .* from sys.dba_tablespaces t where t.tablespace_name = 'test_tablespace';

select  t .* from sys.dba_data_files  t where t.tablespace_name = 'test_tablespace';

--查詢表空間利用率

select 

a.a1 表空間名稱,

c.c2 型別,

c.c3 區管理,

b.b2/1024/1024 表空間大小m,

(b.b2-a.a2)/1024/1024 已使用m,

substr((b.b2-a.a2)/b.b2*100,1,5) 利用率

from 

(select  tablespace_name a1, sum(nvl(bytes,0)) a2 from dba_free_space group by tablespace_name) a,

(select tablespace_name b1,sum(bytes) b2 from dba_data_files group by tablespace_name) b,

(select tablespace_name c1,contents c2,extent_management c3  from dba_tablespaces) c

where a.a1=b.b1 and c.c1=b.b1;

刪除表空間:

意味著表空間和資料檔案的資訊從資料庫中刪除,同時也應該將相應的作業系統檔案刪除

不能刪除的表空間

系統表空間

有活動回滾段的表空間

預設臨時/永久表空間

命令:  

drop tablespace tablespace_name [including contents [and datafiles]]

including contents              -- 刪除表空間及所有段

including contents [and datafiles] --刪除表空間、所有段、資料檔案、同時刪除系統中的物理檔案

例子:drop  tablespace test_tablespace including contents and datafiles;

Oracle資料庫 表空間 資料檔案

資料檔案是資料庫的物理儲存單位,而表空間tablespace則是資料庫的邏輯組成部分。資料庫的資料是儲存在表空間中的,而乙個表空間可以由乙個或多個資料檔案組成,乙個資料檔案只能屬於乙個表空間。一旦資料檔案被加入到某個表空間後,就不能刪除這個檔案,如果要刪除某個資料檔案,只能刪除其所屬於的表空間才行。...

oracle 表空間 資料庫使用者管理

建立臨時表空間 create temporary tablespace sms temp tempfile e sms direct data sms direct temp.dbf size 32m autoextend on next 32m maxsize 2048m extent manag...

空間資料庫

引用 空間資料庫指的是地理資訊系統在計算機物理儲存介質上儲存的與應用相關的地理空間資料的總和,一般是以一系列特定結構的檔案的形式組織在儲存介質之上的。空間資料庫的研究始於20 世紀 70年代的地圖製圖與遙感影象處理領域,其目的是為了有效地利用衛星遙感資源迅速繪製出各種經濟專題地圖。由於傳統的關聯式資...