Oracle管理表空間和資料檔案詳解

2021-09-08 13:44:16 字數 3579 閱讀 4921

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

從物理上將:資料庫資料存放在資料檔案中

從邏輯上將:資料庫則是存放在表空間中

表空間由乙個或是多個資料檔案組成

介紹:oracle中邏輯結構包括表空間、段、區、塊

說明:資料庫由表空間構成

而表空間又是由段構成

而段又是由區構成

而區又是由oracle塊構成

這樣的一種結果,可以提高資料庫的效率

介紹:表空間用於從邏輯上組織資料庫的資料

資料庫邏輯上是由乙個或是多個表空間組成的

表空間的作用:

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

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

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

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

create tablespace 表空間名 datafile '資料檔案路徑' size 資料檔案的大小 uniform size 區的大小;

create tablespace tangtao001 datafile 'd:\t001.dbf' size 20m uniform size 128k;

向新建的表空間新增表:

create table mydept(deptno number(4),dname varchar2(15),loc varchar2(13)) tablespace tangtao001;

說明:執行完上述命令後,會建立名稱為tangtao001 的表空間,並為該錶空間建立名稱為t001.dbf的資料檔案,區的大小為128k

1、顯示表空間資訊

a) 查詢資料字典檢視dba_tablespaces。顯示表空間資訊

select tablespace_name from dba_tablespaces;

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

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

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

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

1、使表空間離線

alter tablespace 表空間名 offline;

2、使表空間聯機

alter tablespace 表空間名 online;

3、唯讀表空間

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

alter tablespace 表空間名 read only;

案例:1、知道表空間名。顯示該錶空間的所有表

select * from tall_tables where tablespace_name='表空間名';

2、知道表明,檢視該錶屬於哪個表空間

select tablespace_name,table_name from user_tables where table_name='emp';

注意:通過2,可以知道scott.emp是在system這個表空間上,現在可以將system改為唯讀,但是不會成功。因為system是系統表空間,如果是普通表空間,可以將其設為唯讀

一般情況下,有特權使用者或是dba來操作,如果是其它使用者操作,那麼要求使用者具有drop tablespace系統許可權

drop tablespace 表空間名 including contents and datafiles;

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

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

案例說明:

1、建立乙個表空間tangtao001

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

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

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

1、增加資料檔案

alter tablespace 表空間名 add datafile '資料檔案存放路徑' size 資料檔案大小;

2、增加資料檔案的大小

alter tablespace 表空間名 add datafile '資料檔案存放的路徑' resize 資料檔案新的大小;

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

3、設定檔案的自動增長

alter tablespace 表空間名 add datafile '資料檔案存放路徑' autoextend on next 每次增加的大小 maxsize 資料檔案大小的最大值;

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

案例說明:

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

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

2、使表空間離線

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

alter tablespace tangtao001 offline;

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

host move d:t01.dbf c:t01.dbf;

4、執行alter tablespace命令

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

alter tablespace tangtao001 rename datafile 'd:t01.dbf' to 'c:t01.dbf';

5、使得表空間聯機

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

alter tablespace tangtao001 online;

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

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

3、了解表空間的各個狀態

a) online

b) offline

c) read write

d) read only

4、了解移動資料檔案的原因,即使用alter tablespace和alter datatable命令移動資料檔案的方法

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

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

oracle 管理表空間和資料檔案

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

oracle 管理表空間和資料檔案

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