七 Oracle管理表空間和資料檔案

2022-02-01 13:48:51 字數 3147 閱讀 8622

管理表空間和資料檔案

表空間是資料庫的邏輯組成部分。

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

資料庫的邏輯結構

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

說明:資料庫是由表空間構成,而表空間又是由段構成,而段又是由區構成,而區又是由oracle塊構成的這樣一種結構。這樣做可以提高資料庫的效率。

表空間

表空間用於從邏輯上組織資料庫中的資料。資料庫在邏輯上是由乙個或多個表空間組成。通過表空間可以達到以下作用:

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

(2)dba可以將不同的資料型別部署到不同的位置,這樣有利於提高i/o效能,同時利於備份和恢復等管理操作。

建立表空間

建立表空間使用create tablespace 命令完成,需要注意的是,一般情況下,建立表空間必須是由特權使用者或者是dba來執行,如果其他使用者來建立表空間,則該使用者必須要具有create tablespace 的系統許可權。

建立資料表空間

在建立資料庫後,為了便於管理表,最好建立自己的表空間,命令如下:

create tablespace [ts_name] datafile 'd:\test\data001.dbf' 20m uniform 12k;

說明:執行上述命令後,會在相應路徑下建立名稱為ts_name的表空間,並為該錶空間建立名稱為data001.dbf的資料檔案,區的大小為128k

使用資料表空間

create table my_table(deptno number(4), dname varchar2(20), loc varchar2(30)) tablespace ts_name;

改變表空間的狀態

當建立表空間時,表空間處於聯機(online)的狀態,此時該錶空間是可以訪問的,並且該錶空間是可以讀寫的,即可以查詢該錶空間的資料,而且還可以在表空間執行各種sql語句。但是在進行系統或資料維護時,可能需要改變表空間的狀態。一般情況下,由特權使用者或是dba來操作。

(1)使表空間離線

alter tablespace 表空間名 offilne;

(2)使表空間聯機

alter tablespace 表空間名 online;

(3)唯讀表空間

當建立表空間時,表空間可以讀寫,如果不希望在該錶空間上執行update,insert,delete操作,那麼可以將表空間修改為唯讀的

alter tablespace 表空間名 read only;

(4)把錶空間改成可讀可以的

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';

刪除表空間

一般情況下,由特權使用者或是dba來操作,如果其他使用者操作,必須具有drop tablespace系統許可權。

drop tablespace '表空間名' including contents and datafiles;

說明:including contents表示刪除表空間時,也刪除該錶空間中的所有資料庫物件,而datafiles表示資料庫磁碟檔案也將刪除。

擴充套件表空間

表空間是由資料檔案組成的,表空間的大小實際上是資料檔案相加後的大小,那麼我們可以想象,假定表emp存放到data001表空間,初始大小是2m,當資料滿2m後,如果再向emp表插入資料,就會顯示表空間不足的錯誤。

所以需要擴充套件表空間,擴充套件表空間有三種方法:

1)增加資料檔案

alter tablespace sp001 add datafile 'd:\test\sp002.dbf' size 20m;

2)增加資料檔案的大小

alter tablespace sp001 add datafile 'd:\test\sp001.dbf' resize 20m;

說明:資料檔案大小不能超過500m

3)設定檔案的自動增長

alter tablespace sp001 add datafile 'd:\test\sp001.dbf' autoextend on next 10m maxsize 500m;

故障處理,移動資料檔案

有時,如果資料檔案所在的磁碟損壞了,該資料檔案將不能使用,為了能夠重新使用,需要將這些檔案的副本移動到其他的磁碟上,然後恢復。

下面以移動資料檔案sp001.dbf為例說明。

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

select tablespace_name from dba_data_files where file_name='d:\test\sp001.dbf';

2)使表空間離線

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

alter tablespace sp001 offline;

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

host move d:\test\sp001.dbf c:\test\sp001.dbf;

4)執行alter tablespace命令

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

alter tablespace sp001 rename datafile 'd:\test\sp001.dbf' to 'c:\test\sp001.dbf';

5)使新的表空間聯機

alter tablespace sp001 online;

顯示表空間資訊:

查詢資料字典檢視dba_tablespace,顯示表空間資訊

select tablespace_name from dba_tablespace;

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

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

select filename,bytes from dba_data_files where tablespace_name='表空間名';

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

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

oracle 管理表空間和資料檔案

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

oracle 管理表空間和資料檔案

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