一、Oracle备份方式分类:
Oracle有两类备份方式:
(1)物理备份:是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。
物理备份又分为冷备份、热备份;  
(2)逻辑备份:是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。
逻辑备份使用导入导出工具:EXPDP/IMPDP或EXP/IMP;

备份方式的优缺点及使用时机比较如下图:


二、Oracle备份方式介绍:
1、物理备份之冷备份(条件-NonArchiveLog):
  当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全等数据转移。由于是在数据库不提供服务的关闭状态,所以称为冷备份。冷备份具有很多优良特性,比如上面图中我们提到的,快速,方便,以及高效。一次完整的冷备份步骤应该是:
(1)首先关闭数据库(shutdown normal)
(2)拷贝相关文件到安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件等(包括路径))
(3)重新启动数据库(startup)
以上的步骤我们可以用一个脚本来完成操作:
  su – oracle <      sqlplus /nolog
  connect / as sysdba
  shutdown immediate;
  !cp 文件   备份位置(所有的日志、数据、控制及参数文件);
  startup;
  exit;
这样,我们就完成了一次冷备份,请确定你对这些相应的目录(包括写入的目标文件夹)有相应的权限。
物理冷备份的恢复:
恢复的时候,相对比较简单了,我们停掉数据库,将文件拷贝回相应位置,重启数据库就可以了,当然也可以用脚本来完成。

2、物理备份之热备份:(条件-ArchiveLog)
  当我们需要做一个精度比较高的备份,而且我们的数据库不可能停掉(少许访问量)时,这个情况下,我们就需要归档方式下的备份,就是下面讨论的热备份。热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作。具体步骤如下:
(1)通过视图v$database,查看数据库是否在Archive模式下:       
     SQL> select log_mode from v$database;
  如果不是Archive模式,则设定数据库运行于归档模式下:
    SQL>shutdown immediate
  SQL>startup mount
  SQL>alter database archivelog;
  SQL>alter database open;
  如果Automaticarchival显示为“Enabled”,则数据库归档方式为自动归档。否则需要手工归档,或者将归档方式修改为自动归档,如:
  正常shutdown数据库,在参数文件中init.ora中加入如下参数
  SQL>shutdown immediate
   修改init.ora:
  LOG_ARCHIVE_START=TRUE
  LOG_ARCHIVE_DEST1=ORACLE_HOME/admin/o816/arch(归档日志存放位置可以自己定义)
  SQL>startup
  然后,重新启动数据库,此时Oracle数据库将以自动归档的方式工作在Archive模式下。其中参数LOG_ARCHIVE_DEST1是指定的归档日志文件的路径,建议与Oracle数据库文件存在不同的硬盘,一方面减少磁盘I/O竞争,另外一方面也可以避免数据库文件所在硬盘毁坏之后的文件丢失。归档路径也可以直接指定为磁带等其它物理存储设备,但可能要考虑读写速度、可写条件和性能等因素。     
  注意:当数据库处在ARCHIVE模式下时,一定要保证指定的归档路径可写,否则数据库就会挂起,直到能够归档所有归档信息后才可以使用。另外,为创建一个有效的备份,当数据库在创建时,必须履行一个全数据库的冷备份,就是说数据库需要运行在归档方式,然后正常关闭数据库,备份所有的数据库组成文件。这一备份是整个备份的基础,因为该备份提供了一个所有数据库文件的拷贝。(体现了冷备份与热备份的合作关系,以及强大的能力)
(2)表空间文件备份步骤:
  a,首先,修改表空间文件为备份模式 ALTER TABLESPACE tablespace_name BEGIN BACKUP;
  b,然后,拷贝表空间文件到安全区域 !CP tablespace_name D_PATH;
  c,最后,将表空间的备份模式关闭    ALTER TABLESPACE tablespace_name END BACKUP;
(3)归档日志文件备份步骤:
  停止归档进程-->备份归档日志文件-->启动归档进程
  如果日志文档比较多,我们将它们写入一个文件成为一个恢复的参考:$   files `ls <归档文件路径>/arch*.dbf`;export files
