oracle 管理表空間和資料檔案

2021-06-09 07:36:30 字數 4582 閱讀 8546

介紹ν  

表空間是資料庫的邏輯組成部分。從物理上講,資料庫資料存放在資料檔案中;

從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或多個資料檔案組成。  

資料庫的邏輯結構  

介紹ν  

oracle 中邏輯結構包括表空間、段、區和塊。  

說明一下資料庫由表空間構成,而表空間又是由段構成,而段又是由區構成,而

區又是由 oracle塊構成的這樣的一種結構,可以提高資料庫的效率。  

為了讓大家明白,我們畫圖說明邏輯關係:看圖:  

表空間  

介紹ν  

表空間用於從邏輯上組織資料庫的資料。資料庫邏輯上是由乙個或是多個表空間

組成的。通過表空間可以達到以下作用:  

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

2. dba 可以將不同資料型別部署到不同的位置,這樣  利於提高 i/o效能,同

時利於備份和恢復等管理操作。   (可以把索引,觸發器單獨放乙個表空間中)。

建立表空間ν  

建立表空間是使用 crate tablespace 命令完成的,需要注意的是,一般情況下,

建立表空間是特權使用者或是 dba 來執行的,如果用其它使用者來建立表空間,則用

戶必須要具         create tablespace 的系統許可權。  

建立資料表空間ν  

在建立資料庫後,為便於管理表,最好建立 自己的表空間  

create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform 

size 128k ;  

說明:執行完上述命令後,會建立名稱為 data01 的表空間,並為該錶空間建立

名稱為 data01.dbf 的資料檔案,區的大小為 128k  

ν 使用資料表空間   (把錶關聯到表空間,如果沒指定表空間,則預設在sys表空間裡)

create table mypart(deptno number(4), dname varchar2(14), loc 

varchar2(13)) tablespace data01;  

改變表空間的狀態ν  

當建立表空間時,表空間處於聯機的 (online)狀態,此時該錶空間是可以訪問

的,並且該錶空間是可以讀寫的,即可以查詢該錶空間的資料,而且還可以在表

空間執行各種語句。但是在進行系統維護或是資料維護時,可能需要改變表空間

的狀態。一般情況下,由特權使用者或是 dba 來操作。安全性考慮  

1. 使表空間離線  

alter tablespace 表空間名 offline;  

2. 使表空間聯機  

alter tablespace 表空間名 online;  

3. 唯讀表空間  

當建立表空間時,表空間可以讀寫,如果不希望在該錶空間上執行update,

delete,insert 操作,那麼可以將表空間修改為唯讀  

alter tablespace 表空間名 read only;  

(修改為可寫是 alter tablespace 表空間名 read write;)  

改變表空間的狀態ν  

我們給大家舉乙個例項,說明唯讀特性:  

1. 知道表空間名,顯示該錶空間包括的所有表  

select * from all_tables where tablespace_name=』表空間名』;  

2. 知道表名,檢視該錶屬於那個表空間  

select tablespace_name, table_name from user_tables where 

table_name=』emp』;  

通過 2.我們可以知道 scott.emp 是在 system 這個表空間上,現在我們可以將

system 改為唯讀的但是我們不會成功,因為 system 是系統表空間,如果是普通

表空間,那麼我們就可以將其設為唯讀的,給大家做乙個演示,可以加                              

理解。  

3.  

4. 使表空間可讀寫  

alter tablespace 表空間名 read write;  

ν 刪除表空間  

一般情況下,由特權使用者或是 dba 來操作,如果是其它使用者操作,那麼要求使用者

具    drop tablespace 系統許可權。  

drop tablespace  『表空間』 including contents and datafiles;  

說明:including contents 表示刪除表空間時,刪除該空間的所有資料庫物件,

而 datafiles 表示將資料庫檔案也刪除。  

擴充套件表空間ν  

表空間是由資料檔案組成的,表空間的大小實際上就是資料檔案相加後的大小。

那麼我們可以想象,假定表employee 存放到data01 表空間上,初始大小就是

