oracle資料表空間____oracle

來源:互聯網
上載者:User

管理資料表空間和資料檔案 
資料表空間是資料庫的邏輯組成部分。從物理上講,資料庫資料存放在資料檔案中;從邏輯上講,資料庫則是存放在資料表空間中,資料表空間是由一個或多個資料檔案組成。 
oracle中邏輯結構包括資料表空間,段,區和塊。 
說明一下資料庫由資料表空間構成,而資料表空間又是由段構成,而段又是由區構成,而區又是由oracle塊構成,這樣可以提高資料庫的效率。 
資料表空間用於從邏輯上組織資料庫的資料。資料庫邏輯上是由一個或多個資料表空間組成的。通過資料表空間可以達到以下作用: 
1) 控制資料庫佔用的磁碟空間 
2) dba可以將不同資料類型部署到不同的位置,這樣有利於提高I/O效能,同時有利於備份和恢複等管理操作 
建立資料表空間 
建立資料表空間是使用create tablespace命令完成的,需要注意的是,一般情況下,建立資料表空間是特權使用者或是DBA來執行的,如果用其它使用者來建立資料表空間,則使用者必須具有create tablespace的系統許可權。 
建立資料資料表空間 
在建立資料庫後,為便於管理表,最好建立自己的資料表空間。 
create tablespace morf01 datafile ‘d:/test/morf01.dbf’ size 20m uniform size 128k 
執行完上述命令後,會建立名稱為morf01的資料表空間,並為該資料表空間建立名稱為morf01.dbf的資料檔案,區的大小為128k 
使用資料表空間 
create  table mytable(A number(3)) tablespace morf01; 
改變資料表空間的狀態 
當建立資料表空間時,資料表空間處於聯機(online)的狀態,此時該資料表空間是可以訪問的,並且該資料表空間是可以讀寫的,即可以查詢該資料表空間的資料,還可以在資料表空間執行各種語句,但是在進行系統維護或是資料維護時,可能需要改變資料表空間的狀態。一般情況下,由特權使用者或DBA來操作。 
1) 使資料表空間離線 
alter tablespace morf01 offline; 
2) 使資料表空間聯機 
alter tablespace morf01 online; 
3) 唯讀資料表空間 
當建立資料表空間時,資料表空間可以讀寫,如果不希望在該資料表空間上執行insert/update/delete操作,那麼可以將資料表空間修改為唯讀 
alter tablespace morf01 read only; 
開啟讀寫權限: 
alter tablespace morf01 read write; 
4) 知道資料表空間名,顯示該資料表空間包括的所有表 
select * from all_tables where tablespace_name=’資料表空間名’; 
5) 知道表名,查看該表屬於哪個資料表空間 
select tablespace_name,table_name from user_tables where table_name=’emp’; 
我們可以知道Scott.emp是在system這個資料表空間上,現在我們可以把system改成唯讀,但是我們不會成功,因為system是系統資料表空間,如果是普通資料表空間,那麼我們就可以將其設為唯讀。 
6) 刪除資料表空間 
一般情況下,由特權使用者或是DBA來操作,如果是其他使用者操作,那麼要求使用者具有drop tablespace系統許可權。 
drop tablespace 資料表空間名 including contents and datafiles 
說明:including contents表示刪除資料表空間時,刪除該空間的所有資料庫物件,而datafiles 表示將資料庫檔案也刪除。 
7) 擴充資料表空間 
資料表空間是由資料檔案組成的,資料表空間的大小實際上就是資料檔案相加後的大小。那麼我們可以想象,資料插入太多的話必然存在資料表空間不足的錯誤提示。此時我們就應該想辦法來擴充資料表空間,有三種方法: 
○1增加資料檔案 
alter tablespace morf01 add datafile ‘d:/test/morf001.dbf’ size 20m 
○2增加資料檔案的大小 
alter tablespace 資料表空間名 ‘d:/test/morf01.dbf’ resize 200m; 
這一要注意一點就是資料檔案的大小不要超過500m 
○3設定檔案的自動成長 
alter tablespace 資料表空間名 ‘d:/test/morf01.dbf’ auto extend on next 10m maxsize 500m; 
移動資料檔案 
有時,如果你的資料檔案所在的磁碟損壞時,該資料檔案將不能再使用,為了能夠重新使用,需要將這些檔案的副本移動到其它的磁碟,然後恢複。 
下面以移動資料檔案morf01.dbf為例來說明。 
1) 確定資料檔案所在的資料表空間 
select tablespace_name from dba_data_files where file_name=’d:/test/morf01.dbf’ 
2)時資料表空間離線 
確保資料檔案的一致性,將資料表空間轉變為offline的狀態 
alter tablespace morf01 offline; 
3)使用命令移動資料檔案到指定的目標位置 
host move d:/test/morf01.dbf  c:/test/morf01.dbf; 
4)執行alter tablespace命令 
在物理上移動了資料後,還必須執行alter tablespace命令對資料庫檔案進行邏輯修改 
alter tablespace morf01 rename datafile ‘d:/test/morf01.dbf’ to ‘c:/test/morf01.dbf’; 
5)使資料表空間聯機 
在移動了資料檔案後,為了使使用者可以訪問該資料表空間,必須將其轉變為online狀態 
alter tablespace morf01 online; 
顯示資料表空間資訊 
查詢資料字典視圖dba_tablespaces,顯示資料表空間的資訊: 
select tablespace_name from dba_tablespaces; 
顯示資料表空間所包含的資料檔案 
查詢資料字典視圖dba_data_files ,可顯示資料表空間所包含的資料檔案,如下: 
select file_name,bytes from dba_data_files where tablespace_name=’資料表空間名’; 
其它資料表空間 
1) 索引資料表空間 
2) undo資料表空間 
3) 暫存資料表空間 
4) 非標準塊的資料表空間

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.