您的位置:首页 > 运维架构

维护表空间的注意事项

2014-11-26 18:40 190 查看
维护表空间的注意事项:--本内容摘自周亮的《OracleDBA实战攻略:运维管理、诊断优化、 高可用与最佳实践



1.注意表空间级别的nologging 属性。尽量不用表空间级别的nologging



2.当存储有空闲时,可以在线将undo表空间迁移到其他的存储中,进而减小原来存储的压力,

新的undo表空间名字必须和初始化参数文件中的undo_tablespace参数保持一致,否则会导致数据库重启失败。



3.添加表空间时会消耗大量的io,在io比较紧张的系统中会严重的影响业务,所以,应该尽量避免在业务高峰时段做此操作。



4.重建控制文件后,不要忘记重建temp表空间

5.对temp表空间和undo表空间设置一个最大阈值,否则会导致自动扩展过大。



6.表空间进行rman备份,begin backup(oracle 10g中),readonly, offline时会触发表空间级别的checkpoint,

在io资源紧张的系统中,上述操作会加重系统负担,进而影响业务。



7.删除表空间之前先offline 该表空间可能更为保险,同时,在删除该表空间之前最好先检查该表空间下的对象。



8.从空间管理和性能上考虑,建议不要把table和index 放在同一个表空间里边



9.在某些db版本中,droptablespace tbs_name including contents and datafiles删除表空间时,可能不会物理上删除数据文件。

另外,若该datafile被oracle某些进程占用着,则使用操作系统命令也可能无法删除。如果数据库短时间内不允许重启或者操作系统空间紧张

,可以尝试使用cat/dev/null >test.dbf之类的命令释放空间。



10.在oracle10g以上版本中,若是回收站存在太多对象,查询数据字典dba_free_space可能会非常慢

(recyclebin$是组成dba_free_space的基表之一)



11. 在9i中,最好有专门的表空间存储statspack报告。



12.务必定期物理备份system表空间,当数据库因为基表损坏无法启动时,备份的system表空间将发挥重要作用。



13.自动管理的undo表空间的区管理方式必须为system,即:区大小由oracle分配。但手工管理下undo 表空间的区大小可以由人为指定。



14.原则上system表空间不应该存放业务数据。原因是:业务数据会让system表空间异常增长,还容易和数据字典基表争用系统回滚段。



15.oracle 11g R2中,初始化参数audit_trail默认设置为db级别,所以很多数据库的操作都被记录在了审计表sys.aud$,这导致sys.aud$所在

的表空间快速增长。可以通过truncate命令清空该表。为了防止system表空间扩展过大,建议把该表转移至其他的表空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: