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表空间扩展过大,建议把该表转移至其他的表空间。