如何修改大文件类型修改undo表空间大小的大小

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&修改oracle数据文件大小
我们在136上的oracle进行压力测试时,发现数据库的数据文件占用物理空间达到20多个G,但是在我们清掉各个表的数据后(truncate掉各个日志表),发现数据库实际数据占用的空间只有20多M,但物理文件仍然20多G。&
经查资料,这个是oracle的表和表空间的&高水位&问题造成的,解决方案如下:&
前提知识:&
1. 数据库中的物理存储空间是以块(segment)为单位的&
2. 修改数据库表空间大小的语句:&
ALTER DATABASE DATAFILE &#39;D:\ORADATA\E20&#39; RESIZE 206M&
但是直接运行该语句的话会报如下错误:&
Failed to commit: ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据&
解决方案(以136上的ECSS20表空间为例):&
1. 查询oracle数据文件及其编号。SQL语句如下&
select file#,name from v$ & &
查询出数据库的所有数据文件,其中包含如下,正是达到20多G的数据文件&
& & &FILE#
------------------------------------------------------------------------------------------&
D:\ORADATA\ECSS20&
2. 查找该数据文件的最大块号。语句如下:&
select max(block_id) from dba_extents where file_id=6;&
查询结果如下:&
MAX(BLOCK_ID)&
-------------&
& & & &534785&
3. 计算该表空间目前实际占用的空间(不是物理文件的大小)&
显示每个数据块的大小。语句如下:&
show parameter db_block_&
结果为8192,就是8K。&
然后计算所有数据块占用的物理空间(拿计算器计算也一样)&
select /1024&
结果为M,就是4G多&
4. 然后我们知道目前用了4G多,我们就可以把数据文件大小Resize到4G多一点&
ALTER DATABASE DATAFILE &#39;D:\ORADATA\ECSS20&#39; RESIZE 4200M;&
数据库已更改。正常。&
到此为止,实际数据文件的大小就由20多G到4G多了。&
5. 继续往下走,因为我们实际数据占用了几十M,但数据文件还有4G多,还是我们把之前的表truncate掉后才能得到的。现在查一下占用最大块(segment 534785)的是什么。语句如下:&
select distinct owner, segment_name, segment_type,tablespace_name from dba_extents where file_id =6 and block_id=534785; &
查到的结果如下:&
OWNER SEGMENT_NAME SEGMENT_TYPE & & & TABLESPACE_NAME&
------------------------------------------------------------------------------------------------------&
BIZTALKINGINFO TABLE & & & & & & ECSS&
说明目前占用最大块的对象是表BIZTALKINGINFO&
6. 把表挪动一下,把表从当前表空间转移到了另外一个表空间(要已经存在的),语句如下:&
alter table biztalkinginfo move tablespace ECSS_LUCIFER;&
再次查询物理文件中的最大块号(步骤2),本次查询结果为534761,结果已经变小了,再查询该块的数据时BizTalkingInfo的主键。&
7. 分析可知,在我们数据表已经插入大量数据后,才建表BizTalkingInfo,然后该表占用的块就偏大。然后我们resize数据文件时就不能小于该块。最简单的办法是删掉该表相关的东西,然后重建即可。当然也有比较复杂的办法可以办到。&
8. 有一个结论就是:建表一般要放在数据表初始化之前进行,最好不要再初始化了大量数据,尤其是日志数据后再建表。&
作者 Ajita
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'修改表空间大小,oracle
表空间不够用,需要增大表空间,实际上需要增大数据文件的大小
表空间和数据文件的关系是:一个数据文件只能属于一个表空间,一个表空间可以有一个或者多个数据文件
--查询表空间的数据文件
SELECT * FROM dba_data_files WHERE tablespace_name =
查询出表空间对应的数据文件,在磁盘空间允许的情况下
ALTER DATABASE& DATAFILE
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\FUFU\SA_DMP.DBF' RESIZE
如果表空间需要自动扩展或者有最大值限制的
ALTER DATABASE datafile
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\FUFU\SA_DMP.DBF' autoextend ON
NEXT 50M maxsize 20000M;
另外,查看用户对表空间的使用限额:
SELECT * FROM user_ts_
如果maxsize&字段值为 -1,则是无限制,如果有其他值,则该值是最大值
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。oracle修改表空间大小--急
[问题点数:20分,结帖人wodexiaoyao]
oracle修改表空间大小--急
[问题点数:20分,结帖人wodexiaoyao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年6月 Oracle大版内专家分月排行榜第三2011年5月 Oracle大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。11490人阅读
--1、查看表在那个表空间
& select&tablespace_name,table_name&from&user_talbes&where&table_name='employ';
--2、获取用户的默认表空间
& select&&&username,&&&DEFAULT_TABLESPACE&&&&&from&&&dba_users&where&username='scott';
--3、查看表空间所有的文件&&
& select&*&from&dba_data_files&where&tablespace_name='USERS';
--4、查看表空间使用情况:
&&&&SELECT&tbs&表空间名,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&sum(totalM)&总共大小M,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&sum(usedM)&已使用空间M,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&sum(remainedM)&剩余空间M,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&sum(usedM)/sum(totalM)*100&已使用百分比,&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&sum(remainedM)/sum(totalM)*100&剩余百分比&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&FROM(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&SELECT&b.file_id&ID,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&b.tablespace_name&tbs,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&b.file_name&name,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&b.bytes/1024/1024&totalM,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&(b.bytes-sum(nvl(a.bytes,0)))/1024/1024&usedM,&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&sum(nvl(a.bytes,0)/1024/1024)&remainedM,&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&sum(nvl(a.bytes,0)/(b.bytes)*100),&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&(100&-&(sum(nvl(a.bytes,0))/(b.bytes)*100))&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&FROM&dba_free_space&a,dba_data_files&b&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&WHERE&a.file_id&=&b.file_id&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&GROUP&BY&b.tablespace_name,b.file_name,b.file_id,b.bytes&&&&&&&&&&&&&&&&&&&&
&&&&&ORDER&BY&b.tablespace_name&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&GROUP&BY&tbs&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
--5、扩展表空间&
& alter&database&datafile&'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF'&resize&50m;
& --自动增长&&
& alter&database&datafile&'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF'&autoextend&on&next&50m&maxsize&500m;&&&&
& --增加数据文件
& &alter&tablespace&yourtablespacename&add&datafile&'d:\newtablespacefile.dbf'&size&5m;
绿色通道:&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:106336次
积分:1314
积分:1314
排名:千里之外
原创:21篇
转载:27篇
(3)(3)(3)(2)(1)(3)(3)(1)(1)(1)(1)(5)(3)(1)(5)(11)(1)(1)(1)(1)(1)}

我要回帖

更多关于 oracle修改表空间大小 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信