2m,當資料滿 2m 空間後,如果在向 employee 表插入資料,這樣就會顯示空間不

足的錯誤。  

案例說明:  

1. 建立乙個表空間 sp01  

2. 在該錶空間上建立乙個普通表 mydment 其結構和 dept 一樣  

3. 向該表中加入資料 insert into mydment select * from dept;  

4. 當一定時候就會出現無法擴充套件的問題,怎麼辦?  

5. 就擴充套件該錶空間,為其增加更多的儲存空間。  三種方法:  

1. 增加資料檔案  

sql> alter tablespace sp01 add datafile  『d:\test\sp01.dbf』 size 20m;  

----------------------- page 51-----------------------

2. 增加資料檔案的大小  

sql> alter tablespace 表空間名  『d:\test\sp01.dbf』 resize 20m;  

這裡需要注意的是資料檔案的大小不要超過 500m。  

3. 設定檔案的自動增長。  

sql> alter tablespace 表空間名  『d:\test\sp01.dbf』 autoextend on next 

10m maxsize 500m;  

移動資料檔案ν  

有時,如果你的資料檔案所在的磁碟損壞時,該資料檔案將不能再使用,為了能

夠重新使用,需要將這些檔案的副本移動到其它的磁碟,然後恢復。  

下面以移動資料檔案 sp01.dbf為例來說明:  

1. 確定資料檔案所在的表空間  

select tablespace_name from dba_data_files where 

file_name=』d:\test\sp01.dbf』;  

2. 使表空間離線  

確保資料檔案的一致性,將表空間轉變為 offline 的狀態。  

alter tablespace sp01(表空間名) offline;  

3. 使用命令移動資料檔案到指定的目標位置  

host move d:\test\sp01.dbf c:\test\sp01.dbf  

4. 執行 alter tablespace 命令  

在物理上移動了資料後,還必須執行alter tablespace 命令對資料庫檔案進行

邏輯修改:  

alter tablespace sp01 rename datafile  『d:\test\sp01.dbf』 to 

『c:\test\sp01.dbf』;  

5. 使得表空間聯機  

在移動了資料檔案後,為了使使用者可以訪問該錶空間,必須將其轉變為 online

狀態。  

alter tablespace sp01(表空間名) online;  

顯示表空間資訊ν  

查詢資料字典檢視 dba_tablespaces,顯示表空間的資訊:  

select tablespace_name from  dba_tablespaces;  

顯示表空間所包含的資料檔案ν  

查詢資料字典檢視 dba_data_files,可顯示表空間所包含的資料檔案,如下:  

select file_name, bytes from dba_data_files where tablespce_name=』表

空間』;  

表空間小結ν  

1. 了解表空間和資料檔案的作用  

2. 掌握常用表空間,undo 表空間和臨時表空間的建立方法  

3. 了解表空間的各個狀態 (online, offline, read write, read only)的作用,

及如何改變表空間的狀態的方法。  

4. 了解移動資料檔案的原因,及使用alter tablespace 和 alter datatable

命令移動資料檔案的方法。  

Oracle學習日曆(七) 管理表空間和資料檔案

介紹 表空間是資料庫的邏輯組成部分。從物理上講,資料庫資料存放在資料檔案中 從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或多個資料檔案組成。表存放到資料檔案中,資料檔案是存放在表空間中的。資料庫的邏輯結構 介紹noracle中邏輯結構包括表空間 段 區和塊。說明一下資料庫由表空間構成,而表空間...

oracle 管理表空間和資料檔案

以下內容摘自oracle 11g 權威指南 tablespace 表空間 segment 段 extent 盤區 block 塊 一 表空間和資料檔案的關係 在oracle系統中,表空間與資料檔案是一對不能分開的概念,建立表空間時必須建立資料檔案,增加資料檔案時必須制定表空間。1 查詢表空間及其包含...

管理oracle的表空間和資料檔案

sql conn sys xin as sysdba 已連線。sql set wrap off sql set linesize 100 1.一些基本的操作 1 檢視表空間 sql select from v tablespace 2 檢視資料檔案 sql select from v datafil...