oracle資料庫管理之表空間

2021-07-03 06:17:00 字數 2560 閱讀 5945

create tablespace spacename  -----表空間名稱

logging

size 32m -----初始大小

autoextend on -----開啟自動擴充套件

next 32m maxsize 20480m -----每次增加32m,最大空間20g

extent management local; -----使用本地管理區

create temporary tablespace spacename -----臨時表空間名稱

size 32m -----初始大小

autoextend on -----開啟自動擴充套件

next 32m maxsize 20480m -----每次增加32m,最大空間20g

extent management local; -----使用本地管理區

表空間(table space)是oracle資料庫中最大的邏輯結構。從邏輯上說,oracle資料庫是由若干個表空間組成的。表空間與資料庫的物理結構有著十分密切的關係,它與磁碟上若干個資料檔案相對應。從物理上說資料庫的資料被存放在資料檔案中,從邏輯上說資料是被存放在表空間中 。 —— [ 開源中國 ]

乙個資料庫通常有system、sysaux和temp三個預設表空間,乙個或多個臨時表空間,而且還有乙個撤銷表空間和幾個應用程式專用的應用表空間。可以建立新的表空間來滿足使用者或應用程式對資料庫儲存空間的需求。建立表空間需要決定建立什麼型別的表空間。

系統表空間

系統表空間包括system和sysaux表空間,其它表空間是非系統表空間。系統表空間在所有資料庫中都是必須的,是自動建立的,一般存放資料字典表及其資料。

永久表空間

永久表空間用於儲存永久性的資料,如系統資料,應用系統資料。每個使用者都會分配乙個永久表空間,以便儲存其方案物件的資料。除了撤銷(undo)表空間,相對於臨時表空間( temporary)表空間來說,其它表空間就是永久表空間(permanent)表空間,如系統表空間。

臨時表空間

執行具有排序(order by)、分組彙總(group by)、索引(create index)等功能的sql語句時,會產生大量臨時資料。伺服器程序首先將臨時資料存放到pga區的排序區中,當排序區不夠用時,伺服器程序就會在臨時表空間中建立臨時段,並將這些臨時資料存放到臨時段中。

如果在建立使用者時沒有為使用者指定乙個臨時表空間,那麼就會使用system表空間來建立臨時段,存放臨時資料。這樣做的結果是:

占用system表空間的儲存空間,是可用的儲存空間下降

頻繁地分配和釋放臨時段,會使system表空間中產生大量的儲存碎片,使磁碟的讀取效率下降

由於這些原因,會直接影響資料庫的效能

如果在資料執行過程中,經常有大量的併發程式,為了避免在system表空間中儲存臨時資料,dba應該在資料庫中建立乙個專門用來儲存臨時資料的臨時表空間,對應的檔案稱為臨時檔案。臨時表空間可以被所有使用者共享使用,如temp表空間。

使用者的臨時表空間是建立這個使用者時建立的。資料庫預設臨時表空間是在建立(create database)資料庫時,使用default temporary table space子句指定。

撤銷表空間

大檔案表空間和小檔案表空間

控制資料庫所占用的磁碟空間

控制使用者所占用的表空間配額,因此也就控制了使用者所占用的空間配額

通過將不同表的資料、分割槽表的不同分割槽的資料放置到不同的表空間(或其中的資料檔案)中,可以提高資料庫的i/o效能,並有利於進行部分備份和恢復等管理工作

能夠將乙個表的資料和這個表的索引資料分別放置在不同的表空間(或其中的資料檔案)中,同樣可以提高資料庫的i/o效能

可以將表空間設定成唯讀狀態而保持大量的靜態資料

表空間提供了乙個備份和恢復的單位。oracle提供了按表空間備份和恢復的功能

讀寫(read-write)

預設情況下所有的表空間都是讀寫狀態。任何具有表空間配額並且具有適當許可權的使用者都可以讀寫表空間中的資料。

唯讀(read-only)

如果將表空間設定為唯讀狀態,則任何使用者(包括dba)都無法向該錶空間中寫入資料,也無法修改表空間中已有的資料。這種限制與使用者的許可權無關。

將表空間設定成唯讀狀態的主要目的:避免對資料庫中的靜態資料進行修改。使使用者只能以select方式查詢唯讀資料,不能使用insert、update、delect等方式修改資料。由於唯讀表空間中的資料不會被修改,因此dba只需要將唯讀表空間備份即可。如果資料庫中儲存的是唯讀資料,將這些資料儲存在乙個單獨的表空間中,然後將這個表空間設定為唯讀狀態,不僅能夠提高資料的安全性,而且可以減輕dba管理和維護工作量。

離線狀態(offline)

在有多個應用表空間的資料庫中,dba可以通過將某個應用表空間設定為離線狀態,使該錶空間暫時不讓使用者訪問。使用者仍然可以訪問資料庫的其它表空間。也可以將某個處於離線狀態的表空間重新設定為聯機狀態。dba可以通過設定改變聯機或離線狀態。

Oracle資料庫之表空間

表空間 1.表空間的建立 建立表空間的時候需要指定該錶空間的物理檔案 create tablespace user1 datafile d oracle user1 data.dbf size 20m 表空間名字 user1 物理檔案 user1 data.dbf 大小20m 目錄 d oracle...

資料庫 之Oracle 操作表空間

oracle 把乙個資料庫按照功能劃分成若干個空間儲存資料。在磁碟上每個資料表空間對應乙個檔案。表空間的建立方式 create tablespace 表空間名字 datafile 檔案路徑和檔名名 size 表空間大小 create tablespace 表空間名字 home oracle data...

oracle 資料庫表空間

1 建立表空間 格式 建立表空間 create tablespace 表空間名 datafile 表空間檔案儲存物理路徑.ora size 500m defaultstorage autoextend on initial 100m next 100m minextents 20 maxextent...