oracle 11g 學習筆記 10_31_管理資料表空間和資料檔案

來源:互聯網
上載者:User
管理資料表空間和資料檔案

介紹:資料表空間是資料庫的邏輯組成部分。從物理上講,資料庫資料存放在資料檔案中;從邏輯上講,資料庫則是存放在資料表空間中,資料表空間由一個或是多個資料檔案組成。
資料庫的邏輯結構
oracle中邏輯結構包括資料表空間、段、區和塊。
資料庫是由資料表空間構成,而資料表空間又是由段構成,而段又是由區構成,而區又是由oracle塊構成的這樣一種結構,可以提高資料庫的效率。
一、資料表空間

資料表空間用於從邏輯上組織資料庫的資料。資料庫邏輯上是由一個或是多個資料表空間組成的,通過資料表空間可以達到:
1)控制資料庫佔用的磁碟空間
2)dba可以將不同資料類型部署到不同位置,這樣有利於提高i/o效能,同時利於備份和恢複等管理操作。

*建立資料表空間
建立資料表空間是使用create tablespace命令完成的,需要注意的是,一般情況下,建立資料表空間是特權使用者或是dba來執行的,如果用其它使用者來建立資料表空間,則使用者必須具有create tablespace的系統許可權。
*建立資料資料表空間
在建立資料庫後,為了便於管理表,最好建立自己的資料表空間

create tablespace space001 datafile 'e:\oracle\space001.dbf' size 20m uniform size 128k

那麼,當執行完上面命令後,會建立一個名為space001的資料表空間,並為該資料表空間建立名稱為space001.dbf的資料檔案,區的大小為128k
*改變資料表空間的狀態
當建立資料表空間時,資料表空間處於聯機的(online)狀態,此時該資料表空間是可以訪問的,並且該資料表空間是可以讀寫的,即可以查詢該資料表空間的資料,而且可以在資料表空間執行各種語句。但是在進行系統維護或是資料維護時,可能需要改變資料表空間的狀態,一般情況下,由特權使用者或是dba來操作。
(1)使資料表空間離線
alter tablespace users(資料表空間名) offline;
(2)使資料表空間聯機
alter tablespace users(資料表空間名) online;
(3)唯讀資料表空間

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

alter talespace query_data read only

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

select * form all_talbes where tablespace_name='資料表空間名';

.知道表名,查看改表屬於哪個資料表空間

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

*刪除資料表空間
一般情況下,由特權使用者或是dba來操作,如果是其它使用者操作,要求使用者具有drop tablespace系統許可權

drop tablespace ‘資料表空間名’including contents and datafiles;

說明:including contents表示刪除資料表空間時,刪除該空間的所有資料對象,而datafile表示將資料庫檔案也刪除。
*擴充資料表空間
資料表空間是由資料檔案組成的,資料表空間的大小實際上就是資料檔案相加後的大小。那麼假定employee存放到data01資料表空間上,初始大小就是2m,當資料滿2m空間後,如果再向employee表插入資料,那麼就會顯示空間不足的錯誤。

案例:
1、建立資料表空間
2、在該資料表空間建立一個普通表 mydment 其結構和dept一樣
3、向該表插入資料 insert into mydment select * from dept;
4、擴充資料表空間,為其增加更多的儲存空間,三種方法:
i、增加資料檔案

alter tablespace space001 add datafile 'e:\oracle\space002.dbf' size 20m

ii、增加資料問價的大小

alter tablespace 資料表空間名 'e:\oracle\space001.dbf' resize 20m

需要注意的是資料檔案的大小不能超過500m
ii、設定檔案的自動成長

alter tablespace 資料表空間名 'e:\oracle\space001.dbf' autoextend on next 10m maxsize 500m;

*移動資料檔案
有事,當資料檔案所在的磁碟損壞時,該資料檔案將不能再使用,為了能夠重新使用,需要將這些檔案的副本移動到其它的磁碟,然後恢複。
.比如要移動space001.dbf
1)確定資料檔案所在的資料表空間

select tablespace_name from dba_files where file_name='e:\oracle\space001.dbf';

2)使資料表空間離線

alter tablespace space001 offline;

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

host move e:\orcle\space001.dbf f:\space001.dbf

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

alter tablespace space001 rename datafile ‘e:\oracle\space001.dbf’ to 'f:\space001.dbf'

5)使用資料表空間聯機

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

alter tablespace space001 online;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.