Oracle數(shù)據(jù)庫中管理表空間和數(shù)據(jù)文件
數(shù)據(jù)庫的三大組成部分:數(shù)據(jù)文件,控制文件,Redo日志。
表空間分為系統(tǒng)表空間和非系統(tǒng)表空間。
SYSTEM表空間是最基本的,必須的,Oracle建議你為用戶數(shù)據(jù),用戶索引,Undo數(shù)據(jù)段,臨時數(shù)據(jù)段創(chuàng)建單獨的表空間。
管理員可以對表空間執(zhí)行以下管理操作:
1.新建表空間,調(diào)整數(shù)據(jù)文件大小,添加數(shù)據(jù)文件到表空間。
2.設(shè)置和修改缺省的數(shù)據(jù)段存儲設(shè)置。
3.使表空間變?yōu)橹蛔x或讀寫狀態(tài)。
4.設(shè)置表空間為臨時或永久。
5.刪除表空間。
創(chuàng)建表空間的命令:
SQL> create tablespace userdat datafile '/home/oracle/oradata/userdat01.dbf' size 10m autoextend on next 1m maxsize 20m;
Tablespace created.
表空間中的extents可以由數(shù)據(jù)字典表或位圖進行管理,創(chuàng)建表空間時可以選擇:
本地管理表空間:extent management local
字典管理表空間:extent management dictionary
Undo表空間:
僅用于存儲undo數(shù)據(jù)段,extent只能采用本地管理。
Temp表空間:
僅用于排序操作,不包含任何永久對象,extent推薦采用本地管理。
以下命令用于指定系統(tǒng)的缺省臨時表空間:
SQL> alter database default temporary tablespace temp;
表空間離線:
離線的表空間無法訪問,用于數(shù)據(jù)維護。
system表空間,有活動undo段的表空間和缺省的臨時表空間不能置于離線狀態(tài)。
操作命令:
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.
手工改變數(shù)據(jù)文件的大?。?
SQL> alter database datafile '/home/oracle/oradata/gldb/users01.dbf' resize 20m;
Database altered.
添加數(shù)據(jù)文件到表空間:
SQL> alter tablespace users add datafile '/home/oracle/oradata/gldb/users02.dbf' size 1m;
Tablespace altered.
設(shè)置表空間數(shù)據(jù)文件的缺省位置:
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
獲得表空間和數(shù)據(jù)文件信息:
SQL> select * from v$tablespace;
SQL> select * from v$datafile;
