Oracle创建表空间和用户

必须声明:此博客转载于Oracle建立表空间和用户 http://blog.csdn.net/starnight_cbj/article/details/6792364

鉴于此前收藏的精彩博客无料被删除了,很是痛心,所以还是要复制一下

一、表空间数据文件之间的关系

Oracle数据库在逻辑上划分为一个或者多个表空间(TABLESPACE)。

Oracle表空间是包含物理数据文件的逻辑实体。一个表空间中可以包含一个或者多个数据文件。

而数据文件是Oracle数据库的物理组成部分,是物理概念。一个数据文件只能隶属于一个表空间。

Oracle数据库中每一个表都属于一个给定的表空间中,通过表空间的逻辑形式管理数据表。

1 查看表空间:
2 SQL> select ts#,name from v$tablespace;
3 查看表空间和数据文件的对应关系:
4 SQL> select t.ts#,t.name,d.ts#,d.name from v$tablespace t,v$datafile d where t.ts#=d.ts#;

1、建立用户和分配权限:

建立:create user 用户名 identified by "密码";
授权:grant create session to 用户名;
            grant create table to  用户名;
            grant create tablespace to  用户名;
            grant create view to  用户名;

2、建立表空间(一般建N个存数据的表空间和一个索引空间):

create tablespace 表空间名
datafile ' 路径(要先建好路径)***.dbf  ' size *M
tempfile ' 路径***.dbf ' size *M
autoextend on  --自动增长
--还有一些定义大小的命令,看需要
 default storage(
 initial 100K,
 next 100k,
);

完整例子:

 1 --表空间
 2 CREATE TABLESPACE sdt
 3 DATAFILE 'F:	ablespacedemo' size 800M
 4          EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 
 5 --索引表空间
 6 CREATE TABLESPACE sdt_Index
 7 DATAFILE 'F:	ablespacedemo' size 512M         
 8          EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;     
 9 
10 --2.建用户
11 create user demo identified by demo 
12 default tablespace demo;
13  
14 --3.赋权
15 grant connect,resource to demo;
16 grant create any sequence to demo;
17 grant create any table to demo;
18 grant delete any table to demo;
19 grant insert any table to demo;
20 grant select any table to demo;
21 grant unlimited tablespace to demo;
22 grant execute any procedure to demo;
23 grant update any table to demo;
24 grant create any view to demo;

  

为什么使用表空间

1、表空间允许更容易将空间限额分配给不同的数据库用户
2、表空间允许你执行基于表空间的部分备份和恢复
3、由于像数据仓库分区表这样的大对象可以分布在几个表空间上,因此,可以通过使表空间横跨几个磁盘和控制器来提高性能
4、可以使一个表空间脱机而不必停止整个个数据库
5、表空间是分配数据库空间的一种便利方法
6、通过使用表空间级的导入和导出实用程序可以导入和导出指定的应用数据