oracle 表 表空間 數據文件

  數據文件是數據庫的物理存儲單位,而表空間TableSpace則是數據庫的邏輯組成部分。數據庫的數據是存儲在表空間中的,而一個表空間可以由一個或多個數據文件組成,一個數據文件只能屬於一個表空間。一旦數據文件被加入到某個表空間後,就不能刪除這個文件,如果要刪除某個數據文件,只能刪除其所屬於的表空間才行。
  產生表空間一般都是DBA或特權用戶來完成的,如果要以其他的身份來產生,這個用戶必須由Create tablespace權限才行。產生一個表空間時,一般需要產生一個數據文件,並確定文件的大小和段的大小。
產生一個表空間,確定數據文件,文件大小和區大小。

 

  create tablespace date01 datafile d:/oracle/oradata/scut/date01.dbf size 200m uniform size 128k
刪除一個表空間和數據文件:
drop tablespace date01 including contents and datafiles;

改變一個表空間的大小:
? 添加數據文件:
alter tablespace date01 add datafile d:/oracle/oradata/scut/date03.dbf size 50m;
? 手工增加文件尺寸
alter database datafile d:/oracle/oradata/scut/date03.dbf resize 100m;
? 設置文件數據自動擴展
alter database datafile d:/oracle/oradata/scut/date03.dbf autoextend on next 10m maxsize 500m;

移動數據文件:
移動數據文件有兩種方式,一是alter tablespace,另一種是alter database。
? 在OPEN狀態下移動數據文件
在這種狀態下,移動文件通過alter dataspace命令來完成,並且要求表空間處於脫機狀態。由於system和undo表空間不能處於脫機,所以在這種方式中不能移動它們。
下面是移動一個普通數據文件的方法:
? 確定文件處於的表空間:
select tablespace_name from dba_data_files where file_name =D:/ORACLE/ORADATA/DATE03.DBF;
? 使表空間脫機:
alter tablespace date01 offline;
? 使用OS命令移動文件:
host move d:/oracle/oradata/scut/date03.dbf d:/oracle/ora92/date03.dbf;
? 執行Alter dataspace命令,必須確保文件被移動了:
alter tablespace date01 rename datafile d:/oracle/oradata/scut/date03.dbf to d:/oracle/ora92/date03.dbf’;
? 使表空間聯機:
alter tablespace date01 online;

? 在MOUNT狀態下移動數據文件
在MOUNT狀態下,可以移動任何數據文件,包括SYSTEM和UNDO表空間。它使用的命令是alter database
? 關閉數據庫
Shutdown immediate
Startup mount
? 移動數據
host move d:/oracle/oradata/scut/date03.dbf d:/oracle/ora92/date03.dbf;
? 執行alter database
Alter database date01 renam file ‘…..’ to ‘……’
? 打開數據庫
Alter database open
 

  表空間,用戶,表關係:
  表空間是數據庫邏輯對象的容器,用戶是數據庫邏輯對象的擁有者。
  user --has--> tables --save in--> tablespace

發佈了46 篇原創文章 · 獲贊 4 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章