Oracle数据库用户角色、表空间创建、删除命令

//
创建数据表空间
create tablespace
BCC
datafile
'D:\oracle\oradata\BCC\BCC.dbf'
size 100m autoextend on next 32m maxsize 2048m(
MAXSIZE UNLIMITED
) extent management local;
//datafile
参数必须有
//
创建临时表空间
create temporary tablespace
BCC_temp
tempfile
'D:\oracle\oradata\BCC\BCC_temp.dbf'
size 32m autoextend on next 32m maxsize 2048m(
MAXSIZE UNLIMITED
) extent management local;
//tempfile
参数必须有
//
创建用户并指定表空间
create user
BCC
identified by
BCC
default tablespace
BCC
temporary tablespace
BCC_temp
;
//identified by
参数必须有
//
授予BCC用户DBA角色的所有权限
grant DBA TO
BBC
;
//
给用户授予权限
grant connect,resource to
BBC
;
(db2
:指定所有权限)
//
删除用户以及用户所有的对象
drop user
BCC
cascade;
//cascade
参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数
//
删除表空间
前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除
drop tablespace
BCC
including contents and datafiles cascade onstraints;
//including contents
删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数
//including datafiles 删除表空间中的数据文件
//cascade constraints 同时删除tablespace中表的外键参照
//
备份操作
exp bcc/bcc file=d:\bcc.dmp
//
恢复操作
imp bcc/bcc file=d:\bcc.dmp ignore=y full=y
如果删除表空间之前删除了表空间文件,解决办法:
如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。
可使用如下方法恢复(此方法已经在oracle9i中验证通过):
下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。
$ sqlplus /nolog
SQL> conn / as sysdba;
如果数据库已经启动,则需要先执行下面这行:
SQL> shutdown abort
SQL> startup mount
SQL> alter database datafile 'filename' offline drop;
SQL> alter database open;
SQL> drop tablespace tablespace_name including contents;