安装oracle数据库过程中系统表空间,生产环境数据库表空间的几个疑问

1.可用这个sql查看每个tablespace的使用率,超过一个值就寄mail或短讯告知

SELECT df.tablespace_name Tablespace,

100 * ROUND (tu.totalusedspace / df.totalspace, 2) UsingPct

FROM ( SELECT tablespace_name,

ROUND (SUM (bytes) / 1048576) TotalSpace

FROM dba_data_files

GROUP BY tablespace_name) df,

( SELECT ROUND (SUM (bytes) / (1024 * 1024)) totalusedspace,

tablespace_name

FROM dba_segments

GROUP BY tablespace_name) tu

WHERE df.tablespace_name = tu.tablespace_name

AND

tu.tablespace_name NOT IN (SELECT tablespace_name

FROM dba_tablespaces

WHERE contents = 'UNDO')

个人的做法是刚上线会设较多的datafile,但每个datafile的初始值较小,而maxsize会设较大,多半为16G~24G

观查1个月后,如datafile都不会很大的成长的话,那就列为稳定时期,会适时的调整datafile size,并且取消maxsize的设定

maxsize可满足你自动扩容的需求,但建议不要,应该由监控来解决tablespace满的问题

2.这个系统有关,datafile 不会只能4g,如只有4G的话,那以现在好几T的db来说,维护datafile就是个成本了

以linux来说,单一datafile 30多g就不能上去了。你要评估单一datafile size的话,要配合tablespace需求

如你规划特定的使用者用专用的tablespace,而你的datafile size为8G,但使用者的使用量只有1G,那你就浪费了7G

datafile很多时,适时调整 db_files / session_max_open_files,建议参考 http://docs.oracle.com/cd/B19306 ... iles.htm#sthref1340

并且datafile一多时,你的系统也要适时调整单oracle系统用户一次可以开起多少datafile,以前有遇过大型db,他的datafile达2千多个,但在系统中设定oracle单次最多只能开起1024个datafile,可想而之的结果就是主机重开后,db当然带不起来

结论就是适时的控制总datafile的数量,适时的放大单一datafile的size,如是小db那就随意了,呵呵~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值