在Oracle 9i中,可能经常使用类似如下语句创建表空间:
CREATE TABLESPACE tablespace_name DATAFILE 'file_name' SIZE xM EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K SEGMENT SPACE MANAGEMENT AUTO;
实际的创建过程可能如下:
SQL> CREATE TABLESPACE eygle 2 DATAFILE '/opt/oracle/oradata/eygle/eygle01.dbf' SIZE 10M 3 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128k 4 SEGMENT SPACE MANAGEMENT AUTO; Tablespace created.
当然这里的空间分配要根据具体需要进行调整,拥有了表空间之后,新创建的用户就可以使用这个表空间。
在第4章用户管理部分曾经提到,当在数据库中创建用户时,基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间;那么现在,结合上一章的内容,就可以完整地整理一下这个DBA经常要经历的过程。
1.创建表空间
当然这个步骤可以比前面介绍的还要复杂一点,可以包括对于文件大小及扩展选项的设置,通常这个步骤可能如下(以Oracle 10gR2环境为范例):
SQL> create tablespace eygle 2 datafile '/data2/ora10g/oradata/eygle/eygle01.dbf' 3 size 100M AutoExtend On Next 10M Maxsize 2048M 4 extent management local uniform size 128K 5 segment space management auto; Tablespace created.
创建之后的表空间属性可以通过dba_tablespaces视图查询得到:
SQL> select tablespace_name,block_size,contents,extent_management,allocation_type, segment_space_management 2 from dba_tablespaces where tablespace_name='EYGLE'; TABLESPACE_NAME BLOCK_SIZE CONTENTS EXTENT_MAN ALLOCATIO SEGMEN -------------------- ---------- --------- ---------- --------- ------ EYGLE 8192 PERMANENT LOCAL UNIFORM AUTO
对于数据文件的自动扩展属性等,需要通过dba_data_files视图来查询获得:
SQL> select tablespace_name,AUTOEXTENSIBLE,INCREMENT_BY,MAXBYTES from dba_data_files 2 where tablespace_name='EYGLE'; TABLESPACE_NAME AUTOEXTENSIBLE INCREMENT_BY MAXBYTES ------------------------------ -------------- ------------ ---------- EYGLE YES 1280 2147483648
2.为应用创建用户
创建用户,此时可以同时为用户指定缺省的永久表空间和临时表空间:
SQL> create user eygle identified by eyglee 2 default tablespace eygle 3 temporary tablespace temp; User created.
创建用户的相关信息则可以通过dba_users视图查询得到:
SQL> select username,user_id,password,default_tablespace 2 temporary_tablespace from dba_users where username='EYGLE'; USERNAME USER_ID PASSWORD TEMPORARY_TABLESPACE ---------- ---------- ------------------------------ ------------------------------ EYGLE 35 E6931D8C7148E9EF EYGLE
3.进行相应的权限的授予
对用户进行授权:
SQL> grant connect,resource to eygle; Grant succeeded. SQL> revoke unlimited tablespace from eygle; Revoke succeeded. SQL> alter user eygle quota unlimited on eygle; User altered.
当然,按照不同的业务需求,可能还需要对用户授予其他权限,但是基本的步骤大致就是如此,这样创建的用户就可以通过网络或者本地进行数据库连接,开始访问数据库了。
在创建表空间的过程中,有两个子句是需要特别注意的,这两个子句是EXTENT MANAGEMENT LOCAL UNIFORM SIZE和SEGMENT SPACE MANAGEMENT AUTO。这两个子句代表了Oracle的两次重大技术改进,接下来一起来探索一下Oracle的这些改变。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。