是个网站程序,数据库是oracle9i的,使用的2年多了,现在发现oracle的反应越来越慢了
oracle的表空间使用情况如下图,是不是哪里不对了,为什么有些不是程序用到的表空间好大,都使用99%多了图片不够清楚,下面是几张使用很高的表情况:UNDOTBS1的大小...
oracle的表空间使用情况如下图,是不是哪里不对了,为什么有些不是程序用到的表空间好大,都使用99%多了
图片不够清楚,下面是几张使用很高的表情况:
UNDOTBS1的大小是23484.875M,使用99.89%
EXAMPLE的大小是148.875M,使用99.67%
XDB的大小是44.750M,使用99.44% 展开
图片不够清楚,下面是几张使用很高的表情况:
UNDOTBS1的大小是23484.875M,使用99.89%
EXAMPLE的大小是148.875M,使用99.67%
XDB的大小是44.750M,使用99.44% 展开
5个回答
展开全部
UNDOTBS 设置了自动扩展, 太大了, 建议重建.
参考下列方法:
1. 创建新的UNDO表空间
CREATE UNDO TABLESPACE "UNDOTEMP"
DATAFILE 'D:\oracle\product\10.1.0\oradata\fsdb\UNDOTEMP.ora' SIZE 5M
2.在OEM控制台修改系统默认的UNDO表空间名, 由UNDOTBS改为UNDOTEMP, 或通过下面的命令修改默认UNDO表空间的标识
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTEMP
3. 删除原来的系统默认UNDO表空间, 并重建UNDOTBS
DROP TABLESPACE "UNDOTBS" INCLUDING CONTENTS AND DATAFILES
执行完第三步后我看目录中的文件UNDOTBS01.DBF并没有被删除,因此我手动删除,系统提示该文件正在被使用.把oracleservicefsdb进程停止,停止后删除UNDOTBS01.DBF文件未报错,重新启动OracleOraDb10g_home1TNSListener和oracleservicefsdb进程后继续第4步的操作.
4.重新创建undo表空间
CREATE UNDO TABLESPACE "UNDOTBS"
DATAFILE 'G:\ORACLE\ORADATA\HOME\UNDOTBS01.DBF' SIZE 200M
AUTOEXTEND ON NEXT 4096K MAXSIZE 500M
5. 在OEM控制台修改系统默认的UNDO表空间名, 由 UNDOTEMP 改为 UNDOTBS, 改回原有的UNDO表空间标识
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS
6. 删除临时创建的UNDO表空间UNDOTEMP
DROP TABLESPACE "UNDOTEMP" INCLUDING CONTENTS AND DATAFILES
参考下列方法:
1. 创建新的UNDO表空间
CREATE UNDO TABLESPACE "UNDOTEMP"
DATAFILE 'D:\oracle\product\10.1.0\oradata\fsdb\UNDOTEMP.ora' SIZE 5M
2.在OEM控制台修改系统默认的UNDO表空间名, 由UNDOTBS改为UNDOTEMP, 或通过下面的命令修改默认UNDO表空间的标识
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTEMP
3. 删除原来的系统默认UNDO表空间, 并重建UNDOTBS
DROP TABLESPACE "UNDOTBS" INCLUDING CONTENTS AND DATAFILES
执行完第三步后我看目录中的文件UNDOTBS01.DBF并没有被删除,因此我手动删除,系统提示该文件正在被使用.把oracleservicefsdb进程停止,停止后删除UNDOTBS01.DBF文件未报错,重新启动OracleOraDb10g_home1TNSListener和oracleservicefsdb进程后继续第4步的操作.
4.重新创建undo表空间
CREATE UNDO TABLESPACE "UNDOTBS"
DATAFILE 'G:\ORACLE\ORADATA\HOME\UNDOTBS01.DBF' SIZE 200M
AUTOEXTEND ON NEXT 4096K MAXSIZE 500M
5. 在OEM控制台修改系统默认的UNDO表空间名, 由 UNDOTEMP 改为 UNDOTBS, 改回原有的UNDO表空间标识
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS
6. 删除临时创建的UNDO表空间UNDOTEMP
DROP TABLESPACE "UNDOTEMP" INCLUDING CONTENTS AND DATAFILES
展开全部
正常啊..所以,需要数据库管理员来做清理.
从你发的图上来看,undo空间都基本满了,说明这个数据库的大事物操作还是比较频繁的.可能是业务量本身就增大了,或者是执行的.pl/SQL没有考虑这点.当UNDO空间满了,ORACLE不可能快的起来.只会越来越慢.
1除开管理员对数据库进行必要的重新调整\优化,比如整合碎片\调整空间大小啊等等.这里,UNDO空间必须得调整了.
2还应当考虑表数据的备份\清理.对常用表中无效的数据进行备份移出.
3并且应当对常用过程进行优化,如果资源有限,那就必须对诸如UPDATE,DELETE等操作语进行优化,以减小对UNDO空间一次使用吞吐大小.
如果你调整了UNDO空间,或者重做了,你会发现,数据库的效率马上就提高了.但第2点和第三点更为重要.
你这图看不怎么清楚...连大小都瞧不准,但undo空间绝对需要上述处理.因为某些系统空间满了,系统会自己处理掉,一般也不太影响整个库的使用,也不需要你去处理,而UNDO肯定会的.所以给你支两招试试,希望能帮到你.
从你发的图上来看,undo空间都基本满了,说明这个数据库的大事物操作还是比较频繁的.可能是业务量本身就增大了,或者是执行的.pl/SQL没有考虑这点.当UNDO空间满了,ORACLE不可能快的起来.只会越来越慢.
1除开管理员对数据库进行必要的重新调整\优化,比如整合碎片\调整空间大小啊等等.这里,UNDO空间必须得调整了.
2还应当考虑表数据的备份\清理.对常用表中无效的数据进行备份移出.
3并且应当对常用过程进行优化,如果资源有限,那就必须对诸如UPDATE,DELETE等操作语进行优化,以减小对UNDO空间一次使用吞吐大小.
如果你调整了UNDO空间,或者重做了,你会发现,数据库的效率马上就提高了.但第2点和第三点更为重要.
你这图看不怎么清楚...连大小都瞧不准,但undo空间绝对需要上述处理.因为某些系统空间满了,系统会自己处理掉,一般也不太影响整个库的使用,也不需要你去处理,而UNDO肯定会的.所以给你支两招试试,希望能帮到你.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为数据库一些表不是你程序所创建的,但是你程序有操作时,一些数据就存在这些表中,所以长期以来就占很大空间,建议 扩展数据库大小,而且有索引的话更新下索引 也许会快点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
example/xdb: 检查下哪张表占的表空间大;
undo:1、扩容;2、优化应用sql;
undo:1、扩容;2、优化应用sql;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-01
展开全部
有问题问问陈老师呗,CUUG的,我就总去问,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询