(4)控制文件备份步骤:
  SQL> alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;
  当然,我们也可以将上面的东东写为一个脚本,在需要的时候执行就可以了:
  脚本范例:
  su – oracle <      sqlplus /nolog
  connect / as sysdba
  ALTER TABLESPACE tablespace_name BEGIN BACKUP
  !CP tablespace_name D_PATH
  ALTER TABLESPACE tablespace_name END BACKUP
  alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;
  !files `ls <归档文件路径>/arch*.dbf`;export files
物理热备份的恢复:  
热备份的恢复,对于归档方式数据库的恢复要求不但有有效的日志备份还要求有一个在归档方式下作的有效的全库备份。归档备份在理论上可以无数据丢失,但是对于硬件以及操作人员的要求都比较高。在我们使用归档方式备份的时候,全库物理备份也是非常重要的。归档方式下数据库的恢复要求从全备份到失败点所有的日志都要完好无缺。
  恢复步骤:LOG_ARCHIVE_DEST_1
  (1)shutdown数据库。
  (2)将全备份的数据文件放到原来系统的目录中。
  (3)将全备份到失败点的所有归档日志放到参数LOG_ARCHIVE_DEST_1所指定的位置。
  (4)利用sqlplus登陆到空实例。(connect / as sysdba)
          startup mount
          set autorecovery on
          recover database;
          alter database open;

3、逻辑备份之EXP/IMP:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
使用EXP/IMP导出/导入包括三种方式:
  (1)表方式(T)    可以将指定的表导出备份;
    (2)用户方式(U)     可以将指定的用户相应的所有数据对象导出;
  (3)全库方式(Full)     将数据库中的所有对象导出;
(1)导出表:
E:\>exp system/oracle TABLES=scott.dept,scott.emp FILE=a.dmp
(2)导出方案:
E:\>exp system/oracle OWNER=scott FILE=b.dmp
(3)导出数据库:
E:\>exp system/oracle FILE=c.dmp FULL=Y
(4)导入表:
SQL> drop table scott.emp;
SQL> drop table scott.dept;
E:\>impdp scott/tiger file=a.dmp tables=dept,emp
(5)导入方案:
SQL> drop user scott cascade;
SQL> create user scott identified by tiger;
SQL> grant dba to scott;
E:\>impdp scott/tiger file=b.dmp
E:\>impdp system/oracle file=b.dmp owner=scott
(6)导入数据库:
impdp system/oracle file=c.dmp full=y
在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为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最好对每次的备份做一个比较详细的说明文档,使得数据库的恢复更加可靠。

4、逻辑备份之EXPDP/IMPDP
使用数据泵(Data Dump)导出/导入包括4种方式:导出表、导出方案、导出表空间、导出数据库。
(1)导出表
在E盘建立目录oracledump;
SQL> CREATE DIRECTORY dump_dir AS 'E:\oracledump';
SQL> GRANT READ,WRITE ON DIRECTORY dump_dir TO scott;
E:\>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
(2)导出方案:
E:\>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schemaScott.dmp SCHEMAS='SCOTT';
(3)导出表空间:
E:\>expdp system/oracle directory=dump_dir dumpfile=tablespaceUsers.dmp ESTIMATE_ONLY
(4)导出数据库:
E:\>expdp system/oracle directory=dump_dir dumpfile=database.dmp FULL=Y
(5)导入表:
SQL> drop table scott.emp;
SQL> drop table scott.dept;
E:\>impdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp
(6)导入方案:
SQL> drop user scott cascade;
SQL> create user scott identified by tiger;
SQL> grant dba to scott;
E:\>impdp system/oracle directory=dump_dir dumpfile=schemaScott.dmp schemas=scott
(7)导入表空间:
impdp system/oracle directory=dump_dir dumpfile=tablespaceUsers.dmp tablespaces=users
(8)导入数据库:
impdp system/oracle directory=dump_dir dumpfile=database.dmp FULL=Y

