Oracle10g表空间创建的完整步骤 示例

Oracle10g表空间创建的完整步骤

当在数据库中创建用户时,基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。

1.创建表空间

不论是linux环境,还是windows环境,都要首先创建好表空间的存放路径,如:

/opt/oracle/oradata/cocis D:"oracle"oradata"cocis

若事先不创建该目录路径,则在创建表空间的时候会出错。

然后执行如下命令:

SQL> create tablespace cocis

2 datafile 'D:"oracle"oradata"cocis"cocis01.dbf'

3 size 100M AutoExtend On Next 10M Maxsize 2048M

4 extent management local uniform size 128K

5 segment space management auto

6 /

表空间已创建。

 

2.为应用创建用户

创建用户的同时,为用户指定缺省的永久表空间和临时表空间。

SQL> create user cocis identified by cocis

2 default tablespace cocis

3 temporary tablespace temp;

用户已创建。

 

查看用户

SQL> select username,default_tablespace,temporary_tablespace

2 from dba_users

3 where username='COCIS';

USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE

------------------------------ ------------------------------ ------------------

COCIS                          COCIS                          TEMP

 

SQL> select username,user_id,password,default_tablespace,temporary_tablespace

2 from dba_users

3 where username='COCIS';

USERNAME                          USER_ID PASSWORD                       TEMPORARY_TABLESPACE

 

------------------------------ ---------- ------------------------------ -----------------------

 

COCIS                                  61 E031F623C0F15D34               COCIS

 

3.权限的授予

SQL> grant connect,resource to cocis;

授权成功。

 

注释:当用户创建之后,一般只需要授予CONNECTRESOURCE这两个角色即可。若要单独进行授权,则需执行单独的授权命令,如grant create table to cocis;等。

 

SQL> revoke unlimited tablespace from cocis;

撤销成功。

 

SQL> alter user cocis quota unlimited on cocis;

用户已更改。

 

注释:为了更严谨的管理,可以回收用户的UNLIMITED TABLESPACE权限,然后对用户的空间限额进行单独授权。

 

-----------------------------------------------------------------------------------------

 

查看表空间使用情况

select df.tablespace_name "表空间名",totalspace "总空间M",freespace "剩余空间M",round((1-freespace/totalspace)*100,2) "使用率%"

from

(select tablespace_name,round(sum(bytes)/1024/1024) totalspace

from dba_data_files

group by tablespace_name) df,

(select tablespace_name,round(sum(bytes)/1024/1024) freespace

from dba_free_space

group by tablespace_name) fs

where df.tablespace_name=fs.tablespace_name;

 

posted @ 2009-02-06 14:59  solan3000  阅读(2375)  评论(0编辑  收藏  举报