暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

创建表空间的基本步骤

原创 eygle 2019-10-14
1828

在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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论