oracle表空间和数据文件

[size=medium]表空间是数据库的逻辑组成部分,在物理上讲,数据库数据存放在数据文件中,从逻辑上讲,数据库则是存放在表空间中,表空间由一个或者多个数据文件组成,表空间由段构成,而段又由区构成,而区又由块构成。
表空间从逻辑上组织数据库的数据,数据库逻辑上是由一个或者多个表空间组成,表空间有以下作用:
(1) 控制数据库占用磁盘空间
(2) dba可以将不同的数据类型部署到不同的位置,这样有利于提高IO的性能,同时有利于备份和恢复等操作

当然建立表空间需要拥有dba角色的用户或者具有create tablespace的系统权限
下面是一个建立数据表空间的例子
create tablespace sp001 datafile ‘d:\sp001.dbf’ size 20M uniform size 128k;
说明:上述命令是建立一个名为sp001的表空间,并为其建立了一个名为sp001.dbf的数据文件,区的大小为128k
有时候你要进行数据维护的时候你需要改变表空间的状态,是表空间脱机:alter tablespace sp001 offline;
使表空间联机:alter tablespace sp001 online;
如果你不想表空间里面的数据被删改,你可以指定表空间为只读
alter tablespace sp001 read only;
有时候你指定的表空间大小用完了,这时候你需要扩展你的表空间,一般有一下几种
(1) 增加数据文件
alter tablespace sp001 add datafile ‘d:\sp002.dbf’ size 20M;
(2) 增加数据文件的大小
alter tablespace sp001 ‘d:\sp001.dbf’ resize 50M;
需要注意的是数据文件的大小不能超过500M
(3) 设置文件的自动增长
alter tablespace sp001 ‘d:\sp001.dbf’ autoextend on next 10M maxsize 500M;

磁盘永久了自然会出现损坏问题,这时候需要将受损磁盘上的数据文件移动到好的磁盘上,操作步骤如下
(1) 首先你先要确定你数据文件所在的表空间
select tablespace_name from dba_data_files where file_name=’d:\sp001.dbf’;
(如果查询不出,改file_name=’D:\SP001.DBF’)
(2) 为保证数据一致性,需要将表空间设置为脱机
alter tablespace sp001 offline;
(3) 将数据文件移动到指定位置
host move d:\sp001.dbf c:\sp001.dbf;
(4) 虽然在物理上进行了移动但是还需要在逻辑上进行修改
alter tablespace sp001 rename datafile ‘d:\sp001.dbf’ to ‘c:\sp001.dbf’;
(5) 最后将表空间联机
alter tablespace sp001 online; [/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值