爱心技术专栏专题

Oracle备份与恢复1

摘录:Oracle基础 来源:Oracle基础 加入时间:2007年03月25日
摘要:
Oracle备份与恢复1

Oracle备份与恢复

转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info22/a_e2a2324206bbd016.htm

Oracle备份与恢复1

站点:爱心种子小博士 关键字:Oracle备份与恢复1

   
Oracle备份与恢复1
Oracle备份与恢复

  学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!!

  Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示

Oracle备份与恢复

  学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!!

  Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示



三种方式各有优点,我们做个比较(这个是用Fireworks画的,有点糙):



$A:   现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。理论基础:Oracle提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型):

  1,表方式(T)    可以将指定的表导出备份;

  2,全库方式(Full)    将数据库中的所有对象导出;

  3,用户方式(U)     可以将指定的用户相应的所有数据对象导出;

  *在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别:

  1,完全增量导出(Complete Export)     这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名)

  2,增量型增量导出(Incremental Export)     这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp

  3,累积型增量导出(Cumulate Export)      这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp

  通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份:

  Mon: 完全备份(A)
  Tue: 增量导出(B)
  Wed:增量导出(C)
  Thu: 增量导出(D)
  Fri:   累计导出(E)
  Sat: 增量导出(F)
  Sun: 增量导出(G)

  这样,我们可以保证每周数据的完整性,以及恢复时的快捷和最大限度的数据损失。恢复的时候,假设事故发生在周末,DBA可按这样的步骤来恢复数据库:

  第一步:用命令CREATE DATABASE重新生成数据库结构;
  第二步:创建一个足够大的附加回滚。
  第三步:完全增量导入A: 
               imp system/manager inctype=RESTORE FULL=y FILE=A
  第四步:累计增量导入E: 
               imp system/manager inctype=RESTORE FULL=Y FILE=E
  第五步:最近增量导入F: 
               imp system/manager inctype=RESTORE FULL=Y FILE=F

  通常情况下,DBA所要做的导入导出备份就算完成,只要科学的按照规律作出备份,就可以将数据的损失降低到最小,提供更可靠的服务。另外,DBA最好对每次的备份做一个比较详细的说明文档,使得数据库的恢复更加可靠。

$B 物理备份之冷备份(条件-NonArchiveLog):

  当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全等数据转移。由于是在数据库不提供服务的关闭状态,所以称为冷备份。冷备份具有很多优良特性,比如上面图中我们提到的,快速,方便,以及高效。一次完整的冷备份步骤应该是:

  1,首先关闭数据库(shutdown normal)

  2,拷贝相关文件到安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件等(包括路径))

  3,重新启动数据库(startup)

  以上的步骤我们可以用一个脚本来完成操作:

      su – oracle < sqlplus /nolog
      connect / as sysdba
      shutdown immediate;
      !cp 文件   备份位置(所有的日志、数据、控制及参数文件);
      startup;
      exit;

  这样,我们就完成了一次冷备份,请确定你对这些相应的目录(包括写入的目标文件夹)有相应的权限。

  恢复的时候,相对比较简单了,我们停掉数据库,将文件拷贝回相应位置,重启数据库就可以了,当然也可以用脚本来完成。