第一篇:oracle表空間管理及操作實用案例
Oracle
表空間管理及操作詳解(附帶案例)
一:表空間概述
表空間是數(shù)據(jù)庫的邏輯組成部分,從物理上講,數(shù)據(jù)庫數(shù)據(jù)存放在數(shù)據(jù)文件中;數(shù)據(jù)庫邏輯上講是由一個或者多個表空間組成,數(shù)據(jù)文件則是存放在表空間中,表空間有一個或者多個數(shù)據(jù)文件組成即表空間有數(shù)據(jù)文件構(gòu)成的。
數(shù)據(jù)庫,表空間,段,區(qū),塊,按大小排列依次是:數(shù)據(jù)庫---》表空間-----》段-----》區(qū)----》塊。
1.建立表空間的作用:
(1.)控制數(shù)據(jù)庫占用的磁盤空間。(2).dba可以將不同的數(shù)據(jù)類型部署到不同的位置,這樣有利于提高i/o性能,同時有利與備份和恢復(fù)等管理操作。
二:管理表空間和數(shù)據(jù)文件。
(1)建立表空間create tablespace;一般情況下建立表空間是特權(quán)用戶或者dba來執(zhí)行的,如果其他用戶來創(chuàng)建表空間,則用戶建必須要具有create tablespace的系統(tǒng)權(quán)限。(2)建立數(shù)據(jù)表空間
在建立數(shù)據(jù)庫后,為便于管理表,最好建立自己的表空間。
create tablespace sp02 datafile 'd:testsp02.dbf' size 20m uniform size 128k 說明:執(zhí)行完上述命令后,會建立名稱為sp02的表空間,并為該表空間建立名稱為sp02.dbf的數(shù)據(jù)文件,區(qū)的大小為128k。(3.)在表空間建表
create table tablesp02(ID number(5),name varchar2(20))tablespace sp02(4)顯示當(dāng)前用戶擁有哪些表。
select * from tab;
(5).知道表空間名,顯示該表空間包括的所有表。
select * from all_tables where tablespace_name='表空間名'。
注:擁有權(quán)限不同的用戶在進行以上操作得到的結(jié)果可能不同。System可以查看得到某空間的所擁有表。(比如users表空間)(6)知道表名,查看該表屬于那個表空間。
select TABLESPACE_NAME, TABLE_NAME from user_tables where TABLE_NAME='EMP';(7)知道表名,查看該表屬于那個表空間,屬于哪個用戶。
select owner,TABLESPACE_NAME, TABLE_NAME from all_tables where TABLE_NAME='EMP';(8)改變表空間的狀態(tài) 使表空間可讀寫
alter tablespace 表空間名 read write;
刪除表空間,一般情況下由特權(quán)用戶或者dba來操作。具有drop tablespace系統(tǒng)權(quán)限。
drop tablespace ‘表空間’includeing contens and datafiles;
說明:includeing contens表示刪除表空間時,刪除該空間的所有數(shù)據(jù)庫對象而datafiles表示將數(shù)據(jù)庫文件也刪除。(9)改變表空間的狀態(tài)(1)使用空間脫機
alter tablespace 表空間名 offline(2)使用空間聯(lián)機
alter tablespace表空間名online(3)只讀表空間
建立表空間時,表空間可以讀寫,如果不希望在表空間上執(zhí)行update,delete,insert操作。那么可以將表空間修改為只讀。alter talbespace sp01 read only;
三:移動數(shù)據(jù)文件:
(1)確定數(shù)據(jù)文件所在的表空間(知道表屬于哪個表空間)Select tablespace_name from dba_data_files where file_name='D:TEST