Oracle 表空间简单管理永久表空间
假设数据库为 Oracle 11g,在 SQL *PLUS 下,用 SYS 用户登录。本文演示创建(永久)表空间,之后,查看表空间信息,再修改表空间
本文内容
假设数据库为 Oracle 11g,在 SQL *PLUS 下,用 SYS 用户登录。本文演示创建(永久)表空间,之后,查看表空间信息,再修改表空间的配置,最后,删除表空间。
创建表空间
Oracle 按照区和段空间进行管理表空间。
区管理方式 - 针对区的分配方式的不同,有两种方式:字典管理方式(dictionary-managed tablespace,DMT)和本地管理方式(local-managed tablespace,,LMT)。Oracle 10g开始强烈建议使用 LMT 方式。从 Oracle 9i 开始,创建表空间时默认使用 LMT。
其中,LMT 区的分配方式:
段管理方式 – LMT 方式,除了可以指定区的分配方式外,还可以指定段的管理方式。段空间管理方式主要是指 Oracle 用来管理段中已用数据块和空闲数据块的机制。分为两种:
字典管理方式不存在段管理。
下面示例演示用本地管理方式创建表空间。
示例 1:使用 AUTOALLOCATE 区分配方式创建表空间 mytbs01,数据文件是 D:\oracledata\mytbs01_1.dbf,大小为 2M。
create tablespace mytbs01datafile 'D:\oracledata\mytbs01_1.dbf' size 2Mautoallocate;
示例 2:使用 UNIFORM 区分配方式创建表空间 mytbs02,数据文件是 D:\oracledata\mytbs02_1.dbf 和 D:\oracledata\mytbs02_2.dbf,有两个文件,大小分别为 1M 和 2M。
2Muniform size 128k;
示例 3:创建表空间 mytbs03,并指定数据文件扩展方式为自动增长,每次 1M,最大扩展到 11M。
2M maxsize 11M;
此时,就不能再指定 UNIFORM。
示例 4:使用 AUTO 段管理方式。创建表空间 mytbs04,采用 UNIFORM 区分配管理方式,大小为默认值;用 segment space management 指定段管理方式。
create tablespace mytbs04datafile 'D:\oracledata\mytbs04_1.dbf' size 3M reuseuniformsegment space management auto;
查看表空间
可以通过下面 Oracle 系统表查看上面创建的表空间的相关信息。
示例 5:表空间使用情况,包括表空间名称、DBF 文件个数、总大小、剩余/占用大小等等。
"剩余大小", a.totalspace - nvl(b.freespace, 0) || t1.tablespace_name) a, (t.tablespace_name) c where a.tablespace_name = b.tablespace_name and b.tablespace_name = c.tablespace_name
示例 6:表空间信息参看,包括表空间名称、路径、类型、管理方式、区管理方式、段管理方式和是否自动增长。
select t1.tablespace_name as "表空间名称", t2.file_name as "文件名", t1.contents as "类型", t1.extent_management as "管理方式", t1.allocation_type as "区管理方式", t1.segment_space_management as "段管理方式", t2.autoextensible as "是否自动扩展", t1.status as "是否联机" from dba_tablespaces t1, dba_data_files t2 where t1.tablespace_name = t2.tablespace_name