维护数据文件的注意事项:--本内容摘自周亮的《OracleDBA实战攻略:运维管理、诊断优化、 高可用与最佳实践》
1.在使用裸设备的rac系统中,添加数据文件之前,需要确认每个节点的lv 权限正常(owner和660属性)
---添加:需要仔细检查本次新加的datafile对应的lv是否已经被使用,若是已经被使用,禁止添加datafile,否则会破坏同名lv的对应的那个datafile 的header。
2.在rac系统中,添加datafile不要讲其添加到服务器本地硬盘上。
值得注意的是:添加到本地硬盘上的datafile是不报错的,只是对方节点无法访问,进而影响对方节点的业务。
3.单个datafile不宜过大,对于自动扩展的datafile最好设置maxbytes属性。
4.注意datafile的大小限制。对于自动扩展的datafile,若不设置maxbytes,那么该数据文件的最大大小跟该数据文件所属于的表空间的
block_size 相关,若block_size为8k,则数据文件最大不能超过32GB
5.对于自动扩展的datafile,回收站内的对象保留时间可能会很短。
因为,在oracle10g以上的db中,如果需要分配空间,oracle会首先使用回收站中的空间。
6.除非万不得已,一般建议不要在业务高峰期间添加数据文件。
若添加数据文件的会话挂起(即:hang住),不要随意kill 或者ctrl+c 或者硬性重启数据库,否则极易导致数据字典异常,进而影响数据库正常运行。
原因是:添加数据文件这个动作对应到后台基表上,并非是原子性的操作。
7. 添加数据文件前,事先严格审核添加数据文件的脚本,
特别是数据文件名后面不要带上空格,因为在操作系统中该空格很难显示,容易引起误操作。
8.不同文件系统(即:不同路径)上的数据文件名字最好互不相同
9. 在创建数据文件时,oracle会首先创建指定大小的稀疏文件,然后再在该稀疏文件上格式化数据块。
如果数据文件创建在文件系统上,则可以用du命令查看数据文件的创建进度。
10.应有意识的避免在热点盘中添加数据文件,并在添加数据文件前评估磁盘的io使用情况。
11.临时文件的信息记录在控制文件中,重建控制文件不要忘记添加临时文件
12.在oracle 11.2.0.1之前注意bug296235.1。该bug的具体描述为:
若在数据库mount状态下查看了dba_*之类的数据字典,则会导致数据库open之后无法查看该类数据字典。
只有刷新了shared pool之后,才能继续查看:alter system flush shared_pool;
该flush命令在业务高峰期严禁执行。
13.(本条是我自己添加的)在有dataguard环境的db中添加datafile时,需要登录到dataguard的备机上执行show parameter convert,看一下主库和备库上的datafile 的对应关系,若是在主库上向一个新的目录(比如/new)添加datafile ,而备库上没有这个/new的转换(show parameter convert的结果中不包括/new),此时新加的datafile会被添加在备库的$ORACLE_HOME/dbs下。