Oracle表空间创建管理



数据库表空间创建和管理

介绍

表空间是数据库的逻辑存储概念

    从物理上讲:数据库中的数据存放在数据文件中

    从逻辑上讲:数据库则是存放在表空间中,表空间存放着一个或者多个数据文件 ,并且同一表空间可以包含不同磁盘下的数据文件。

如何规划表空间

1、数据库实例通过表空间控制数据库占用的磁盘空间(一个表空间可以存放多个数据文件,而数据文件是存放在物理磁盘的真实物理介质。)

2、对表空间规划就是对数据文件(数据文件,日志文件,归档文件,控制文件等)存放路径的规划。

3、没有业务关联的数据要分开存放到不同的表空间下,这样有利于提高I/O性能,同时利于备份和恢复等管理操作。

4、对于同一个表空间,尽量将不同类型的数据文件存放到不同的物理磁盘上,这样可提高IOPS,显著提高I/O性能。

5、关于LOB对象,要存放在独立表空间。数据文件最好分散存储在不同磁盘上。这样对LOB对象的访问效率会有明显提升。

6、随着数据量的增长,索引占用的磁盘空间也会相应增多;而且索引的访问频率比较高,需要将不同索引存放在不同的独立表空间下。这样既方便对索引进行维护和管理,也可提高I/O性能。

7、建立表空间一般是由数据库管理员用户来执行的。普通用户则需要使用管理员用户授权后才能创建。DBA需要对不同用户分配不同的表空间使用,建议不同用户间不要共用同一表空间,避免I/O争用,同时减少管理和维护的开销。

建立数据表空间语法


Oracle中逻辑结构包括表空间、段、区、块,而创建表空间时候,需要指定这些逻辑结构的管理方式。

其中数据库标准块大小在创建数据库的时候已经指定。

表空间(区)管理方式:数据字典管理和本地管理;

段管理方式:手工段空间管理(MSSM)和自动段空间管理(ASSM)

语法:

CREATE TABLESPACE tbs_name

DATAFILE '/u01/oracle/data/tbs_name1.dbf'

SIZE 50M

AUTOEXTEND ON MAXSIZE xxx ---设定 autoextend on 最好设定 maxsize

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 8M

BLOCKSIZE xxk             ---非标准块表空间要配置db_xxk_cache_size               

SEGMENT SPACE MANAGEMENT AUTO|MANUAL; 

 

 

 

举例说明

这里为了方便理解。模拟多块硬盘。以某系统中的索引表空间、数据表空间、LOB表空间,临时表空间,UNDO表空间为例来说明创建表空间的创建。

 

假设服务器硬盘有数据盘

disk1 disk2disk3disk4disk5, disk6disk7disk8

 

表空间类型

数据文件存放位置

备注

 

数据表空间1

 

disk1,disk2

数据表空间按不同业务数据分开存储。比如A数据,B数据,C接口数据,这些数据使用单独表空间管理存放。若磁盘数量足够,建议将数据文件分散存储。

 

数据表空间2

 

disk1,disk2

 

 

 

索引表空间

 

 

 

disk3,disk4

现勘这样的系统属于B/S架构中的OLTP系统,随着时间推移,数据量呈线性增长。索引数据也会越来越多。因此,使用单独磁盘存放索引表空间,一可提高IOPS,二方便管理维护。

 

 

 

LOB表空间

 

 

 

disk5,disk6

LOB数据对I/O要求很高,

像现勘系统这样的数据量,最好使用多块磁盘来分布存储LOB数据。LOB表空间段仅用来存放LOB数据对象。段不能够使用ASSM段管理方式。

 

 

临时表空间

 

 

disk7

由于临时表空间用于排序,暂存数据,这种特性导致不适合使用ASSM段管理方式。只能使用MSSM段管理的方式

 

数据表空间创建举例:

create tablespace tbs_data1 datafile

‘/disk1/tbs_data1.dbf’size 50M

‘/disk2/tbs_data2.dbf’size 50M

extent management local uniform size 8M

segment space management auto;

 

LOB表空间创建:

create tablespace tbs_lob1 datafile

‘/disk5/tbs_lob1.dbf’size 50M

‘/disk6/tbs_lob2.dbf’size 50M

extent management local uniform size 8M

segment space management manual ;

临时表空间:

create temporary tablespace tbs_tmp1 tempfile

‘/disk7/tbs_temp.dbf’size50M

extent management local uniform size 8M 

segment space management manual ;

UNDO表空间:

Oracle还有专门的UNDO表空间,用来保证数据库一致读。UNDO表空间需要单独为业务用户创建,否则默认会用system表空间存放UNDO段,这样一旦UNDO表空间有问题,将会导致灾难性故障。UNDO表空间使用段空间自动管理方式比较方便。

create undo tablespce tbs_undo datafile

‘/disk8/tbs_undo.dbf’size 200M auto extend on

extent management local segment

space management auto;

更详细的表空间内容参考:

http://www.cnblogs.com/kerrycode/p/3418694.html




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值