Oracle 备份与恢复介绍的更多相关文章

  1. Oracle备份与恢复介绍(物理备份与逻辑备份) 分类: Oracle 2015-07-27 22:59 15人阅读 评论(0) 收藏

    算是挺全的了,有命令有真相 原文链接:http://blog.chinaunix.net/uid-354915-id-3525989.html 一.Oracle备份方式分类: Oracle有两类备份方 ...

  2. 【体系结构】Oracle参数介绍

    [体系结构]Oracle参数介绍 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩ ...

  3. Oracle asm介绍和安装linux+oracle10g+asm过程

    Oracle asm介绍和安装linux5.2+oracle10g+asm过程   1)ASM(自动存储管理)的来由:   ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来 ...

  4. Oracle Dataguard 介绍

    Oracle DataGuard介绍 一. DataGuard的基本原理 当某次事务处理对生产数据库中的数据作出更改时,Oracle数据库将在一个联机重做日志文件里记录此次更改.在DataGuard中 ...

  5. Oracle备份与恢复案例

    注:以下内容来自<Oracle备份与恢复案例.doc>文档. Oracle备份与恢复案例 By Piner 一. 理解什么是数据库恢复 当我们使用一个数据库时,总希望数据库的内容是可靠的. ...

  6. Oracle 备份与恢复基础

    Oracle 备份与恢复基础 :三思笔记 备份与恢复 A whole database backup is either a consistent backup or an inconsistent ...

  7. [Oracle] Lob介绍

    [Oracle] Lob介绍   像Oracle这种关系型数据库,比较擅长处理结构化的数据,那么对于非结构化的数据,Oracle是怎么处理和存储的呢?Lob (Large Object)是Oracle ...

  8. oracle regexp_like介绍和例子

    oracle regexp_like介绍和例子 学习了:http://www.cnblogs.com/einyboy/archive/2012/08/01/2617606.html ORACLE中的支 ...

  9. Oracle 存储过程介绍

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

随机推荐

  1. java检测文件内是否包含指定内容

    package com.test; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.File ...

  2. 7.3---直线是否相交(CC150)

    注意:就算斜率相等,但是,如果截距也相等,那么是属于相交,所以要特殊判断. public class CrossLine { public boolean checkCrossLine(double ...

  3. How to keep Environment Variables when Using SUDO

    The trick is to add environment variables to sudoers file via sudo visudo command and add these line ...

  4. Javascript——Context和Scope的一些学习总结

    1.1.1 摘要 在我们学习Javascript过程中,常常会遇到作用域(Scope)和执行上下文(Context)等概念.其中,执行上下文与this关键字的关系密切. 有面向对象编程经验的各位,对于 ...

  5. POJ 1661

    http://poj.org/problem?id=1661 这是一道DP的题目,求最优解 上面的这一个题是对于那个重左边开始上的函数的解释 题目要求的是从最高掉下来的小时间,那么我们就可以求从最低处 ...

  6. php实验一

    实验准备 实验一:PHP开发环境配置,学习安装和使用集成PHP开发环境. 一. 分别下载和安装WAMP ,AppServ,XAMPP,phpstudy等软件,并测试页面. 开发环境配置 1)单独需要三 ...

  7. ACM/ICPC 之 递归(POJ2663-完全覆盖+POJ1057(百练2775)-旧式文件结构图)

    POJ2663-完全覆盖 题解见首注释 //简单递推-三个米诺牌(3*2)为一个单位打草稿得出规律 //题意-3*n块方格能被1*2的米诺牌以多少种情况完全覆盖 //Memory 132K Time: ...

  8. iOS基础框架的搭建/国际化操作

    1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...

  9. poj 2389.Bull Math 解题报告

    题目链接:http://poj.org/problem?id=2389 题目意思:就是大整数乘法. 题目中说每个整数不超过 40 位,是错的!!!要开大点,这里我开到100. 其实大整数乘法还是第一次 ...

  10. HTTP协议与HTML表单(再谈GET与POST的区别)

    HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论.本文将带您浅尝HTTP协议,在了 解HTTP协议的同时将会展示许多被人们忽视的内容.在掌握了H ...