【oracle11g,13】表空间管理1:表空间,空闲区的管理方式,
2014-09-10 07:30
176 查看
一.表空间:
1.至少需要两个表空间:
system :存放数据字典,在建库时建立
sysaux :辅助表空间,存放从system分离一部分信息如:对数据库的监控,运行状态等信息。
2.表空间同一时间只能存在于一个数据库中
表空间有一个或多个数据文件。
system 表空间 手工建库不能太小
sysaux 以数据库监控为主,statspack、awr等,太小oem装不上
如果没有undo表空间,就会在system表空间建立undo段。
如果没有建立临时表空间或默认表空间,都占system。
二.表空间空闲区的管理方式:
有两中管理方式:数据字典管理,本地管理。
1.查看空闲区的管理方式:
SQL> select tablespace_name ,contents,status,extent_management from dba_tablespaces;
TABLESPACE_NAME CONTENTS STATUS EXTENT_MAN
------------------------------ --------- --------- ----------
SYSTEM PERMANENT ONLINE LOCAL
SYSAUX PERMANENT ONLINE LOCAL
UNDOTBS UNDO ONLINE LOCAL
USERS PERMANENT ONLINE LOCAL
TEMPTS2 TEMPORARY ONLINE LOCAL
2.数据字典管理和本地管理比较:
①.数据字典管理方式: 使用数据字典来管理存储空间的分配,当表空间分配新的区或者回收已分配的区时,oracle会对数据字典对应的的表(uet$和fet$)进行查询和更新,并且是串行化操作,速度慢,还会生成额外undo和redo。
注意:在数据字典管理方式下,如果对某个表进行更新,这时会产生存储操作,而该操作又会产生回滚和重做操作,导致对回滚段和重做日志文件进行读写,从而又产生存储管理操作,因此形成递归现象。
②.本地管理方式:oracle 9i默认方式,表空间中区分配和区收回的管理信息都被存放在表空间的数据文件中,而与数据字典无关。表空间为每个数据文件维护一个位图结构,用于记录表空间的区分配情况。当表空间分配新的区或者收回已经分配的区时,oracle会对文件中的位图(在数据文件的头部)更新(并发性强),所以不会产生回滚和重做信息。
3. 如果system表空间是local管理方式,其他表空间只能是local
如果system表空间是dictionary, 其他表空间是两种皆可。
4.修改表空间的管理方式为local:
SQL> exec dbms_space_admin.tablespace_migrate_to_local('SYSTEM');
5.查看数据字典管理的表空间的信息:
SQL> select a.ts#,a.name,b.file#,b.name "File_name" ,c.block#,d.extent_management from v$tablespace a,v$datafile b,fet$ c,dba_tablespaces d where a.ts#=b.ts# and a.ts#=c.ts# and a.name=d.tablespace_name;
三.local管理的两种管理方式:
local的两种管理方式:uniform
和自动增长
1.uniform管理方式 :(建议使用,因为产生碎片少)
分配区的大小始终相同,不能减少分配次数, 产生很少的碎片,因为区的数据块是连续的。
2.自动增长:(默认)
分配区的大小不断增大,会减少分配次数, 会产生碎片。
3.案例:
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 /u01/app/oracle/oradata/prod/disk3/system01.dbf
2 /u01/app/oracle/oradata/prod/disk3/sysaux01.dbf
3 /u01/app/oracle/oradata/prod/disk3/undotbs01.dbf
4 /u01/app/oracle/oradata/prod/disk3/users01.dbf
②.创建3个表空间
local的自动增长管理方式, (表空间管理默认local 自动增长方式)
SQL> create tablespace lxtbs1 datafile '/u01/app/oracle/oradata/prod/disk3/lxtbs1.dbf'
size 50m extent management local;
local 方式的uniform管理方式
SQL> create tablespace lxtbs2 datafile '/u01/app/oracle/oradata/prod/disk3/lxtbs2.dbf'
size 50m uniform size 1m;
设置区的分配的大小(注意在区管理里设置无效);
SQL> create tablespace lxtbs3 datafile '/u01/app/oracle/oradata/prod/disk3/lxtbs3.dbf'
size 50m default storage(initial 32k next 64k pctincrease 50);
③.在表空间上创建分别创建表,并插入相同的数据
SQL> create table lxtb1 tablespace lxtbs1 as select * from scott.emp;
SQL> create table lxtb2 tablespace lxtbs2 as select * from scott.emp;
SQL> create table lxtb3 tablespace lxtbs3 as select * from scott.emp;
④.查看段的信息:
SQL> select segment_name,bytes/1024 k,extents,blocks,initial_extent/1024 init,next_extent/1024 next, pct_increase from dba_segments where segment_name like 'LXTB%';
SEGMENT_NAME K EXTENTS BLOCKS INIT NEXT PCT_INCREASE
--------------- ---------- ---------- ---------- ---------- ---------- ------------
LXTB1 256 4 32 64 1024
LXTB2 1024 1 128 1024 1024 0
LXTB3 256 4 32 64 1024
initial_extent:初始化区大小
next_extent: 下一个区大小
pct_increase: 区的增长率
自动增长的区管理:系统决定下一次区分配的大小。
uniform管理方式: 下一次区的分配根据参数分配。
针对第3个表空间,设计区的分配不起作用,可以在段管理时设计,结果与自动增长的管理方式相同。
相关文章推荐
- 表空间对空闲区的管理方式
- 【oracle11g,13】表空间管理2:undo表空间管理(调优) ,闪回原理
- PL/SQL基础编程之(十一)[表空间概述、说明、创建][本地管理和字典管理、切换管理方式]
- 表空间管理方式 本地化管理VS字典管理(旧)
- 17_Oracle_Admin_表空间的管理方式以及UNDO和临时表空间
- 管理空闲存储空间的方法-位示图法
- 【oracle11g,17】存储结构: 段的类型,数据块(行连接、行迁移,块头),段的管理方式,高水位线
- DBA 面试题之---表空间管理方式有哪几种,各有什么优劣。
- 【oracle11g,17】存储结构: 段的类型,数据块(行连接、行迁移,块头),段的管理方式,高水位线
- Oracle11g温习-第九章:表空间和数据文件管理
- linux omfs文件系统利用bitmap管理空闲磁盘空间
- 文件逻辑结构、外存分配和空闲空间管理
- 管理表空间和数据文件——使用OMF方式管理表空间
- 【oracle11g,14】表空间管理3:临时表空间,表空间的脱机和只读,数据文件迁移,更改表空间数据文件的大小,表空间数据文件的迁移,使用非标准块的表空间,bigfile 表空间
- [ext4]13 空间管理 - Prealloc分配机制
- DB2表空间理论基础:表空间的管理方式
- 表空间中空闲段的不同管理方式
- ORACEL空间管理实验9:空间管理汇总--索引和表的扫描/闪回时的块管理方式
- Oracle 11g R2 DBA 操作指南(13) 表空间与数据文件管理
- DB2中如何将非自动存储转换成自动存储空间管理方式