SQL> create tablespace test datafile 'E:/ORACLE/ORADATA/DB228/' 2 size 5M;
表空间已创建。
SQL> create user test identified by test default tablespace test;
用户已创建
SQL> grant connect,resource,dba to test;
授权成功。
SQL> ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.
因此,在创建对象之前,首先要分配存储空间.
分配存储,就要创建表空间:
创建表空间示例如下:
CREATE TABLESPACE "SAMPLE" LOGGING DATAFILE 'D:/ORACLE/ORADATA/ORA92/' SIZE 5M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
上面的语句分以下几部分:
第一
: CREATE TABLESPACE "SAMPLE"
创建一个名为
"SAMPLE"
的表空间
.
对表空间的命名
,
遵守
Oracle
的命名规范就可了
.
ORACLE
可以创建的表空间有三种类型
:
(1)TEMPORARY:
临时表空间
,
用于临时数据的存放
;
创建临时表空间的语法如下
:
CREATE TEMPORARY TABLESPACE "SAMPLE"......
(2)UNDO :
还原表空间
.
用于存入重做日志文件
.
创建还原表空间的语法如下
:
CREATE UNDO TABLESPACE "SAMPLE"......
(3)
用户表空间
:
最重要
,
也是用于存放用户数据表空间
可以直接写成
: CREATE TABLESPACE "SAMPLE"
TEMPORARY
和
UNDO
表空间是
ORACLE
管理的特殊的表空间
.
只用于存放系统相关数据
.
第二
: LOGGING
有
NOLOGGING
和
LOGGING
两个选项
,
NOLOGGING:
创建表空间时
,
不创建重做日志
.
LOGGING
和
NOLOGGING
正好相反
,
就是在创建表空间时生成重做日志
.
用
NOLOGGING
时
,
好处在于创建时不用生成日志
,
这样表空间的创建较快
,
但是没能日志
,
数据丢失后
,
不能恢复
,
但是一般我们在创建表空间时
,
是没有数据的
,
按通常的做法
,
是建完表空间
,
并导入数据后
,
是要对数据做备份的
,
所以通常不需要表空间的创建日志
,
因此
,
在创建表空间时
,
选择
NOLOGGING,
以加快表空间的创建速度
.
第三
: DATAFILE
用于指定数据文件的具体位置和大小
.
如
: DATAFILE 'D:/ORACLE/ORADATA/ORA92/' SIZE 5M
说明文件的存放位置是
'D:/ORACLE/ORADATA/ORA92/' ,
文件的大小为
5M.
如果有多个文件
,
可以用逗号隔开
:
DATAFILE 'D:/ORACLE/ORADATA/ORA92/' SIZE 5M, 'D:/ORACLE/ORADATA/ORA92/' SIZE 5M
但是每个文件都需要指明大小
.
单位以指定的单位为准
如
5M
或
500K.
对具体的文件
,
可以根据不同的需要
,
存放大不同的介质上
,
如磁盘阵列
,
以减少
IO
竟争
.
指定文件名时
,
必须为绝对地址
,
不能使用相对地址
.
第四
: EXTENT MANAGEMENT LOCAL
存储区管理方法
在
Oracle 8i
以前
,
可以有两种选择
,
一种是在字典中管理
(DICTIONARY),
另一种是本地管理
(LOCAL ),
从
9I
开始
,
只能是本地管理方式
.
因为
LOCAL
管理方式有很多优点
.
在字典中管理
(DICTIONARY):
将数据文件中的每一个存储单元做为一条记录
,
所以在做
DM
操作时
,
就会产生大量的对这个管理表的
Delete
和
Update
操作
.
做大量数据管理时
,
将会产生很多的
DM
操作
,
严得的影响性能
,
同时
,
长时间对表数据的操作
,
会产生很多的磁盘碎片
,
这就是为什么要做磁盘整理的原因
.
本地管理
(LOCAL):
用二进制的方式管理磁盘
,
有很高的效率
,
同进能最大限度的使用磁盘
.
同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
第五
: SEGMENT SPACE MANAGEMENT
磁盘扩展管理方法
:
SEGMENT SPACE MANAGEMENT:
使用该选项时区大小由系统自动确定。由于
Oracle
可确定各区的最佳大小,所以区大小是可变的。
UNIFORM SEGMENT SPACE MANAGEMENT:
指定区大小,也可使用默认值
(1 MB)
。
第六
:
段空间的管理方式
:
AUTO:
只能使用在本地管理的表空间中
.
使用
LOCAL
管理表空间时
,
数据块中的空闲空间增加或减少后,其新状态都会在位图中反映出来。位图使
Oracle
管理空闲空间的行为更加自动化,并为管理空闲空间提供了更好的性
,
但对含有
LOB
字段的表不能自动管理
.
MANUAL:
目前已不用
,
主要是为向后兼容
.
第七
:
指定块大小
.
可以具体指定表空间数据块的大小
.
创建例子如下
:
1 CREATE TABLESPACE "SAMPLE"
2 LOGGING
3 DATAFILE 'D:/ORACLE/ORADATA/ORA92/' SIZE 5M,
4 'D:/ORACLE/ORADATA/ORA92/' SIZE 5M
5 EXTENT MANAGEMENT LOCAL
6 UNIFORM SEGMENT SPACE MANAGEMENT
7* AUTO
SQL> /
表空间已创建。
要删除表空间进
,
可以
SQL> DROP TABLESPACE SAMPLE;
表空间已丢弃。
1) 创建用户 : create user username identified by pwd default tablespace users Temporary TABLESPACE Temp; 2) 用户授权 grant connect,resource,dba to business; 3) 提交 commit; create user user1 identified by values 'fa091872a2cc669c' default tablespace user1 temporary tablespace temp profile default account unlock; -- 4 roles for user1 grant recovery_catalog_owner to user1 with admin option; grant resource to user1 with admin option; grant dba to user1 with admin option; grant connect to user1 with admin option; alter user user1 default role all; -- 3 system privileges for user1 grant select any dictionary to user1 with admin option; grant unlimited tablespace to user1 with admin option; grant alter any procedure to user1 with admin option;
T@ORA>grant dba to test identified by t; Grant succeeded. Elapsed: 00:00:02.15 T@ORA>conn test/t Connected. TEST@ORA>