我的oracle备份经历
做了一个系统,用了好几年,数据量以每年100多G的速度增长,现在快有1T了,备份速度慢的问题逐渐暴露出来。基于系统的特点及数据量,系统采用备份所有数据的方式,不采用增量备份。
系统原来设计备份时并没有考虑到数据量大的问题,采用是exp/imp方式备份,1T数据备份需要2天左右才可以完成,时间太长。后来考虑到导出优化,对exp的buffer、direct等参数进行修改,但效率并没有多少提升。因为数据库大多数的空间用来存放clob、blob数据,所以direct参数修改是没有用的。
之后想通过expdp/impdp来进行备份,这个是10g以后推出的备份方式,据说有20倍的速度提升,但还是因为lob数据的原因,效率没有提升,而且备份还出错了。
后来得知exp/imp、expdp/impdp方式只适用于小数据量的备份,并不适合大数据量。后来考虑用RMAN进行备份恢复,采用EM界面方式进行备份恢复,备份时速度可以到40~70M/秒,1T数据差不多5个小时就可以备份完成。这种方式是一种比较不错的主方案。但有几个问题,若oracle的数据文件是存在不同盘的文件下,要手工建立文件夹,这一点比较不人性化。另外还要保证机器的安装路径和服务名要保持一致,数据库版本一致。备份步骤比较简单,恢复步骤如下所示:
1、恢复控制文件