日期:2014-05-17  浏览次数:20850 次

创建表空间
oracle中如何创建表空间,怎么使用表空间

------解决方案--------------------
//创建临时表空间

create temporary tablespace test_temp 
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf' 
size 32m 
autoextend on 
next 32m maxsize 2048m
extent management local;

//创建数据表空间
create tablespace test_data
logging
datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf' 
size 32m 
autoextend on 
next 32m maxsize 2048m
extent management local;

//创建用户并指定表空间
create user testserver_user identified by testserver_user
default tablespace test_data
temporary tablespace test_temp;

//给用户授予权限

grant connect,resource to testserver_user;

//以后以该用户登录,创建的任何数据库对象都属于test_temp 和test_data表空间,这就不用在每创建一个对象给其指定表空间了。



Oracle数据库中管理表空间和数据文件 

数据库的三大组成部分:数据文件,控制文件,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;