Oracle数据库创建表空间及为用户指定表空间


Oracle数据库创建表空间及为用户指定表空间
 
SYS用户在CMD下以DBA身份登陆: 
 
在CMD中打sqlplus /nolog 
  www.2cto.com  
然后再 
onn / as sysdba 
 
//创建临时表空间  
 
Java代码  
create temporary tablespace user_temp    
  
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'   
  
size 50m    
  
autoextend on    
  
next 50m maxsize 20480m    
  
extent management local;  
  www.2cto.com  
//创建数据表空间  
Java代码  
create tablespace test_data    
  
logging    
  
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'   
  
size 50m    
  
autoextend on    
  
next 50m maxsize 20480m    
  
extent management local;    
 
//创建用户并指定表空间 
Java代码  
create user username identified by password    
  
default tablespace user_data    
  
temporary tablespace user_temp;  
 
//给用户授予权限 
 
Java代码  
grant connect,resource to username;   
 
//以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间, 
 
这就不用在每创建一个对象给其指定表空间了 
 
撤权:    www.2cto.com  
       revoke   权限...   from  用户名; 
 
删除用户命令 
 
drop user user_name cascade; 
 
建立表空间 
 
CREATE TABLESPACE data01 
 
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M 
 
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 
 
删除表空间 
 
DROP TABLESPACE data01 INCL ING CONTENTS AND DATAFILES; 
 
一、建立表空间 
 
CREATE TABLESPACE data01 
 
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M 
 
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 
 
二、建立UNDO表空间   www.2cto.com  
 
CREATE UNDO TABLESPACE UNDOTBS02 
 
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M 
 
#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间: 
 
ALTER SYSTEM SET undo_tablespace=UNDOTBS02; 
 
三、建立临时表空间 
 
CREATE TEMPORARY TABLESPACE temp_data 
 
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M 
 
四、改变表空间状态 
 
1.使表空间脱机   www.2cto.com  
 
ALTER TABLESPACE game OFFLINE; 
 
如果是意外删除了数据文件,则必须带有RECOVER选项 
 
ALTER TABLESPACE game OFFLINE FOR RECOVER; 
 
2.使表空间联机 
 
ALTER TABLESPACE game ONLINE; 
 
3.使数据文件脱机 
 
ALTER DATABASE DATAFILE 3 OFFLINE; 
 
4.使数据文件联机 
 
ALTER DATABASE DATAFILE 3 ONLINE; 
 
5.使表空间只读 
 
ALTER TABLESPACE game READ ONLY; 
 
6.使表空间可读写 
 
ALTER TABLESPACE game READ WRITE; 
 
五、删除表空间 
 
DROP TABLESPACE data01 INCL ING CONTENTS AND DATAFILES; 
 
六、扩展表空间 
 
首先查看表空间的名字和所属文件 
 
select tablespace_name, file_id, file_name, 
 
round(bytes/(1024*1024),0) total_space 
 
from dba_data_files 
 
order by tablespace_name; 
 
1.增加数据文件   www.2cto.com  
 
ALTER TABLESPACE game 
 
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M; 
 
2.手动增加数据文件尺寸 
 
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' 
 
RESIZE 4000M; 
 
3.设定数据文件自动扩展 
 
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf 
 
AUTOEXTEND ON NEXT 100M 
 
MAXSIZE 10000M;   www.2cto.com  
 
设定后查看表空间信息 
 
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, 
 
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" 
 
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C 
 
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE