您在这里:首页 > 学员专区 > 技术文章
Oracle视频
Oracle
CUUG课程

管理表空间(二)--表空间的管理

 

Oracle对表空间的管理有两种管理方式:本地管理及数据字典管理。

1)9i 以前通过dictionary管理,性能不好,容易产生碎片,通过uet$ 和 fet$ 管理

2)9i以后采用local 管理,在表空间上建立bitmap ,用0,1来表示free extents,oracle 10g 默认本地管理

1、本地管理的表空间

建立本地管理表空间

04:52:18 SQL> CREATE SMALLFILE TABLESPACE "TEST"

DATAFILE '/u01/app/oracle/oradata/test1/test01.dbf' SIZE 100M

AUTOEXTEND ON NEXT 10M MAXSIZE 500M LOGGING

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO ;

本地管理对extent  size 分配有两种管理方式:autoallocate (自动分配,默认),uniform size 统一大小

1)UNIFORM 使用相同的区尺寸管理表空间,区默认尺寸为1M

04:52:18 SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME

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

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

EXAMPLE

6 rows selected.

04:52:38 SQL> create tablespace users01

04:53:01   2   datafile '/disk1/oradata/orcl/user01.dbf' size 10m uniform size 128k;

Tablespace created.

04:53:49 SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME

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

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

EXAMPLE

USERS01

(2)使用AUTOALLOCATE 选项用于指定区尺寸有系统自动分配

04:56:08 SQL> create tablespace users02

04:56:16   2   datafile '/disk2/oradata/orcl/user01.dbf' size 10m autoallocate;

Tablespace created.

04:56:25 SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME

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

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

EXAMPLE

USERS01

USERS02

8 rows selected.

04:52:42 SQL> create tablespace cuug

04:52:45   2    datafile '/u01/app/oracle/oradata/test/cuug01.dbf' size 10m

04:53:03   3   extent management local uniform size 128k;

Tablespace created.

04:53:39 SQL> select TABLESPACE_NAME,INITIAL_EXTENT/1024 "extent",next_extent/1024 ,EXTENT_MANAGEMENT, ALLOCATION_TYPE

 from dba_tablespaces;

TABLESPACE_NAME                    extent NEXT_EXTENT/1024 EXTENT_MAN            ALLOCATIO

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

SYSTEM                                 16               16 DICTIONARY USER

RTBS                                   64                  LOCAL(默认大小)      SYSTEM

SYSAUX                                 64                  LOCAL                  SYSTEM

TEMP                                 1024             1024 LOCAL                  UNIFORM

USERS                                  64                  LOCAL                  SYSTEM

TEST                                   64                  LOCAL                  SYSTEM

CUUG                                  128              128 LOCAL(指定大小)      UNIFORM

7 rows selected.

2、字典管理表空间:

数据字典管理表空间通过FET$ (空闲extent管理),UET$(已经使用的extent 进行extent管理)

SQL> desc fet$

Name                                      Null?    Type

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

TS#                                       NOT NULL NUMBER

FILE#                                     NOT NULL NUMBER

BLOCK#                                    NOT NULL NUMBER

LENGTH                                    NOT NULL NUMBER

SQL> desc uet$

Name                                      Null?    Type

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

SEGFILE#                                  NOT NULL NUMBER

SEGBLOCK#                                 NOT NULL NUMBER

EXT#                                      NOT NULL NUMBER

TS#                                       NOT NULL NUMBER

FILE#                                     NOT NULL NUMBER

BLOCK#                                    NOT NULL NUMBER

LENGTH                                    NOT NULL NUMBER

SQL> select * from fet$;

no rows selected

SQL> select * from uet$;

no rows selected

建立数据字典管理表空间:

如果其他表空间采用字典管理模式,system表空间必须采用字典管理模式

04:56:48 SQL> create tablespace users03

05:01:03   2   datafile '/disk3/oradata/orcl/user03.dbf'

05:01:20   3  size 10m extent management dictionary

05:01:44   4  default storage(

05:01:58   5    initial 20k

next 20k

05:02:08   6    minextents 2 maxextents 50

05:02:27   7    pctincrease 50);

create tablespace users03

*

ERROR at line 1:

ORA-12913: Cannot create dictionary managed tablespace

——如果system表空间是数据字典管理,其他表空间可以是数据字典管理或local管理(默认)

——如果system是local 管理,其余的表空间只能是local 管理。

如上所示:

1)extent   management  dictionary 用于指定空间管理采用字典管理模式

2)default   storage 用于指定模式存储参数

3)initial  用于指定为段所分配的第一个区的尺寸

4) next 指定段所分配的第二个区的尺寸。

5)Minextents 用于指定为段所分配的最小区个数,maxextents用于指定段可占用的最大区个数。

Pctincrease  指定从第三个区开始每个区比前一个区尺寸所增长的百分比。

相关文章 [上一篇] 管理表空间(一)--总介
010-88589926(88587026)
CUUG热门培训课程
Oracle DBA就业培训
CUUG名师
网络课程
技术沙龙
最新动态

总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089 
中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号  京公网安备110108006275号