任何数据库在长期使用过程中,都会存在一定的安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。当数据库发生故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随所发生的故障类型所影响的结构而变化。怎样才能对Oracle数据库进行备份?如何才能对删除的数据再进行恢复?这是本篇文章主要讲的内容。

  Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。

  一、 如何对数据库进行还原与备份

  Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

  Oracle支持三种方式类型的输出,分别是表方式(T方式),将指定表的数据导出、用户方式(U方式),将指定用户的所有对象及数据导出)、全库方式(Full方式),瘵数据库中的所有对象导出。

  数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

  增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型:“完全”增量导出、“增量型”增量导出、“累积型”增量导出。数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。

  二、备份

  备份可以分为两种,主要是冷备份和热备份。冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:

  1、 是非常快速的备份方法(只需拷文件)

  2、 容易归档(简单拷贝即可)

  3、 容易恢复到某个时间点上(只需将文件再拷贝回去)

  4、 能与归档方法相结合,做数据库“最佳状态”的恢复。

  5、 低度维护,高度安全。

  但冷备份也有如下不足:

  1、 单独使用时,只能提供到“某一时间点上”的恢复。

  2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

  3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。

  4、 不能按表或按用户恢复。

  如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

  1、 所有数据文件

  2、 所有控制文件

  3、 所有联机REDO LOG文件

  4、 Init.ora文件(可选)

  值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

下面是作冷备份的完整例子。

  (1) 关闭数据库


  sqlplus /nolog
  sql>;connect /as sysdba
  sql>;shutdown normal;

  (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

  sql>;cp ; ;

  (3) 重启Oracle数据库

  sql>;startup

  热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

  1. 数据文件一个表空间一个表空间的备份。

  (1) 设置表空间为备份状态

  (2) 备份表空间的数据文件

  (3) 回复表空间为正常状态

  2. 备份归档log文件

  (1) 临时停止归档进程

  (2) log下那些在archive rede log目标目录中的文件

  (3) 重新启动archive进程

  (4) 备份归档的redo log文件

  3. 用alter database bachup controlfile命令来备份控制文件

  热备份的优点是:

  1. 可在表空间或数据库文件级备份,备份的时间短。

  2. 备份时数据库仍可使用。

  3. 可达到秒级恢复(恢复到某一时间点上)。

  4. 可对几乎所有数据库实体做恢复

  5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。

  热备份的不足是:

  1. 不能出错,否则后果严重

  2. 若热备份不成功,所得结果不可用于时间点的恢复

  3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。

  三、如何才能提高Oracle备份的速度?

  1.可以通过发布以下命令来启用该跟踪机制:

  SQL> alter database enable block change tracking using file '/oracle10g/rman/change.log';

  该命令将创建一个名为 /rman_bkups/change.log 的二进制文件,以用于跟踪。

  2.假如跟踪文件丢失,则会做全库扫描

  以后的增量也会做全库扫描。唯一解决的办法,就是重新执行全备,最后再增量。

转载于:https://www.cnblogs.com/login2012/p/5780433.html

Oracle 【IT实验室】数据库备份与恢复之:如何对Oracle数据库文件进行恢复与备份...相关推荐

  1. XFS文件系统文件恢复与备份

    XFS文件系统 XFS文件系统是硅谷图形公司(Silicon Graphics Inc,简称SGI)开发的用于IRIX(一个UNIX操作系统)的文件系统,后将XFS移植到Linux操作系统上. XFS ...

  2. windows下postgres数据库软件被损坏的情况下data文件存在恢复数据库

    在项目要演示的前一天数据库突然被鲁大师给损坏了,导致项目无法启动,想了各种办法,查了很多资料,最终得以解决,再此做一个记录 一.数据库postgres损坏恢复方法(此方法同样适用于系统崩溃后,找回数据 ...

  3. Oracle——20数据库恢复与备份

    2019独角兽企业重金招聘Python工程师标准>>> 备份是将数据库中的数据信息保存起来,而恢复则是将已经备份的数据库信息还原到数据库系统中.    一.数据库的备份类型  Ora ...

  4. oracle的故障包括用户或应用程序故障_数据库实例错误,oracle 备份恢复基础

    一,与基础 1.,备份简介 备份是数据的一个副本,一般包括控制文件和数据文件等 物理备份与逻辑备份 物理备份指物理文件的副本,逻辑备份是指使用工具抽取逻辑数据(例如,表或存储过程)并保存在二进制文件中 ...

  5. Oracle 运维篇+RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要

    说明:本文为Oracle RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要方便用户查阅 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 说 ...

  6. 随意取消和恢复一键备份功能

    现在,为了避免系统崩溃后重装系统的麻烦,很多办公电脑都安装了一键备份软件,可以设定快捷键,电脑开机后可以按该快捷键进入备份或恢复系统的界面.如果提前做好了系统备份,在系统崩溃后可以使用该备份快速恢复系 ...

  7. window oracle 只有bak文件怎么恢复_Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现...

    Oracle 11g R2 RAC数据库备份通过RMAN恢复到单实例数据库实现 下面是我的一次从Oracle 11g R2 RAC到单实例间通过RMAN恢复备份集的过程,记录在此. 有些人以此方法作为 ...

  8. Oracle数据库文件恢复与备份思路

    http://oracle.chinaitlab.com/backup/823039.html 任何数据库在长期使用过程中,都会存在一定的安全隐患.对于数据库管理员来说不能仅寄希望于计算机操作系统的安 ...

  9. oracle和mysql的备份有几种方法_Oracle 数据库的备份与恢復都有哪几种方法?

    oracle数据库的备份与恢复 ---- 当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(包括机器故障.介质故障.误操作等),数据库有时也可能遭到破坏,这时如何尽快 ...

最新文章

  1. python 面向对象(云储存一下)
  2. RGBA和ARGB的区别
  3. 如何在Kubernetes中暴露服务访问
  4. 【Android 界面效果10】Android中View,ViewGroup,Window之间的关系
  5. C语言typedef关键字—伟大的缝纫师
  6. 11g DG中的参数
  7. UML学习系统(一)
  8. Scratch3架构结构说明
  9. Xcap使用教程--创建、发送和分析报文
  10. WPF 使用 Font Awesome(OTF / TTF)
  11. android textview setellipsize,android中给TextView设置属性ellipsize
  12. 外部碎片和内部碎片的区别
  13. linux可以使用usb无线网卡驱动,详解USB无线网卡的Linux驱动移植
  14. roundcube db.inc.php,开源电子邮件系统(Roundcube Webmail)
  15. 文件下载触发的DDE注入
  16. SSHD服务的搭建与管理
  17. SLAM综述阅读笔记一:Past, Present, and Future of Simultaneous Localization And Mapping(2016)
  18. Python列表排序_revered逆序_max_min_sum
  19. 3D Models (3D 模型)
  20. 图解apk的打包过程

热门文章

  1. shell中的比较(if运算)
  2. LINUX文件系统介绍
  3. 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 完整卸载方案
  4. 航海学校高级课程任务讲义
  5. 标准10进制公制度量系统中 倍率关系 大全
  6. PHP 与 Perl 对照表
  7. velocity模板的语法简要汇总
  8. 定期存单丢了被别人捡到,里面的存款会不会被领走?
  9. 动态时间规整-DTW算法
  10. 计算机视觉模式识别用到的几本优化的书籍