我的oracle备份经历

我的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、恢复控制文件
我的oracle备份经历_第1张图片
2、指定备份的路径
我的oracle备份经历_第2张图片
3、恢复控制文件进度
我的oracle备份经历_第3张图片
4、恢复数据库文件
我的oracle备份经历_第4张图片

恢复后数据可以查看,会存在几个问题。

  1. 因备份时并不备份临时表空间,因此需要删除并重新生成临时表空间。步骤是先更改为新的,再删除原来的。
    alter tablespace tempadd tempfile ‘/oracle/oradata/osa/temp03.dbf’ size 50m;
    alter tablespace tempdrop tempfile ‘/oracle/oradata/osa/temp01.dbf’ ;
  2. 因备份时也不备份日志文件,因此需要重建日志文件。具体操作参见:
    http://www.cnblogs.com/xqzt/p/5034826.html
    3.另外,恢复后如果无法通过em查看表空间,可以删除em,进行重建。
    emca -config dbcontrol db -repos recreate,根据提示输入即可。
    其他说明:实验成功的备份恢复是在非归档模式下进行的,归档模式暂未实验成功。

相比直接备份oracle文件的方式,操作步骤还是简单一些,直接备份oracle文件的方式参见网址:https://jingyan.baidu.com/article/d8072ac461b604ec95cefdd1.html

你可能感兴趣的:(ORACLE)