數據庫的三大組成部分:數據文件,控制文件,Redo日志。
表空間分為系統表空間和非系統表空間。
SYSTEM表空間是最基本的,必須的,Oracle建議你為用戶數據,用戶索引,Undo數據段,臨時數據段創建單獨的表空間。
管理員可以對表空間執行以下管理操作:
1.新建表空間,調整數據文件大小,添加數據文件到表空間。
2.設置和修改缺省的數據段存儲設置。
3.使表空間變為只讀或讀寫狀態。
4.設置表空間為臨時或永久。
5.刪除表空間。
創建表空間的命令:
SQL> create tablespace userdat datafile '/home/Oracle/oradata/userdat01.dbf' size 10m autoextend on next 1m maxsize 20m;
Tablespace created.
表空間中的extents可以由數據字典表或位圖進行管理,創建表空間時可以選擇:
本地管理表空間:extent management local
字典管理表空間:extent management dictionary
Undo表空間:
僅用於存儲undo數據段,extent只能采用本地管理。
Temp表空間:
僅用於排序操作,不包含任何永久對象,extent推薦采用本地管理。
以下命令用於指定系統的缺省臨時表空間:
SQL> alter database default temporary tablespace temp;
表空間離線:
離線的表空間無法訪問,用於數據維護。
system表空間,有活動undo段的表空間和缺省的臨時表空間不能置於離線狀態。
操作命令:
SQL> alter tablespace users offline;
Tablespace altered.
SQL> alter tablespace users online;
Tablespace altered.
將表空間置為只讀模式和讀寫模式:
SQL> alter tablespace users read only;
Tablespace altered.
SQL> alter tablespace users read write;
Tablespace altered.
刪除表空間:
SQL> drop tablespace userdat including contents and datafiles;
Tablespace dropped.
手工改變數據文件的大小:
SQL> alter database datafile '/home/Oracle/oradata/gldb/users01.dbf' resize 20m;
Database altered.
添加數據文件到表空間:
SQL> alter tablespace users add datafile '/home/Oracle/oradata/gldb/users02.dbf' size 1m;
Tablespace altered.
設置表空間數據文件的缺省位置:
SQL> alter system set db_create_file_dest = '/home/Oracle/oradata/gldb';
System altered.
SQL> create tablespace userdat2 datafile size 2m;
Tablespace created.
[oracle@redhatOracle gldb]$ pwd
/home/Oracle/oradata/gldb
[oracle@redhatOracle gldb]$ ls -l | grep userdat2
-rw-r----- 1 Oracle oinstall 2105344 Dec 16 06:53 o1_mf_userdat2_2r69vob3_.dbf
獲得表空間和數據文件信息:
SQL> select * from v$tablespace;
SQL> select * from v$datafile;